博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Puppet Dashboard的安装配置
阅读量:6093 次
发布时间:2019-06-20

本文共 5123 字,大约阅读时间需要 17 分钟。

一、什么是Puppet Dashboard

    Puppet Dasshboard是由支持Puppet开发的公司Puppetlabs创建的,是Ruby on Rails程序。可以作为一个ENC(外部节点分类器)以及一个报告工具,并且正在逐渐成为一个包含许多Puppet新功能的集成界面,例如审计和资源管理功能。

    Puppet Dashboard是一个Ruby on Rails程序,用于显示Puppet master和agent的相关信息。它允许你查看从一个或多个Puppet master汇总的图形和报告数据。它同时从一个或者多个Puppet master上收集来自于Puppet agent的资产数据(主机的Fact和其他信息)。最后,它能作为一个ENC来配置Puppet节点,并指定这些节点上的类和参数。

    Agent会定期上报日志到Master,由于我们管理的Agent比较多,少量的Agent出现故障时,快速定位出现故障的Agent是摆在运维工程师面前的一道难题。而Puppet正巧提供了一款工具来解决这样的问题,它将数据可视化的建立了数值与人的连接,借助图形的力量,清晰的有效展示了问题的所在,这款工具就是Puppet Dashboard。

二、安装puppet提供的rpm仓库

# rpm -ivh

Retrieving http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpmwarning: /var/tmp/rpm-tmp.LzShVn: Header V4 RSA/SHA1 Signature, key ID 4bd6ec30: NOKEYPreparing...                ########################################### [100%]   1:puppetlabs-release     ########################################### [100%]

把安装的软件仓库配置文件repo里面的gpgcheck=1全部修改为gpgcheck=0。

三、安装Dashboard

yum install puppet-dashboard

四、配置Dashboard

1、配置mysql环境

把mysql配置文件中的max_allowed_package改为32M或者更大,然后重启数据库。

# mysql -uroot -ppassword

mysql> create database dashboard character set utf8;mysql> grant all privileges on dashboard.* to 'dashboard'@'%' identified by 'dashboard';mysql> grant all privileges on dashboard.* to 'dashboard'@'localhost' identified by 'dashboard';mysql> flush privileges;

2、编辑Dashboard的YMAL配置文件

# cat /usr/share/puppet-dashboard/config/databases.yml

production:  database: dashboard  username: dashboard  password: dashboard  encoding: utf8  adapter: mysql

3、通过rack填充数据库

cd /usr/share/puppet-dashbardrake db:migrate RALLS_ENV=production

# mysql -udashboard -pdashboard -D dashboard -e "show tables;"

+------------------------------+| Tables_in_dashboard          |+------------------------------+| delayed_job_failures         || delayed_jobs                 || metrics                      || node_class_memberships       || node_classes                 || node_group_class_memberships || node_group_edges             || node_group_memberships       || node_groups                  || nodes                        || old_reports                  || parameters                   || report_logs                  || reports                      || resource_events              || resource_statuses            || schema_migrations            || timeline_events              |+------------------------------+

4、运行Dashboard

    WEBrick有助于快速使用Dashboard,不过它不能很好地进行扩展,并且当有许多Puppet agent向Dashboard进行报告时,它的性能会非常差,因此不推荐使用,但是为了快速查看到效果,这里我们先使用这种运行方式,后面我在介绍Passenger的运行方式。

/usr/share/puppet-dashboard/script/server -e production -d

或者

service puppet-dashboard start

五、访问Dashboard

在浏览器中输入IP:3000来访问puppet的Dashboard。

六、运行Dashboard(Passenger方式)

1、使用Ruby Gem安装Passenger

yum install ruby-devel ruby-libs rubygems libcurl-develyum install httpd-devel apr-util-devel apr-devel mod_ssl

这里推荐使用配置gem的淘宝源来安装Passenger,国外的比较卡。

gem sources --remove http://rubygems.org/ gem sources -a https://ruby.taobao.org/ gem install rack passenger

2、配置虚拟主机和passenger   

