- 前言
- 为什么要写这本书
- 读者对象
- 如何阅读本书
- 勘误和支持
- 致谢
- 第一部分 安全运维篇
- 第 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.4 安装 Centreon+nagios 监控系统
Centreon 的安装有一定的复杂性,对操作系统库依赖较多,在安装方式上有源码编译安装和 yum 源安装两种,源码编译安装较复杂,出错几率也较高,因此这里推荐采用 yum 源方式进行安装。Centreon 的安装主要分为下面几个部分。
1)系统基础依赖库的安装:例如 fping、cpp、gcc、gd、libjpeg-devel、rrdtool 等软件包。
2)rrdtool 的安装:安装 rrdtool 主要用于绘图,Centreon 利用 rrdtool 将收集到的数据绘制成图形报表。
3)nagios、nagios-plugins 的安装:因为 nagios 是 Centreon 底层监控模块,所以 nagios 的安装是必不可少的。
4)ndoutils 的安装:ndoutils 是 nagios 与数据库进行连接的工具,它将 nagios 数据存入数据库,然后又将数据读取出来,它在 nagios 与 Centerton 之间接收和发送数据。
5)nrpe 的安装:nrpe 主要与远程的主机进行通信,进而收集远程主机的各种私有数据。
6)Centreon 的安装:这个才是要介绍的重点。Centreon 的官方网站是 http://www.centreon.com/,可以在这里下载最新的稳定版本,具体的安装过程后面会详细讲解。
这里我们采用的操作系统是 CentOS 5.5 x86_64 版本,下面开始安装 Centreon+nagios 监控系统。
8.4.1 安装支持 Centreon 的 yum 源
这里我们安装两个 yum 源,分别是 rpmforge 和 EPEL,可以从如下两个地址下载到:
- http://pkgs.repoforge.org/rpmforge-release/
- http://fedoraproject.org/wiki/EPEL/zh-cn
读者可根据自己的系统环境选择合适的版本下载,这里下载的是 rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm 和 epel-release-5-4.noarch.rpm。下载完成,执行以下命令安装即可:
[root@centreon-server ~]# rpm -ivh rpmforge-release-0.5.3-1.el5.rf.x86_64.rpm [root@centreon-server ~]# rpm -ivh epel-release-5-4.noarch.rpm
安装完成后,会在/etc/yum.repos.d 下生成 yum 源的配置文件。
最后,还需要添加一个 yum 源,内容如下:
[root@centreon-server yum.repos.d]# more centreon.repo [centreon] name=Dag RPM Repository for Red Hat Enterprise Linux baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag gpgcheck=1 gpgkey=http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt enabled=1
将 centreon.repo 文件也放到/etc/yum.repos.d 下即可,这个 yum 源中有我们需要的 nagios、ndoutils、nrpe 等软件包。
8.4.2 安装系统基础依赖库
(1)安装 GD 库及 Apache
[root@centreon-server app]# yum install httpd gd fontconfig-devel libjpeg-devel libpng-devel gd-devel perl-GD
(2)安装 MySQL 库、PHP 及扩展
[root@centreon-server app]# yum install openssl-devel perl-DBD-MySQL mysql-server mysql-devel php php-mysql php-gd php-ldap php-xml php-mbstring
(3)安装 Perl 及扩展模块
[root@centreon-server app]# yum install perl-Config-IniFiles perl-DBI perl-DBD- MySQL perl-Crypt-DES perl-Digest-SHA1
(4)安装 SNMP 及依赖库
[root@centreon-server app]# yum install perl-Digest-HMAC net-snmp-utils perl- Socket6 perl-IO-Socket-INET6 net-snmp net-snmp-libs php-snmp
(5)安装 rrdtool 绘图工具
[root@centreon-server app]# yum install rrdtool perl-rrdtool
(6)安装其他所需库
[root@centreon-server app]# yum install dmidecode lm_sensors perl-Net-SNMP net-snmp-perl fping cpp gcc gcc-c++ libstdc++ glib2-devel
(7)安装 PEAR
[root@centreon-server app]# yum install php-pear [root@centreon-server app]# pear channel-update pear.php.net
8.4.3 安装 nagios 及 nagios-plugins
有了上面三个 yum 源,安装 nagios 及插件会非常简单,操作如下:
[root@centreon-server app]# yum install nagios nagios-devel [root@centreon-server app]# yum install nagios-plugins
nagios 在 3.5 版本之后,将自带的所有插件都放在了另一个 RPM 包中,如果安装的是 nagios3.5 之上的版本,还需要安装 nagios-plugins-all 这个插件包,执行如下命令即可:
[root@centreon-server app]# yum install nagios-plugins-all
完成 nagios 安装后就会发现,插件安装路径是/usr/lib64/nagios/plugins,而配置文件路径是/etc/nagios,日志文件路径是/var/log/nagios,这几个路径可能会在后面配置的时候用到。
8.4.4 安装 ndoutils
ndoutils 是必不可少的一部分,因为它是 nagios 与数据库进行连接的工具。有了前面的 yum 源,安装 ndoutils 变得非常简单,操作如下:
[root@centreon-server app]# yum install ndoutils
根据 ndoutils 版本的不同,可能还需要安装 ndoutils-mysql,执行如下命令即可:
[root@centreon-server app]# yum install ndoutils-mysql
完成 ndoutils 安装后可以发现,ndomod 模块安装路径是/usr/libexec/ndomod-3x.o,或者/usr/lib64/nagios/brokers/ndomod.so,而对应的维护脚本路径是/etc/init.d/ndoutils 或/etc/init.d/ndo2db。在本章介绍中,ndomod 模块安装路径是/usr/libexec/ndomod-3x.o,而对应的维护脚本是/etc/init.d/ndoutils,这些路径会在安装 Centreon 过程中用到。
8.4.5 安装 nrpe
如果需要获取远程主机的私有信息,就需要在监控主机上安装 check_nrpe 插件,同时在被监控主机上安装 nrpe 服务。安装 nrpe 的方法很简单,也可以通过 yum 源方式执行安装。
在监控主机上安装 check_nrpe 插件:
[root@centreon-server app]# yum install check_nrpe
在完成 check_nrpe 安装后,可以发现 check_nrpe 插件安装到了/usr/lib64/nagios/plugins 目录下。
在被监控主机上安装 nrpe 服务:
[root@node1 app]# yum install nrpe
在完成 nrpe 安装后,默认的配置文件路径是/etc/nagios/nrpe.cfg,而维护 nrpe 的脚本路径是/etc/init.d/nrpe。
8.4.6 安装 Centreon
首先到 Centreon 的官方网站下载最新稳定版本,这里我们下载的是 Centreon-2.4.1 版本,完成下载后开始安装:
[root@centreon-server app]# tar zxvf centreon-2.4.1.tar.gz [root@centreon-server app]# cd centreon-2.4.1 [root@centreon-server centreon-2.4.1]# ./install.sh -i
下面就进入了交互安装界面,如图 8-2 所示。
安装 Centreon 第一步主要是检查必需的几个系统命令,然后会进入 GPL licence 确认,这里输入“y”即可进入下一步。

