设为首页 收藏本站
查看: 1037|回复: 0

[经验分享] Puppet Dashboard的安装配置

[复制链接]

尚未签到

发表于 2018-8-2 09:05:32 | 显示全部楼层 |阅读模式
  一、什么是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 http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm
Retrieving http://yum.puppetlabs.com/puppetlabs-release-el-6.noarch.rpm  
warning: /var/tmp/rpm-tmp.LzShVn: Header V4 RSA/SHA1 Signature, key ID 4bd6ec30: NOKEY
  
Preparing...                ########################################### [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-dashbard  
rake 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。
DSC0000.jpg

  六、运行Dashboard(Passenger方式)
  1、使用Ruby Gem安装Passenger
yum install ruby-devel ruby-libs rubygems libcurl-devel  
yum 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  
<IfModule mod_passenger.c>
  
   PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-5.0.21
  
   PassengerDefaultRuby /usr/bin/ruby
  
</IfModule>
  
Listen 3000
  
<VirtualHost *:3000>
  
        DocumentRoot "/usr/share/puppet-dashboard/public/"
  
        <Directory "/usr/share/puppet-dashboard/public/">
  
                Options None
  
                AllowOverride AuthConfig
  
                Order allow,deny
  
                allow from all
  
        </Directory>
  
        ErrorLog /var/log/httpd/dashboard.error.log
  
        LogLevel warn
  
        CustomLog /var/log/httpd/dashboard.access.log combined
  
</VirtualHost>
  六、导入agent报告
  1、 手工导入现有的报告
  默认情况下agent将报告以文件形式上报到master的指定目录中,Dashboard可以将这些报告数据导入mysql中并通过Dashboard程序进行沉淀与展示,切换到/usr/share/puppet-dashboard。
rake RAILS_ENV=production reports:import
DSC0001.jpg

  默认情况下命令会在/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格式,除此之外还可以看到某一个节点在某一个时刻的更新报告和运行曲线图
DSC0002.jpg

DSC0003.jpg

DSC0004.jpg

DSC0005.jpg

  八、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

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-545100-1-1.html 上篇帖子: Puppet 案例介绍 下篇帖子: puppet子命令介绍
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表