- 前言
- 为什么要写这本书
- 读者对象
- 如何阅读本书
- 勘误和支持
- 致谢
- 第一部分 安全运维篇
- 第 1 章 Linux 服务器安全运维
- 第 2 章 Linux 网络安全运维
- 第 3 章 数据安全工具 DRBD、extundelete
- 第二部分 运维故障排查篇
- 第 4 章 Linux 系统运维故障排查思路
- 第 5 章 Linux 故障排查案例实战
- 第三部分 自动化运维篇
- 第 6 章 轻量级运维利器 pssh、pdsh 和 mussh
- 第 7 章 分布式监控系统 Ganglia
- 第 8 章 基于 nagios 的分布式监控报警平台 Centreon
- 第 9 章 通过 Ganglia 与 Centreon 构建智能化监控报警平台
- 第四部分 集群架构篇
- 第 10 章 高性能 Web 服务器 Nginx
- 第 11 章 高性能集群软件 Keepalived
- 第 12 章 千万级高并发负载均衡软件 HAProxy
- 第 13 章 构建高性能的 MySQL 集群系统
- 第 14 章 高性能负载均衡集群软件 HAProxy
8.6 配置分布式监控
支持分布式监控是 Centreon 系统核心的功能,在前面章节简单介绍了 Centreon 的分布式监控架构,本节将对分布式监控进行详细阐述。
8.6.1 分布式监控架构与实现原理
在介绍分布式监控之前,先介绍一下我们要实现的分布式监控的架构,如图 8-59 所示。
图 8-59 典型的 Centreon 分布式监控架构
从图 8-59 可以看出,Centreon 的分布式监控是由多个 Poller 和一个 Central 构成的。在 Centreon 分布式监控中,远程的扩展节点称为 Poller,而本地的中心服务器称为 Central,在通常情况下,远程的 Poller 服务器上仅需要安装 nagios 监控引擎及 ndoutils 模块,而 Central 服务器上需要安装 nagios、nagios-plugins、ndoutils、MySQL、Centreon 和 Centreon Web 等,这些前面章节已经做过详细介绍。
远端的 Poller 服务器通过自身安装的 ndomod 模块与 Central 服务器上的 Ndo2DB 进行通信,最终将监控状态写入 MySQL 数据库,以供 Centreon 调用。
8.6.2 分布式监控搭建环境介绍
下面我们将通过一个实例详细介绍下 Centreon 分布式监控的搭建过程,搭建环境如图 8-60 所示。
图 8-60 两个节点的 Centreon 分布式监控
本实例环境是一个中心服务器(Central server)和一个远程扩展节点(Poller server)组成的分布式监控系统,相关 IP 信息如下:
Central server :192.168.12.200 Poller server :192.168.12.188
在介绍安装之前,简单说明下分布式监控的运作流程:在分布式监控中,所有的配置都在中心服务器也就是 Central server 上完成,配置完成后,生成的配置文件由 Central server 通过 SSH 方式推送到其他远程 Poller server 上,然后 Central server 还会远程重启 Poller server 上面的 nagios 服务,以使远程扩展节点上面的 nagios 配置生效,最后,Poller server 会通过 nagios 监控自己本地所在的服务或主机,并将监控状态实时写入中心服务器上的 MySQL 数据库中,以实现中心服务器对所有分布式主机的集中监控和展现。
下面详细介绍整个配置过程。
8.6.3 监控软件的安装
监控软件的安装分为两个部分:首先是 Central server 端的安装,主要安装有 nagios、nagios-plugins、ndoutils、nrpe、Centreon 等软件,安装方法前面章节已经介绍,这里不再讲述;最后是 Poller server 端的安装,在 Poller server 端的安装非常简单,仅需要安装 nagios 和 ndoutils 两个部分,如果需要 nrpe 服务,还可以安装 nrpe,安装方法前面也都已介绍,这里也不再多讲。
在 Poller server 端安装完 nagios 后,默认的配置文件路径为/etc/nagios,以后从 Central server 上推送过来的配置文件,默认也会放到这个路径下,因此要保证/etc/nagios 目录对 Central server 有读写权限,需要在 Poller server 上做如下授权:
[root@Poller server ~]# chown –R centreon:centreon /etc/nagios
为什么要做这个授权,8.6.4 节有详细介绍。接着,还需要在 Poller server 上启动 nagios 和 ndoutils 服务,操作如下:
[root@Poller server ~]# /etc/init.d/nagios start [root@Poller server ~]# /etc/init.d/ndoutils start
最后一步,为了简单起见,建议把 Central server 上的所有 nagios 插件(默认路径为/usr/lib64/nagios/plugins)复制到 Poller server 上对应的 nagios 插件路径下。
8.6.4 配置节点间 SSH 信任登录
为了让 Central server 上生成的配置文件能自动分发到 Poller server 上,需要在 Central server 和 Poller server 之间进行 SSH 单向信任,在进行用户信任登录之前,需要了解下 Centreon 分布式监控系统中几个重要的用户。
在 Centreon 分布式监控系统中,主要有两个进程用户,分别是 nagios 和 Centreon,nagios 用户主要完成 nagios 监控引擎中主机或者服务的主动监控,而 Centreon 用户主要用来管理 Centstorage 和 Centcore 服务,而 Centcore 服务就是用于配置文件的推送,因此,这里要执行的 SSH 登录信任用户是 Centreon,而非 nagios,这点需要特别注意。
配置 SSH 登录信任的方式很简单,由于只需配置从 Central server 到 Poller server 之间的单向信任,因此,需要首先在 Poller server 上创建一个 Centreon 用户并设置密码,然后在 Central server 服务器上执行如下操作即可:
[root@centreon-server /]# su - centreon [centreon @centreon-server ~]$ ssh-keygen # 依次按回车键即可 [centreon@centreon-server~]$ ssh-copy-id -i ~/.ssh/id_rsa.pub centreon@192.168.12.188 # 根据提示,输入 192.168.12.188 服务器 Centreon 用户的密码即可 [centreon@centreon-server~]$ ssh 192.168.12.188 date # 验证 SSH 信任登录是否成功
接下来,为了能让 Poller server 上的 Centreon 用户管理 nagios 服务,还需要在 Poller server 上进行 sudo 配置,其实也就是在/etc/sudoer 文件的最后添加如下内容:
centreon ALL=NOPASSWD: /etc/init.d/nagios restart centreon ALL=NOPASSWD: /etc/init.d/nagios stop centreon ALL=NOPASSWD: /etc/init.d/nagios start centreon ALL=NOPASSWD: /etc/init.d/nagios reload centreon ALL=NOPASSWD: /usr/bin/nagiostats centreon ALL=NOPASSWD: /usr/bin/nagios * centreon ALL=NOPASSWD: /etc/init.d/ndoutils *
这样配置以后,Central server 上面的 Centreon 用户就可以通过无密码的方式登录到 Poller server 上远程管理 nagios 服务,实现 Central server 对 Poller server 的分布式远程监控。
修改完成后,在 Central server 的 Centreon 用户下执行 ssh sudo 命令来测试设置是否正确,操作如下:
[nagios@ Central server ~]$ ssh 192.168.12.188 sudo /etc/init.d/nagios restart
第一次执行可能会出现如下错误:
sudo: sorry, you must have a tty to run sudo
解决方法非常简单,修改 Poller server 服务器上的/etc/sudoers 文件,注释掉如下属性:
Defaults requiretty
再次执行上面的命令,应该就能顺利执行了。
8.6.5 在 Central server 上添加分布式监控配置
1.添加一个 Poller
选择“Configuration→Centreon→Pollers”,单击“Add”添加一个新的 Poller,为了方便起见,也可以直接复制一个默认的 Poller,然后进行简单修改即可。图 8-61 展示的是复制的默认名为 Central 的 Poller。
图 8-61 添加一个名为 myCentral 的 Poller
这里重点关注三个选项:“Poller Name”是指定一个 Poller 名称,这里是“myCentral”,可以随意指定;“IP Address”就是 Poller server 的 IP 地址,这里输入“192.168.12.188”;最后一个是“SSH port”,默认是 22 端口,可根据情况修改。其他配置无须改动,在配置完成后,保存退出即可。
2.为 Poller 添加 ndomod 配置
ndomod 配置就是指定 Poller server 所要连接到 Central server 的信息,包括 Central server 的 IP 地址、通信端口等设置。
选择“Configuration→Centreon→ndomod.cfg”,单击“Add”添加 myCentral 的 ndomod.cfg 配置。同理,为了方便,可以直接复制默认的 ndomod.cfg 配置 Central-mod,修改后的结果如图 8-62 所示。
这里重点关注方框中的 5 个选项:在“Description”中输入的“myndomod”是添加的 ndomod 配置的名称;在“Instance Name”中选择刚刚添加的名为 myCentral 的 Poller;将“Status”标记为“Enabled”状态;在“Interface Type”中一定要选择“tcpsocket”;最后一个“Output”选项非常重要,它表示将监控状态输出到哪个节点,这里一定要填写 Central server 的 IP 地址,即为“192.168.12.200”。后面还有几个选项,按照默认的配置即可,无须修改。
图 8-62 添加 myCentral 的 ndomod.cfg 配置
3.为 Poller 添加 ndo2db 配置
ndo2db 服务只在 Central server 上存在,选择“Configuration→Centreon→ndo2db.cfg”单击“Add”添加 myCentral 的 ndo2db.cfg 配置,这里同样直接复制默认的 ndo2db.cfg 配置 Principal,修改后的结果如图 8-63 所示。
图 8-63 添加 myCentral 的 ndo2db.cfg 配置
在“General”标签中,需要注意的选项有“Requester”,这里选择“myCentral”即可,“Socket Type”选择“tcp”,而“TCP Port”只要和 ndomod.cfg 配置中对应选项保持一致即可,默认是 5668,这个端口在 Central server 上由 Ndo2db 程序启动,远程各个 Poller server 通过该程序和 Central server 上的 MySQL 数据库交互存取监控数据。
接着看“Database”标签,如图 8-64 所示。
图 8-64 配置 ndo2db 的数据库连接信息
本页面要配置的是远程各个 Poller server 要连接的数据库信息,这里选择 MySQL 数据库,然后提供 MySQL 数据库所在的服务器 IP 地址、数据库名、连接端口、表名称前缀、连接数据库的用户名和密码等信息。由于是远程连接 MySQL,因此需要在数据库中进行授权,以保证 Poller server 可以正常连接到 MySQL 数据库中。
注意,这里的“Database Hoster”一定要填写 MySQL 数据库的 IP 地址,如果 MySQL 数据库和 Centreon 在一台机器上,不建议填写“localhost”或“127.0.0.1”之类的地址。
授权的方法比较简单,登录 MySQL 所在服务器的 SQL 命令行,执行类似如下操作:
mysql> grant all ON centreon_status.* to centreon@'129.168.12.188' identified by 'xxxxxx'; mysql> flush privileges;
4.为 Poller 添加 nagios 主配置文件
选择“Configuration→Monitoring Engines→main.cfg”,单击“Add”添加 myCentral 的 main.cfg 配置,这里复制默认的 main.cfg 配置“Nagios CFG 1”,修改后的结果如图 8-65 所示。
这里需要注意的选项有“Configuration Name”和“Linked poller”,“Configuration Name”用来指定配置文件名称,这里定义为“MyNagiosCFG1”,“Linked poller”用于指定适用的 poller,这里选择“myCentral”即可。其他选项无须任何修改,保持默认即可。
图 8-65 为 myCentral 添加 nagios 主配置文件
至此,在 Centreon 上添加分布式监控的 Web 配置已经介绍完毕。
5.添加 Poller 后端主机
在成功添加一个 Poller server 后,接下来为这个 Poller server 添加一批监控主机,添加监控主机的方法与直接介绍过的添加主机过程完全相同,不过,需要修改一个配置,如图 8-66 所示。
图 8-66 为 Poller server 添加一个后端主机
这里添加了一个 node5 主机,IP 为 192.168.12.100,同样继承了 generic-host 主机模板,需要注意的是,这里的“Monitored from”选项选择“myCentral”,其他设置与之前介绍的添加主机过程完全一致,不再介绍。
6.重载 Centreon 生成配置文件
在所有分布式监控配置完成之后,需要执行重载 Centreon,生成分布式配置文件,选择“Configuration→Monitoring Engines→Generate”,如图 8-67 所示。
图 8-67 生成分布式配置文件
在“Poller”选项中选择“All Pollers”,然后选择所有“Actions”,执行“Restart”操作,生成所有 Poller 的配置文件。在执行完这个操作后,可以登录到 Poller server 上,看看配置文件是否已经正常推送到/etc/nagios 目录下,并查看 nagios 进程是否被重新启动过,如果是,那么分布式监控系统运行正常。
选择“Configuration→Centreon→Pollers”,查看两个 Poller 的运行状态,如图 8-68 所示。
图 8-68 Centreon 多 Poller 运行状态
从图 8-68 可以看出,两个 Poller 都处于正常运行状态,并且还能看到每个 Poller 对应的 IP 地址,以及 nagios 引擎的启动时间、更新时间、运行 PID 以及 nagios 版本信息等。
至此,基于 nagios 的 Centreon 分布式监控系统配置完毕。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论