Puppet Dashboard的安装配置

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

一、什么是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

1
2
3
4
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

1
yum  install  puppet-dashboard

四、配置Dashboard

1、配置mysql环境

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

# mysql -uroot -ppassword

1
2
3
4
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

1
2
3
4
5
6
production:
   database: dashboard
   username: dashboard
   password: dashboard
   encoding: utf8
   adapter: mysql

3、通过rack填充数据库

1
2
cd  /usr/share/puppet-dashbard
rake db:migrate RALLS_ENV=production

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
+------------------------------+
| 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的运行方式。

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

或者

1
service puppet-dashboard start

五、访问Dashboard

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

wKioL1ZER7HQcb9GAACJcH5lpdM316.jpg

六、运行Dashboard(Passenger方式)

1、使用Ruby Gem安装Passenger

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

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

1
2
3
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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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。

1
rake RAILS_ENV=production reports: import

wKioL1ZERxvTbNxDAAJTTxspf5A093.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 

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

# cat /etc/puppet/puppet.conf

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

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

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


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

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

1
service puppet-dashboard-workers

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

1
rake RAILS_ENV=production jobs:work &

4、修改dashboard时区

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

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

1
2
time_zone:  'Asia/Shanghai'

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


七、显示报告

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

wKioL1ZEfBzQNDHAAAGhC14eZZc899.jpg


wKiom1ZEfEGgFMnEAAF0eYNu-gQ683.jpg


wKioL1ZEfIzibtjRAAEzPB_jHCo525.jpg


wKioL1ZEfI2Tt5HpAAEA6lmTx6c563.jpg


八、Dashboard日志、数据优化

1、Dashboard日志清理

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

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

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

2、数据库优化

1
rake RAILS_ENV=production db:raw:optimize






     本文转自 wzlinux 51CTO博客,原文链接:http://blog.51cto.com/wzlinux/1712204,如需转载请自行联系原作者



相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
关系型数据库 MySQL Linux
puppet连载四:服务端安装dashboard
curl -sSL https://rvm.io/mpapis.asc | gpg2 --import - curl -L get.rvm.io | bash -s stable source /etc/profile.
1192 0
|
关系型数据库 MySQL Linux
puppet 整合dashboard
转载:http://blog.51cto.com/ywzhou/1576583一、安装配置Dshboard 1、功能说明 Puppet Dasshboard是由支持Puppet开发的公司Puppetlabs创建的,是Ruby on Rails程序; 可...
1361 0
|
关系型数据库 数据库 数据安全/隐私保护
|
关系型数据库 MySQL 数据库
yum puppet dashboard
该Dashboard是一种运行在Rails上的Ruby应用程序,它还不是可以添加到系统版本中的程序包,但是我们可以从Puppet Labs以RPM或者DEB包的形式获得该软件。我们也可以选择从资源进行安装。
812 0
|
安全 Linux 网络协议
puppet yum模块、配置仓储、mount模块
转载:http://blog.51cto.com/ywzhou/1577335 作用:自动为客户端配置YUM源,为使用yum安装软件包提供便捷。 1、服务端配置yum模块 (1)模块清单 [root@puppet ~]# tree /etc/puppe...
1070 0
|
网络协议 安全 网络安全