• puppet dashboard是GUI(图形用户界面)方式管理puppet,可以分析puppet运行日志。
      一、安装:
         1、添加第三方包仓库EPEL:
             rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
         2、安装ruby环境:
              yum -y install  ruby ruby-devel ruby-irb ruby-rdoc ruby-ri  ruby-libs ruby-rdoc openssl-devel
         3、安装dashboard依赖包:
             yum install -y mysql mysql-devel mysql-server ruby-mysql
         6、安装dashboard
             wget http://downloads.puppetlabs.com/dashboard/puppet-dashboard-1.2.23.tar.gz
             tar xf puppet-dashboard-1.2.23.tar.gz
             mv puppet-dashboard-1.2.23 /usr/local/dashboard
         7、启动mysql
             service mysqld start
      二、配置dashboard:
         1、编辑database.yml来指定数据库:
             cd /usr/local/dashboard
             vim config/database.yml

       
      production:
       database: dashboard
       username: dashboard
       password: dashboard
       encoding: utf8
       adapter: mysql
         2、使用rake命令基于database.yml来创建数据库dashboard:
             rake RAILS_ENV=production db:create
      (如果报错,就手动创建数据库)
      注:如果使用rake报错:
      rake aborted!
      undefined method `source_index' for Gem:Module
      可能是gem版本过高或者过低导致,解决办法:gem update --system 1.8.25
       
      mysql -uroot -p
      mysql> create database dashboard default charset utf8;
      mysql>use dashboard;
      mysql>grant all on dashboard.* to dashboard@localhost identified by 'dashboard' ;
      mysql>flush privileges;
      mysql>exit
         3、填充数据库:
             rake RAILS_ENV=production db:migrate
       
         4、修改dashboard的显示时区,默认为UTC,改为北京:
      vim config/environment.rb
      config.time_zone = "Beijing"
      三、启动dashboard:
         1、启动dashboard日志分析进程
             env RAILS_ENV=production /usr/local/dashboard/script/delayed_job -p dashboard -n 4 -m start  
         2、检查分析进程是否启动
             ps -ef|grep delayed_job|grep -v grep
         3、启动dashboard的GUI界面webrick(注:此方法不被推荐,建议使用apache+passenger或nginx+passenger来运行)
              /usr/local/dashboard/script/server -e production
             通过http://ip:3000访问测试。
      四、使用apache+Passenger运行puppet-dashboard:
         passenger比webrick复杂很多,也比webrick具有更好的性能,还能和apache或nginx组合在一起。
         1、安装apache:
             yum install -y httpd httpd-devel
         2、安装rubygems
             wget http://rubyforge.org/frs/download.php/76729/rubygems-1.8.25.tgz
             tar xf rubygems-1.8.25.tgz
             cd rubygems-1.8.25
             ruby setup.rb
         3、修改gem的源仓库
             gem sources -l  查看gem源
             gem sources -a http://ruby.taobao.org/  添加国内镜像源
             gem sources --remove http://rubygems.org/   删除国外源
         4、安装passenger:
             gem install passenger
         5、创建apache passenger模块:
             passenger-install-apache2-module
        6、配置apache主配置文件httpd.conf,添加如下内容:
             LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-4.0.10/buildout/apache2/mod_passenger.so
             PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-4.0.10
             PassengerRuby /usr/bin/ruby
             PassengerHighPerformance on
             #PassengerUseGlobalQueue on    #该选项在已被废弃
             PassengerMaxPoolSize 6               #passenger启动的线程数,通常为cpu核心个数的1.5倍
             PassengerMaxRequests 4000        #passenger接受的最大请求数
             PassengerPoolIdleTime 1800        #关闭空闲超过1800秒的passenger实例
      <VirtualHost *:80>
           ServerName dashboard.cmmobi-wh.com
           DocumentRoot  /usr/local/dashboard/public/
           <Directory /usr/local/dashboard/public/>
              # This relaxes Apache security settings.
              AllowOverride all
              # MultiViews must be turned off.
              Options -MultiViews
           </Directory>
      </VirtualHost>

       

         7、启动apache:
             service httpd restart
      五、使用Nginx+Passenger运行puppet-dashboard:
         1、编译安装nginx,加上passenger模块:
         ./configure --add-module=/usr/lib64/ruby/gems/1.8/gems/passenger-4.0.10/ext/nginx
         2、修改nginx配置文件如下:
       http {
           ...
           passenger_root /usr/lib64/ruby/gems/1.8/gems/passenger-4.0.10;
           passenger_ruby /usr/bin/ruby;
           ...
       }
        server {
           listen 80;
           server_name www.dashboard.com;
           root /usr/local/dashboard/public;
           passenger_enabled on;
        }
       
      六、汇总显示报告:
         1、导入现有report:
             cd /usr/local/dashboard
             rake RAILS_ENV=production reports:import
         2、实时导入report:
             puppet client端编辑/etc/puppet/puppet.conf
                 [agent]
                 report = true
         puppet master端编辑/etc/puppet/puppet.conf
                 reports = http,store
                 reporturl = http://172.16.5.156:80/reports
             service puppetmaster restart
             service puppet restart
       
      七、数据库维护:
         1、当puppet dashboard数据量过多的时候,需要优化数据库,可使用命令:
              rake RAILS_ENV=production db:raw:optimize
         2、清理dashborad一个月之前的数据:
             rake RAILS_ENV=production reports:prune upto=1 unit=mon
         3、备份puppet dashborad数据库:
             rake RAILS_ENV=production FILE=/my/backup/file.sql db:raw:dump
         4、恢复数据:
      rake RAILS_ENV=production FILE=production.sql db:raw:restore
posted on 2015-09-24 20:05  风魂樱之花  阅读(271)  评论(0)    收藏  举报