图 8-2 开始安装 Centreon
接下来这一步主要是确认需要安装的 Centreon 模块,主要有 Centreon Web Front、Centreon CentCore、Centreon Nagios Plugins、Centreon Snmp Traps process 四个模块可选,这里我们选择全部安装,如图 8-3 所示。

图 8-3 选择需要安装的 Centreon 模块
下面进入 Centreon Web Front 的安装过程,这里需要指定一系列安装路径,比如 Centreon 的安装目录、配置文件的安装路径、日志文件的目录等。安装过程会给出默认的安装路径,如果不需要更改路径,直接按回车键确认即可;如果需要改变默认的安装路径,输入自定义的路径,然后按回车键确认即可。读者可根据自己的环境,选择对应的安装目录,如图 8-4 和图 8-5 所示。

图 8-4 Centreon Web 安装路径配置 1

图 8-5 Centreon Web 安装路径配置 2
需要注意的是,有些默认配置并不正确,此时,就需要手工指定某些库文件或模块的安装路径,例如,RRDs.pm 的安装路径、PEAR.php 的安装路径就需要通过手工来指定,如图 8-6 所示。

图 8-6 手工指定 Centreon 依赖文件安装路径
Centreon 支持多种管理引擎(也可称为监控引擎),例如 Centreon Engine、nagios 和 Icinga。可根据需要选择管理引擎,这里我们选择的是 nagios 管理引擎。同时 Centreon 也支持多种代理模块,例如 Centreon Broker 和 NDOUtils,这里采用的是 NDOUtils 代理模块。
这里需要特别注意的是,如果选择了 Centreon Engine 引擎,那么相应的“Monitoring engine user”就要选择“centreon-engine”;如果选择了 nagios 引擎,那么“Monitoring engine user”就要选择“nagios”。同理,如果选择了 Centreon Broker 代理模块,那么“Broker user”就要选择“centreon-broker”;如果选择了 NDOUtils 代理模块,那么“Broker user”就要选择“nagios”。
最后还需要给出管理引擎的日志目录及插件目录,整个过程如图 8-7 所示。