# cat /etc/httpd/conf.d/passenger.conf

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-5.0.21/buildout/apache2/mod_passenger.so
   PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-5.0.21   PassengerDefaultRuby /usr/bin/rubyListen 3000
        DocumentRoot "/usr/share/puppet-dashboard/public/"        
                Options None                AllowOverride AuthConfig                Order allow,deny                allow from all                ErrorLog /var/log/httpd/dashboard.error.log        LogLevel warn        CustomLog /var/log/httpd/dashboard.access.log combined

六、导入agent报告

1、 手工导入现有的报告    

    默认情况下agent将报告以文件形式上报到master的指定目录中,Dashboard可以将这些报告数据导入mysql中并通过Dashboard程序进行沉淀与展示,切换到/usr/share/puppet-dashboard。

rake RAILS_ENV=production reports:import

    默认情况下命令会在/var/lib/puppet/reports目录中查询并导入已经生成报告的文件。如果路径发生变化,导入报告时需要在后面加上“REPORT_DIR=report路径”,reports更改路径可在puppet.conf中设置参数“reportdir = 新路径”,这种方式不够实时。

    通常需要将reports:import命令放在定时任务中执行,如果已经通过reports:import导入过数据,再次导入数据就会以增量方式追加到Dashboard的数据库中,

2、配置实施汇总puppet报告

配置agent节点自动发送报告

# cat vim /etc/puppet/puppet.conf 

[agent]report = true  #从2.7.0版本开始,报告系统会默认开启,不需要配置

# cat /etc/puppet/puppet.conf

[main]    reports = http      reporturl = http://IP:3000/reports
service httpd restart

reports :定义为http报告处理器,除此之外还有store,log,tagmail,rrdgraph等报告处理器。

reporturl:不是必须的参数,如果要更改汇总报告地址或者端口可以通过此参数修改。

3、开启后台处理报告进程

开启之后不再需要我们手动导入报告,只要有新的报告来临,我们就会添加,然后图形展示。

service puppet-dashboard-workers

但是官方更推荐使用以下方式

rake RAILS_ENV=production jobs:work &

4、修改dashboard时区

Dashboard默认时区为UTC格式,我们这里需要更改为CST(Asia/Shanghai)格式

# cat /usr/share/puppet-dashboard/config/settings.yml

time_zone: 'Asia/Shanghai'…

**备注**:设置的settings.yml会覆盖掉config/environment.rb中对应的配置项(config.time_zone = 'UTC')

七、显示报告

    通过http://IP:3000/ 及时查看节点更新的报告信息,可以看到很多节点,默认显示时间为CST格式,除此之外还可以看到某一个节点在某一个时刻的更新报告和运行曲线图

八、Dashboard日志、数据优化

1、Dashboard日志清理

      Dashboard和其他的Rails程序一样,会将整个的运行过程的信息记录在/usr/share/puppet-dashboard/log目录中,这些日志会随着访问量不断地增长,我们需要定时对此目录中的文件进行清理,以免日志将磁盘充满,命令具体如下

cd /usr/share/puppet-dashboard; rake log:clear

     最好将他写入到crontab定时任务中,定时清理残留日志。

2、数据库优化

rake RAILS_ENV=production db:raw:optimize

转载地址:http://srrwa.baihongyu.com/

你可能感兴趣的文章
webapp返回上一页 处理
查看>>
新安装的WAMP中phpmyadmin的密码问题
查看>>
20172303 2017-2018-2 《程序设计与数据结构》第5周学习总结
查看>>
(转)HTML的代码(从朋友那转的,看着觉得会有用就转了)
查看>>
eclipse中将一个项目作为library导入另一个项目中
查看>>
Go语言学习(五)----- 数组
查看>>
Android源码学习之观察者模式应用
查看>>
Content Provider的权限
查看>>
416. Partition Equal Subset Sum
查看>>
centos7.0 64位系统安装 nginx
查看>>
数据库运维平台~自动化上线审核需求
查看>>
注解开发
查看>>
如何用 Robotframework 来编写优秀的测试用例
查看>>
Django之FBV与CBV
查看>>
Vue之项目搭建
查看>>
app内部H5测试点总结
查看>>
Docker - 创建支持SSH服务的容器镜像
查看>>
[TC13761]Mutalisk
查看>>
三级菜单
查看>>
Data Wrangling文摘:Non-tidy-data
查看>>