Puppet Dashboard的安装配置-程序员宅基地

技术标签: 运维  数据库  ruby  

一、什么是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,如需转载请自行联系原作者



版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34124939/article/details/89990091

智能推荐

pg数据库连接失败:org.postgresql.util.PSQLException: ��������: û���������� “xx.xx.xxx.xx“,_org.postgresql.util.psqlexception: 尝试连线已失败。-程序员宅基地

文章浏览阅读2.1k次。在本地电脑写好了一个springboot + mybatis + pg的项目,在本地调试运行正常,将项目打成jar包在服务器上运行,当与pg交互时出现上述报错信息。上述表示允许IP地址为10.10.56.17的所有用户可以通过MD5的密码验证方式连接主机上所有的数据库。1)找到pg的安装路径,该路径下有个data文件夹,在data文件夹找到pg_hba.conf配置文件。2)打开pg_hba.conf配置文件,在ipv4下添加服务器ip,例如。3)修改后保存,打开pg终端,执行。_org.postgresql.util.psqlexception: 尝试连线已失败。

VScode下配置Go语言开发环境【2023最新】_vscode go-程序员宅基地

文章浏览阅读2.2w次,点赞49次,收藏130次。Windows 下安装和卸载 Go 及 vscode 环境配置【2023最新】_vscode go

Java毕业设计基于Springboot+vue的插画投稿网站_vue 插画-程序员宅基地

文章浏览阅读207次。插画投稿网站是提供给插画师们展示和分享自己作品的平台。这些网站通常允许插画师上传自己的作品,并与其他用户进行交流和互动。插画师可以在这些网站上展示自己的作品集,参与各种比赛和活动,与其他插画师进行合作,甚至有机会与潜在客户建立联系。是一个面向设计师和创意人才的社区平台,也是插画师展示作品的理想场所。在Dribbble上,插画师可以上传自己的作品,参与各种设计挑战和竞赛,与全球设计师社区互动,展示自己的创意和技能。_vue 插画

订单状态机-程序员宅基地

文章浏览阅读8k次,点赞8次,收藏57次。0 前言电商平台所有模块中,订单系统作为比较核心的模块,它决定了整个流程能不能顺畅的执行,起着承上启下的作用(下单、支付、履约、售后、清结算、营销活动)。订单系统的设计主要需要考虑订单字段、业务流程、状态机三大个方面,这些内容决定了订单系统稳定性与扩展性。2 订单流程订单流程指整个订单从产生到完成的整个流转过程,它包括正向流程和逆向的流程。3 订单状态机状态机表示了一笔订单的生命周期,按照一定的方向通过触发不同的事件产生数据流转的过程。状态机v2.0随着业务快速._订单状态机

Linux设备调试-GDB调试器-程序员宅基地

文章浏览阅读491次,点赞5次,收藏11次。工欲善其事,必先利其器”,为了方便Linux驱动设备的开发和调试,建立舒适的开发环境、使用必要的软件工具,以及掌握常用的调试技巧是比较重要的。本篇介绍GDB调试器的主要功能和常见用法,同时在第三部分中,命令顺序按照使用频率由高到低编写,方便阅读和使用。

nyoj-0613-免费馅饼(dp)-程序员宅基地

文章浏览阅读53次。nyoj-0613-免费馅饼 G. 免费馅饼都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼。说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内。馅饼如果掉在了地上当然就不能吃了,所以gameb...

随便推点

Bootstrap 导航/滑动门(nav)_bootstrap nav-程序员宅基地

文章浏览阅读3.7k次。Bootstrap导航/滑动门(nav)开发工具与关键技术:Visual Studio 前端作者:盘子撰写时间:2019年5 月27 日.nav导航/滑动门(nav)1、基本导航样式Bootstrap中提供的导航可共享通用标记和样式,从基础.nav样式类到活动与禁用状态。交换class选择符以在每种样式之间切换。基础.nav组件采用Flexbox弹性布局构建,并为构建所有类型的导航..._bootstrap nav

【MATLAB源码-第8期】基于matlab的DPSK的误码率仿真,差分编码使用汉明码(hanming)。-程序员宅基地

文章浏览阅读646次,点赞24次,收藏30次。(2)单从波形上看,2DPSK与2PSK是无法分辨的,比如图1中2DPSK也可以是另一符号序列(见图中下部的序列,称为相对码,而将原符号序列称为绝对码)经绝对移相而形成的。(2)单从波形上看,2DPSK与2PSK是无法分辨的,比如图1中2DPSK也可以是另一符号序列(见图中下部的序列,称为相对码,而将原符号序列称为绝对码)经绝对移相而形成的。(1)与2PSK的波形不同,2DPSK波形的同一相位并不对应相同的数字信息符号,而前后码元的相对相位才能唯一确定信息符号。、MATLAB 源码获取。

大模型日报-20240108-程序员宅基地

文章浏览阅读1k次,点赞36次,收藏21次。大模型最新动态

C语言实现密码输入显示星号 VS2010 亲测通过 功能加强版_vs中密码输入为星号是哪一个属性-程序员宅基地

文章浏览阅读1.7k次。// 登录界面 第一次可设置密码 之后的登录要输入密码进行验证 密码长度8~12//长度过长会截断取前12位,不足8位会提示出错 要求重新输入//密码中必须有 字母数字和特殊字符 否则会报错// VC 6.0#include#include#include#include#include#include#define LEN 12_vs中密码输入为星号是哪一个属性

Matlab图像处理系列——图像复原之维纳滤波复原、约束最小二乘复原、L-R复原、盲去卷积图像复原_matlab维纳滤波图像复原-程序员宅基地

文章浏览阅读1.3k次,点赞21次,收藏22次。Lucky-Richardson(L-R)算法是非线性方法中一种典型的算法,在噪声信息未知时仍可得到较好的复原结果。维纳滤波又称为最小均方误差滤波,综合考虑了退化函数和噪声,找出一个原始图像f(x)的估值,使两者的均方误差较小。psf表示退化过程的点扩散函数,用于恢复psf和可能的加性噪声引起的退化;P(u,v)是函数p(x,y)的傅里叶变换,p(x,y)为拉普拉斯算子。Weight表示每个像素的加权值,记录了每个像素反应相机记录的质量。Dampar表示结果图像偏差的阈值,当偏差小于该值,算法停止迭代。_matlab维纳滤波图像复原

柔性数组详解-程序员宅基地

文章浏览阅读51次,点赞5次,收藏3次。这是结构体和动态内存管理的结合,事实上这个概念不常用,因为你会发现和线性表中的顺序表几乎如出一辙,区别只是一个是数组,一个是指针,都是需要动态申请内存。包含柔性数组的结构体的内存,用malloc函数申请内存,而由于结构体的大小不包括柔性数组,因此在开辟空间时要大于结构体的大小,用于预期柔性数组的使用。示例:(struct s*)malloc(sizeof(struct s) + 20);3、未知大小的 数组。