图 8-7 配置 Centreon 的管理引擎和代理模块
在指定了对应的 Centreon 管理引擎和代理模块之后,接下来,就需要指定这些管理引擎和代理模块的维护脚本。nagios 管理引擎对应的维护脚本为/etc/init.d/nagios,由于 nagios 是 yum 源方式安装的,因此对应的二进制文件为/usr/bin/nagios。接着还需要指定管理引擎和代理模块的配置文件目录,这里均为/etc/nagios。最后指定代理模块的维护脚本路径为/etc/init.d/ndoutils。在指定了所有的路径后,Centreon 安装程序会将这些管理脚本和路径统一写入/etc/sudoers 文件中,这是因为 Centreon 监控系统是在 Centreon 用户下运行的,而这些维护脚本默认只有 root 用户才能执行,因此要让 Centreon 用户统一来配置和维护,就必须将这些维护脚本放入/etc/sudoers 文件中,实现无密码授权访问。
配置结果如图 8-8 所示。

图 8-8 指定管理引擎和代理模块的维护脚本并添加到 sudoers 文件
下面的步骤是配置 Apache Server,如图 8-9 和图 8-10 所示。由于 Centreon 是基于 Web 的一个应用,默认使用的是 Apache Server,因此安装程序会自动在/etc/httpd/conf.d 下创建一个 centreon.conf 文件,文件内容如下:
Alias /centreon /usr/local/centreon/www/
<Directory "/usr/local/centreon/www">
Options Indexes
AllowOverride AuthConfig Options
Order allow,deny
Allow from all
</Directory>
这样我们就可以通过 http://ip/centreon 的方式访问 Centreon 了。
接下来会提示是否重新加载 Apache 配置,最后会执行一系列动作,比如设置权限、复制配置文件、安装库文件等。每个动作执行后都会显示运行结果,如果都显示“OK”字样,表示所有动作执行正常。

图 8-9 配置 Apache Server 并加载配置 1

图 8-10 配置 Apache Server 并加载配置 2
接下来是 PEAR 模块的检查和安装。PEAR 是运行 Centreon 必需的软件支持。安装进程会首先检查系统是否安装了这些必需的 PEAR 模块,以及版本是否正确,如果已经安装,会显示“OK”字样,如果没有安装,会显示“NOK”字样。对于缺少 PEAR 模块的情况,安装进程会提示是否在线进行安装或更新,这里选择“y”可进行在线更新,当然前提是服务器必须能连接互联网。紧接着安装进程就从互联网下载所需的软件包进行安装,直到安装完所有软件包,如图 8-11 所示。

图 8-11 在线安装 PEAR 模块
下面这个步骤是创建两个配置文件,为安装 Centreon 做准备,其实也就是创建安装 Centreon 的文件模板,如图 8-12 所示。

图 8-12 创建安装 Centreon 的文件模板
接下来正式进入 Centreon 的安装过程。Centreon 的安装分为安装 CentStorage、安装 CentCore、安装 CentPlugins、安装 CentPlugins Traps 四个部分。
首先是 CentStorage 的安装,如图 8-13 和图 8-14 所示,这个过程会询问 Centreon 的运行目录、CentStorage 的二进制文件目录、CentStorage 的 rrd 数据存放目录等,分别指定路径后,安装进程将会创建相应目录。
图 8-14 演示的主要是安装 CentStorage 管理维护脚本及设定运行级等。
接下来是安装 CentCore。与 CentStorage 的安装类似,安装进程会创建相应的 CentCore 运行目录、维护脚本等,如图 8-15 所示。
然后是安装 CentPlugins,这里指定 CentPlugins 的安装目录是/var/lib/centreon/centplugins,如图 8-16 所示。

图 8-13 安装 CentStorage 并创建指定目录

图 8-14 安装 CentStorage 并创建维护脚本

图 8-15 安装 CentCore

图 8-16 安装 CentPlugins
最后是 CentPlugins Traps 的安装。这个过程会要求指定 snmp 配置目录,SNMPTT 的存放目录等,然后安装进程会将配置文件分别放到指定的目录下,如图 8-17 所示。
至此,Centreon 的安装完成,下面就可以进入 Centreon Web 的安装配置。不过在进行 Centreon Web 的安装配置之前,需要通过以下命令启动相关的几个服务:
[root@centreon-server app]# /etc/init.d/httpd start [root@centreon-server app]# /etc/init.d/mysqld start [root@centreon-server app]# /etc/init.d/ndoutils start

