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
Passenger Ruby
/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
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