puppet报告系统dashboard以及puppet+nginx

        Puppet Dashboard是由支持Puppet开发的公司Puppetlabs建立的,是Ruby on Rails程序。能够做为一个ENC(外部节点分类器)以及一个报告工具,而且正在逐渐成为一个包含许多Puppet新功能的集成界面,例如审计和资源管理功能。 Puppet Dashboard是一个Ruby on Rails程序,用于显示Puppet master和agent的相关信息。它容许你查看从一个或多个Puppet master汇总的图形和报告数据。它同时从一个或者多个Puppet master上收集来自于Puppet agent的资产数据(主机的Fact和其余信息)。最后,它能做为一个ENC来配置Puppet节点,并指定这些节点上的类和参数。mysql

puppet dashboard的配置:nginx

在master端c++

安装所需的软件包web

yum install puppet-dashboard-1.2.23-1.el6.noarch.rpm mysql-server rubygem-rake-0.8.7-2.1.el6.noarch.rpm ruby-mysql-2.8.2-1.el6.x86_64.rpm -y

配置mysql数据库:sql

/etc/init.d/mysqld start
mysql> CREATE DATABASE dashboard_production CHARACTER SET utf8;
mysql> CREATE USER 'dashboard'@'localhost' IDENTIFIED BY 'westos';
mysql> GRANT ALL PRIVILEGES ON dashboard_production.* TO 'dashboard'@'localhost';
vim /usr/share/puppet-dashboard/config/database.yml #这里只使用了生产环境配置
    production:
      database: dashboard_production
      username: dashboard
      password: westos
      encoding: utf8
      adapter: mysql
cd /usr/share/puppet-dashboard/config
rake RAILS_ENV=production db:migrate  #创建 dashboard 所需的数据库和表

wKiom1d7uSnx8dixAAG8MNlK07A392.png-wh_50

修改puppet-dashboard的时区数据库

vim /usr/share/puppet-dashboard/config/settings.yml
    time_zone: 'Beijing'

使用下面这个指令能够查看可用的时区vim

rake time:zones:local

wKioL1d7uTqC4AidAACntAO6BOE778.png-wh_50

/etc/init.d/puppet-dashboard start

wKiom1d7uUmD54M6AABckSA68a8644.png-wh_50

chmod 666 /usr/share/puppet-dashboard/log/production.log
/etc/init.d/puppet-dashboard-workers start

设置报告汇总ruby

vim /etc/puppet/puppet.conf
    [main]
       reports = http
       reporturl=http://172.25.254.1:3000/reports
/etc/puppetmaster reload

登陆http://172.25.9.1:3000进入到检测页面session

wKiom1d7uV6zORfmAADq7sZlm24928.png-wh_50

此时尚未报告生成咱们须要在client端打开报告同步以此数据就能够看到信息了curl

vim /etc/puppet/puppet.conf
    [agent]
        report =true
puppet agent --server=server1.example.com --no-daemonize -vt   #进行手动同步puppet未在后台运行的状况下

wKioL1d7uceREoTYAACQzZb1AD0408.png-wh_50

以后再次刷新网站就能看到报告了

wKiom1d7uhahvWkiAADuXVROqaw742.png-wh_50

点击节点就能看到具体的日志信息了

wKioL1d7ujrwxVabAAEck53J_LI367.png-wh_50

client端自动同步的状况下要在client端进行如下操做:

vim /etc/sysconfig/puppet
PUPPET_SERVER=puppet.example.com #puppet master 的地址
PUPPET_PORT=8140         #puppet 监听端口
PUPPET_LOG=/var/log/puppet/puppet.log #puppet 本地日志#PUPPET_EXTRA_OPTS=--waitforcert=500 #默认同步的时间这里没有打开而是在下面的文件配置的

修改默认同步的时间

vim /etc/puppet/puppet.conf
    [agent]
        runinterval =300 #单位为秒
/etc/init.d/puppet start

nginx+passenger:

puppet 默认使用基于 Ruby 的 WEBRickHTTP 来处理 HTTPS 请求,可是这些语言的内置webserver目的仅是为了方便调试代码,自己的性能十分的差,而使用常见的Web Server软件就能够显著的提升单台的puppetmaster的性能。这里就是使用的是Nginx去提升puppetmaster的性能

安装所需的依赖性:

yum install -y gcc gcc-c++ curl-devel zlib-devel openssl-devel ruby-devel pcre-devel
gem install passenger-5.0.15.gem rack-1.6.4.gem #没有联网的状况下须要gem包,联网的状况下直接 gem install rack passenger

passenger-install-nginx-module #脚本会自动安装 nginx 支持,按提示操做

安装好后更改nginx的配置

vim /opt/nginx/conf/nginx.conf
    server {
    listen 8140;
    server_name server1.example.com;
    root /etc/puppet/rack/public;
    passenger_enabled on;

    passenger_set_header X_CLIENT_DN $ssl_client_s_dn;
    passenger_set_header X_CLIENT_VERIFY $ssl_client_verify;

    ssl  on;
    ssl_session_timeout 5m;
    ssl_certificate /var/lib/puppet/ssl/certs/server1.example.com.pem;
    ssl_certificate_key /var/lib/puppet/ssl/private_keys/server1.example.com.pem;
    ssl_client_certificate /var/lib/puppet/ssl/ca/ca_crt.pem;
    ssl_crl  /var/lib/puppet/ssl/ca/ca_crl.pem;
    ssl_verify_client optional;
    ssl_ciphers  SSLv2:-LOW:-EXPORT:RC4+RSA;
    ssl_prefer_server_ciphers on;
    ssl_verify_depth 1;
    ssl_session_cache  shared:SSL:128m;
    }
mkdir /etc/puppet/rack/{public,tmp} -p
cp /usr/share/puppet/ext/rack/config.ru /etc/puppet/rack/
chown puppet.puppet -R /etc/puppet/rack/
/etc/init.d/puppetmaster stop #puppetmaster不须要再启动了,nginx启动后会自动调用puppetmaster
/opt/nginx/sbin/nginx -t #检测 nginx
/opt/nginx/sbin/nginx

监测:在client端能够进行同步就证实成功了。

wKiom1d7ukmQosHXAACQzZb1AD0542.png-wh_50

相关文章
相关标签/搜索