图 8-17 安装 CentPlugins Traps
8.4.7 安装配置 Centreon Web
Centreon 提供了非常友好的 Web 安装向导界面,通过这个界面可以一步一步完成 Centreon 的最后安装过程。
首先在浏览器中输入访问 Centreon Web 的地址,例如:http://centreon-server/centreon。如果上面的安装过程都正确,就会出现如图 8-18 所示的欢迎界面。

图 8-18 Centreon Web 欢迎页面
单击“Next”按钮,进入下一步,如图 8-19 所示,这一步主要是验证一些必需的依赖模块,例如 mysql.so、gd.so、ldap.so 等是否正常加载。

图 8-19 检测必需的依赖模块
单击“Next”按钮,进入下一步,如图 8-20 所示。这一步主要是选择一个用于 Centreon 的管理引擎,这里选择 nagios。

图 8-20 选择管理引擎
单击“Next”按钮,进入下一步,如图 8-21 所示。这一步主要是指定管理引擎 nagios 对应的一些配置信息,其中“Nagios directory”是指定 nagios 的主目录,“Nagiostats binary”是指定 nagiostats 二进制文件的位置,而“Nagios image directory”对应的目录是 nagios 主目录下的 images 目录。需要注意的是,“Embedded Perl initialisation file”对应的路径可能因环境而不同,要根据实际情况填写。

图 8-21 指定管理引擎对应的信息
单击“Next”按钮,进入下一步,如图 8-22 所示。这一步是选择 Centreon 使用的代理模块,由于前面已经配置了 NDOUtils 作为代理模块,因此这里选择“nodutils”。

图 8-22 选择代理模块
单击“Next”按钮,进入下一步,如图 8-23 所示。这一步是指定代理模块 NDOUtils 的配置信息,其实就是指定 ndomod.o 的路径,这个路径会因为安装 NDOUtils 方式的不同而有差异,读者可根据自己的实际情况填写。

图 8-23 指定代理模块配置信息
单击“Next”按钮,进入下一步,如图 8-24 所示。这一步是添加管理员账号信息,Centreon 默认的管理员账号是 admin,这里只需为 admin 账号创建一个密码,然后输入账号的其他相关信息和邮件地址即可。

图 8-24 设置管理员账号密码
单击“Next”按钮,进入下一步,如图 8-25 所示。这一步是设置 Centreon 连接 MySQL 数据库的相关信息,在这里输入 MySQL 数据库的 IP 地址、端口号、root 用户密码等信息,然后还要输入三个数据库的名称。三个数据库的名称可以使用默认的,也可以自行指定,这里采用默认的数据库名,分别是配置数据库 centreon、存储数据库 centreon_storage、Utils 数据库 centreon_status。最后还需要指定管理这三个数据库的用户,默认是 Centreon,然后添加 Centreon 用户对应的密码即可。在这个过程中不需要手工创建这三个数据库,Centreon 安装进程会自动创建这三个数据库和对应的管理用户。

图 8-25 设置 Centreon 连接 MySQL 数据库相关信息
单击“Next”按钮,进入下一步,如图 8-26 所示。这一步是 Centreon 初始化 MySQL 数据库的过程,安装进程会根据上一步设置的数据库信息进行数据库及数据库用户的创建。如果初始化数据库的每个过程都是“OK”状态,表明安装成功。

图 8-26 Centreon 初始化数据库过程
在数据库初始化完毕后,还需要对 MySQL 做相关的授权操作,以使上面指定的 MySQL 用户 Centreon 能正常访问 centreon_status、centreon_storage 和 centreon 这三个数据库。授权方法很简单,通过命令行登录 MySQL 数据库中,执行如下操作:
SQL>GRANT USAGE ON `centreon_status`.* TO 'centreon'@'localhost' IDENTIFIED BY 'centreon'; SQL>GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON `centreon_status`.* TO 'centreon '@'localhost'; SQL>GRANT USAGE ON `centreon_storage`.* TO 'centreon'@'localhost' IDENTIFIED BY 'centreon'; SQL>GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON `centreon_storage`.* TO 'centreon' @'localhost'; SQL>GRANT USAGE ON `centreon`.* TO 'centreon'@'localhost' IDENTIFIED BY 'centreon'; SQL>GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON `centreon`.* TO 'centreon' @'localhost';
单击“Next”按钮,进入下一步,如图 8-27 所示,此时成功完成 Centreon 的安装。这个界面还展示了 Centreon 的官方网站,以及论坛地址、文档地址、Wiki 地址等信息,读者可以在这些站点获得更多关于 Centreon 的信息。

