开发者学堂课程【企业运维监控平台架构设计与实现:实现ganglia与centreon的无缝整合】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/384/detail/4825
实现ganglia与centreon的无缝整合
目录:
一、前言
二、实现Ganglia与Centreon的完美整合
三、告警历史
四、统一监控系统架构图
一、前言
check_ check pgsql
[root@locaThostplugins]#1 fping 1check_ganglia_metric.py.
-rwxr-xr-x 1 root_root 2857 Mar 30 i8:i6 check_gang1ia_metric.py
Usage:_check_ganglia metric -hl--host= -m|--metric=-wl--warning=-c/critica[root@localhost plugins]#pwd
7usr/ibfnagios/plugins
[root@1oca1hostplugins]#./check_gang1ia_metric.py-h 192.168.81.233 -m disk_free -w 1000 -c 200CHECKGANGLIA Ok:"disk_free is 96.09
[root@1ocaThostplugins]#cd /usr/1ib64/nagios/plugins/[rootQlocalhostplugins]#Ts
checknrpe._.-.[rootaiocalhostplugins]#77
total 36
-rwxr-xr-x_1nagiosnagios33692Ju122013check_nrpe[root@iocalhostplugins]#
所有的服务不可以通过所介绍的两个插件去实现,其上为其中一个插件。
同时可以自我创建,或采用网络上提供的方案(如下)。
现有方案,推荐两个现成的数据提取脚本:
Python版本: http://www.ivey.com/ganglia/check ganglia metric.py.txt
Php版本:http://www.iivey.com/ganglia/check ganglia metric.php.txt
二、实现Ganglia与Centreon的完美整合
通过 Python 的一个插件。以及通过自我写取插件,进行查验。
Ø熟悉 ganglia 作为一个数据所具备的存储功能机制,进行之后一系列书写,作为一个脚本,实现检查。
Ganglia 在默认情况之下,数据更新为十秒一次。频率相对较高。基本可以满足监控需求。
Ø对于服务的监控,若服务器过少,则没有任何问题。若服务器很多,服务器可以监控到,但服务故障长达一个小时之久。才可以收到报警信息。这种状态表明监控服务过多。获取状态值慢。导致信息延迟。那么报警则失去原本的意义。
Ø若使用 ganglia ,则不会出现如上情况,数据提取在本地完成,不需经过任何网络。效率十分高效。
三、告警历史
如图方式进入查看。
通过此平台。查看很多第三方插件。
例如: Elk。
ELk 实质是对服务器的日志进行收集。同样也可将其收集到此平台。
点击进入 Syslog ,可以查看多数数据。
即服务器内部有多少数据可以在此平台看出:
这便是第三方的一个模块,这就是所谓日志分析功能。
现如下进行一个top操作:
在192.168.81.236中进行
[在root@host236]#top
正常输入完指令之后,会在平台内部打印出
刷新时长10秒一次
结果如下:
依据上述操作即可,看是否使用符合。
关于是否成型安装文档,相关文档于下方可知:
Centreon 安装配置实录(超详细)
Centreon 是一款功能强大的分布式 IT 监控系统,它通过第三方组件可以实现对网络、操作系统和应用程序的监控︰
首先,它是开源的,我们可以免费使用它;其次,它的底层采用 nagios 作为监控软件,
同时 nagios 通过 ndoutil 模块将监控到的数据定时写入数据库中,而 Centreon 实时从数据库读取该数据并通过Web界面展现监控数据﹔,最后,我们可以通过Centreon 管理和配置 nagios ,或者说 Centreon 就是 nagios 的一个管理配置工具,通过 Centreon 提供的 Web 配置界面,可以轻松完成 nagios 的各种繁琐配置。
包括:
Centreon 数据库功用介绍
CES 安装步骤
centreon 双系统部署流程
Nagios for WAS.
例:CES 安装步骤
安装 central 主服务器
1.通过官方镜像安装 CES central 服务器和 poller 服务器,下载连接如下.
心
http://www.centreon.com/Content-Download/download-centreon-enterprise-server
2. 从光盘启动服务器,按提示安装。
选择全新安装
He
l
come to CES 3.21
Install or upgrade an exist ing system
Insta 1 1 system with bas ic U ideo dr iver
Rescue instal led systen
Boot from1 oca 1 dr iue
Menory test
Press [Tab] to edit opt i ons
utomat ic boot in 49 seconds.
选择储存类型
此时会有-一个警告,选yes
为服务器起名字。并设置IP地址。
此例中-
Hostname: ces3
IPv4地址: 192.168.1.1/24
GW: 192.168.1. 254
选择时区- Asia/Shanghai
输入root密码后,会出现以下画面,选择第二个。
如果需要进行自定义的LVM设置,可以
选择最后-一个Create Custom Layout.
确认后,等待片刻,出现以下画面,选择Centreon Server with database.
说明:
●Central server with database :安装centreon (网页服务以及数据库),oentreon-engine
以及centreon- broker.
●Central server without database :安装centreon ( 网页服务,不装数据库),
centreon-engine以及centreon-broker.
●Pollerserver:仅仅安装centreon-engine
十
●Databaseserver:仅仅安装数据库服务器安装过程会持续几分钟
完成后按 reboot 重启
从网页配置 Centreon
重启系统完毕后,从浏览器打开 http://[SERVER IP]。
向导会自动检查模块安装情况
选择监控引擎为 centreon-engine
此处无需修改,直接 NEXT
选择 Broker 为 Ce ntreon-broker
此处无需修改,直接 NEXT
设置网页端管理员密码以及身份信息,此例中帐号/密码设置为 admin/centreon.
数据库设置:
设置数据库 root 密码。
设置 Database User Name 以及密码,此帐号为 Centreon 连接数据库用。
等待几分钟,安装程序会初始化数据库,完成后看到以下画面。
等待几分钟,安装程序会初始化数据库,完成后看到以下画面。
最后,按finish完成安装。
现在可以从网页登陆了。
用 admin 帐号登陆后,进入Configurations - Centreon,检查poller的running状态,如果
显示为no,作以下动作将服务重启。
#/etc/init.d/centstoage restart
#/etc/init.d/cencore restart
#/etc/init.d/cbd restart
#/etc/init.d/centrengine restart
以上操作完成后,确认 tcp5668 端口处于监听状态。
如果以上都没有问题, central 的 poller 将会处于 running 态。可以检查 centreon和 nagios 的 log 文件进行问题排查。
例:安装 poller 服务器
1. 使用相同的镜像进行poller安装,安装时选择poller, 监 控引擎选择Centreon engine。
此处选择 PollerServer, 其他过程与 centreon 一致。
2.安装完毕后,将poller服务器链接到central服务器中。步骤如下,
●增加密钥认证
(1)以 centreon帐户在centreon服务器上生成SSH认证密钥。
# su- centreon
$ ssh-keygen
Ge nerati ng public/ private rsa key pair.
Enter file in which to save the key
(/var/spool/centreon/.ssh/id_ rsa):
Created directory '/var/spool/centre on/ .ssh'.
Enter passphrase (empty for no pass phrase):
Enter same passphrase again:
Your identification has been saved in /var/spool/ce ntreon/.ssh/id_ rsa.
Your public key has been saved in /var/spool/centreon/. ssh/id_ rsa.pub.
(2) 将密钥从 centren 拷贝至远程 poller 服务器,$ ssh-copy-id -i~/.ssh/id_ rsa.pub centreon@{IP_ ADDRESS}
(3) 完成后, 尝试从 central 建立 ssh 连接登陆远程 poller 。如果不需要输入密码,则验证成功。
Sssh ce ntreon@{IP_ ADDRESS}
●在 centreon 中添加 poller
(1) 用管理员登陆 centreon 后进入Configuration -> Centreon -> Pollers -> Add.按照实际情况填入相关信息.
注意: IP Address 为远程 poller 的 IP 地址( 192.168.2.2), poller类型为centreon engine.
其他设置与默认 poller(127.0.0.1)保持一致。
(2)接下来配置 Borker 。进入 Configuration - Centreon
-CentreonBroker-Configuration,使用 Add with wizard。
选择 Simple Poller
Configuration name 可以随便写
Requester 选择刚才新建的 poller
Crental address 填写 centreon 主机的地址
(3)确认后会生成- -个新的 broker 配置,点击打开,进入 output 选项卡,确认配置如下。
注意: Output1 中需填写 ce ntral 的 IP。
确认后,回到 General 选项卡,将状态改为 Eanbled ,最后保存。
(4)进入 Configuration > Monitoring Engines > Main.cfg, 选中 Centreon Engine CFG 1,选择 more actions,然后duplicate一-个 新的 CFG。
(5)点击新的 CFG 进行配置,在 File 选项卡中,为新的配置起-一个名称,uinked poller,选择刚才新建的 poller。 其余保持默认。
在 Check Options 选项卡中,将 Aggressive Host Checks 设置为 No 。
(6)进入 Centreon-Monitoring engines - Generate, 如下图选择后,点击 Export
(7)进入 Configuration一Centreon ,确认新增的 poller 状态。
如果 poller 不处于 running 状态,请登陆 poller 以及 centreon ,分别检查以下日志(如果日志存在),然后针对错误信息进行处理。
/var/log/ce ntreon-engine/centengine.log
/var/log/ce ntreon/ce ntcore.log
/var/log/ce ntreon/ce ntstorage .log
/var/log/ce ntreon/sql-error.log
/var/log/ce ntreon-broker/*.log
(8) 至此,central 和 poller 的配置就完成,如需添加更多 poller, 可以重复以上过程。
配置邮件报警
邮件报警需要在每台 poller_ 上启用,过程如下:
1.安装报警脚本,我们使用 sendEmail 来进行报警,优势在于可以使用远程的 SMTP
服务器进行报警邮件发送。
#yum install sendEmail
或者从官网下载:
http://caspian. dotconf.net/menu/Software/SendEmail
2.配置报警 command
进入 configuration-comm and-notification
分别配置 host 和 service 的报警命令:
Host:黄色为程序路径,绿色为 SMTP 服务器地址
/tmp/se ndEmail-v 1.56/send Email
-f alert@oentreon.com -t SCONTACTEMAIL$
SNOTIFICATIONTYPE$ Service Alert: SSE RVICENAMES is SSERVICESTATE$ *" -m ****** centreon
Notification
** ***\n\nN otifi cation
Type:
$NOTIFICATIONTYP E$\n\nService :
SSERVICEDESC$\n Host:
SHOSTALIASS\nAddress:
$HOSTADDRESSS\nState:
$SERVICESTATES\n\nDate/Time:
$DATE$
Ad ditional
Info
$SERVICEOUTPUT$\n$SERVICENAME$ is $SERVICESTATE$" -s 192.168.0.55:25
Service:黄色为程序路径,绿色为SMTP服务器地址
/tmp/sendEmail-v 1.56/send Email
-f alert@centreon.com -t SCONTACTEMAILS
-u“**
SNOTIFICATIONTYPE$ Service Alert: $SERVICENAME$ is $SERVICESTATES本本" . -m“***** centreon
Notification
*****\n\nN otifi cation
Type:
SNOTIFICATIONTYPE$\n\nService:
$SERVICEDESCS\n Host:
$HOS TALIASS\nAddress:
$HOS TADDRESS$\nState:
SSERVICESTATES\n\nDate/Time:
$DATES
Additional
Info
:
$SERVICEOUTPUT$\n$SERVICENAME$ is $SERVICESTATE$"-s 192.168.0.55:25
3.将报警命令与用户做关联
进入 Configuration - Users', 编辑 'admin' 的报警命令关联。
4.然后,与该用户关联的服务或者主机出问题后,会发送报警到该用户的邮箱。
四. 统一监控系统架构图
Ø由图可知:最前端,Web 管理平台。基于 central 的管理平台。平台下方有ganglia 的服务端,与 central 的服务端组成一块。ganglia 的服务端 gmetad ,最高等级模块会前往下一级 gmetad 平台数据的拉取。每一个 class 相当于一个异地的机房,每个机房内部结构,服务端进行拉取数据。汇聚之后,在最终管理端汇总。
Øganglia 服务端可以分为多级,gmetad 客户端也可分级。每一个应用上的布局不同,可以将其分级。通过多级方式进行部署,在每个机房之间。数据传输方式也可多分组。
Ø若所有数据均汇入北京机房。则所有数据在一个服务器内,则服务器存在单点故障问题,则数据会消失。则可以对一级的 ganglia 做双击设备,平等分出另一个备机,备机的数据并非通过主机传输。通过与主机一样的方式。与全国各地机房进行接点数据获取。则总的数据中心保留两份。
若第一级别管理,出现故障可转向第二级别,实现无缝转移。
Cluster1-N 均为一个分布式集群,也可以认为是-个机房数据中心。
每个数据中心的 Node server 都运行一一个 Gmond 守护进程,进行数据收集,将收集到的数据汇总到 Gangliaproxy 主机,Gangliaproxy 主机上运行着 Gmetad 守护进程。
同时 Ganglia proxy 和 Node server 都加载通过 c 或者 Python 编写的 Ganglia 插件,打展 Ganglia 监控功能。
Managerserver 是一一个管理 主机,主要用于收集从各个机房数据中心的监控数据,通过数据抽取模块将 Nagios 和 Ganglia 整合到一起,考虑到数据的安全性,Manager server 建议做一个备机,平时主机和备机同时工作,进行数据收集,主机故障时,自动切换到备机,保证管理主机高可用。
监控数据和报表通过 Web 方式展示出来,将 Nagios 和 Ganglia 的 web 进行整合,并作二次开发,通过一个统一的界面展示监控状态和报表信息。