图 8-27 完成 Centreon 的安装
单击“Finish”按钮,完成安装,进入 Centreon 登录界面,如图 8-28 所示。登录 Centreon 管理界面的地址一般是 http://IP/centreon,输入用户名和密码即可登录 Centreon 监控平台。

图 8-28 登录 Centreon 监控平台
至此,关于 Centreon 的安装部分介绍完毕。下面介绍如何快速配置和使用分布式监控系统 Centreon。
8.4.8 启动 Centreon 相关服务
在完成 Centreon 的所有工作后,还需要启动与 Centreon 相关的服务,执行如下操作:
[root@centreon-server app]# /etc/init.d/nagios start [root@centreon-server app]# /etc/init.d/centstorage start [root@centreon-server app]# /etc/init.d/centcore start
在服务启动后,可以通过查看 nagios 启动日志/var/log/nagios/nagios.log 及 Centreon 日志目录/usr/local/centreon/log 来查看启动进程的运行状态。
8.4.9 安装问题总结
Centreon 的安装相对较复杂,牵扯的内容较多,在安装过程中出现问题在所难免,这里就简单总结下安装过程中可能出现的问题和解决方法。
在安装 Centreon 过程中,常见问题主要集中在 nagios 和 MySQL 上面,因此需要重点关注这两个方面。解决问题的主要方法是查看运行日志,因为所有错误都会在日志中显示,需要重点关注的日志有如下三个:
/usr/local/centreon/log/nagiosPerfTrace.log /usr/local/centreon/log/centstorage.log /var/log/nagios/nagios.log
其中:
- nagiosPerfTrace.log 用于记录 nagios 与 MySQL 数据库之间交互的日志信息,如果 Centreon 连接不上数据库或者连接数据库出错,都可以查看这个日志文件。
- centstorage.log 主要记录 Centreon 通过 rrdtool 进行绘图的日志信息,如果 Centreon 中的图形报表无法显示,可以通过这个文件查找问题。
- nagios.log 是 nagios 运行的日志文件,nagios 启动及运行过程中的所有信息都会在此文件中记录,如果启动或运行 nagios 出错,都可以通过查看这个文件来解决问题。
下面介绍 Centreon 安装过程中几个最常见的错误及相应的解决方案。
(1)nagios 能启动,但是不能正常工作
这个问题常见的现象是:
Error: Could not create external command file '/var/log/nagios/rw/nagios.cmd' as named pipe: (2) -> No such file or directory
从错误提示中可以看出,是 nagios 不能自动创建 nagios.cmd 文件导致的,进入/var/log/nagios 目录下发现确实不存在 rw 目录。
nagios.cmd 这个文件是用来检查外部命令请求的,也是用户操作 CGI 命令写入的地方,因此这个文件必须对相关的服务具有可写权限,一般是针对启动 Web 服务的用户,例如 daemon 用户,并且需要注意的是,这个文件所在的目录对 daemon 用户必须可写,否则会报上面这个错误。
在了解产生这个问题的原因后,能够采用的解决方法很多,最简单的方法是在/var/log/nagios 目录下创建 rw 目录,然后授权即可,操作如下:
[root@centreon-server app]# mkdir /var/log/nagios/rw [root@centreon-server app]# chmod 777 /var/log/nagios/rw
这样,在重启 nagios 服务后,就会自动在/var/log/nagios/rw 下创建 nagios.cmd 文件。
(2)Centreon 下服务状态无法生成曲线图
这个问题常见的现象是:
2013-10-16 14:08:57 - Cannot write the /var/log/nagios/service-perfdata_read file : 权限不够 2013-10-16 14:08:57 - Error When writing data in tmp read file : 对设备不适当的 ioctl 操作
这个错误是没有权限写文件,进入/var/log/nagios 目录下发现根本无此文件,需要手动创建此文件,然后进行授权,操作如下:
[root@centreon-server app]# touch /var/log/nagios/service-perfdata_read [root@centreon-server app]# chmod 777 /var/log/nagios/service-perfdata_read
这样操作后,错误就会自动消失,问题得以解决。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论