Centreon既是产品名,也是公司名。它完全脱胎于知名的监控软件Nagios,并针对性的开发了自己的引擎及相关组件,并对其进行重新封装,虽然如此,但仍然完全兼容Nagios。有nagios使用经验的系统管理员,对Centreon更是得心应手。Centreon公司位于法国,成立于2005年,为私人控股公司。而Nagios公司位于美国明尼苏达州圣保罗,虽然是开源的,但在目前形势下,用非US的产品,可能风险要小一点吧!
Centreon对外提供功能丰富的商业版本,同时也提供开源的免费版本。大概有四个可供用户选择的版本,它们是“open source”、“IT edition”、“Business Edition”、“MSC Edition”,作为技术人员,我相信大家跟我一样,更愿意关注和使用免费开源的“Open Source”,人生的意义在于折腾,多折腾才有进步嘛。
Centreon主要特征
监控对象极其广泛:Cloud(云), Virtualization(虚拟化), Microservices(微服务), Databases(数据库), Middleware(中间件), Systems(系统), Storage(存储), Security(数据安全), Network(网络), Hardware(硬件设备), IoT(物联网), ITOM services(信息系统运营管理服务)等等。
完全兼容知名监控软件Nagios:因为Centreon对Nagios完全兼容,已经采用Nagios作为监控平台的用户,可以无缝的迁移升级到Centreon平台,以便于使用Centreon便捷的web配置管理。
多种数据收集(采集)方式:非代理模式SNMP(简单网络管理协议),通过API(应用程序接口)连接到云端或者其它设施,执行远端的脚本采集数据。
自动发现网络或者基础设施:这个功能不包含在开源版本中,可能需要付费订阅商业嗯才有支持,可惜啊!
丰富的配置模板:自带3000多种配置模板,可供添加监控对象时进行选择,减少工作量及提高工作效率。
提供丰富的插件:企业版宣称带有超过470个插件。虽然插件很多,但很多插件可能 用不上,而有些插件,可能需要自己编写脚本文件。
分布式监控模式:主控加多Poller的方式,既能支持大规模的监控集群,减轻中心服务器的负担,又能对私有的内部网络进行无差别的监控。
高可用:Centreon高可用基于Pacemaker,可实现一主一从两节点主备模式。与一般高可用HA相比较,没有使用共享存储,而是启用了MySQL复制。
本人实践中,还没有实际采用这中高可用架构。那么,有什么变通方式呢?可以把Centreon系统置于超融合平台中,或者对数据库进行备份,监控系统不可用时,只需把数据库导入到安装好的Centreon的数据库,很快就能恢复了。
开源免费。可惜的是免费版本有100个主机数的限制。
Centreon主要组成部分
Centreon监控系统主要由操作系统Centos、数据库MySQL、Web容器Apache、应用程序PHP、Centreon-engine及相关组件,如poller等等所组成。各组件的功能大致描述如下:
操作系统Centos
Centreon有两种安装方式,一种是下载Centreon ISO镜像包,刻录成光盘或者可引导u盘进行安装;另一种方式是先安装好操作系统,再在上边安装Centreon所需的软件。以ISO镜像包所安装出来的底层操作系统(集成在一起的)为Centos7.X,低一些的版本所依赖的操作系统为Centos 6.X。如果对操作系统比较熟悉的话,亦可以其它Linux的发行版作为底层的运行环境。
数据库mysql
以ISO镜像包所安装的数据库为MariaDB,最新的Centreon自带的版本号为Distrib 10.3.22-MariaDB,可以用MySQL来代替。MySQL部署以后,基本上不需要手动去创建库、用户及表单,Centreon后台管理初始化过程会自动进行处理。
Web服务器Apache
不同版本的Centreon,如Centreon 19.X与Centreon 20.X所对应的Apache版本是有差异的。Centreon 20.04所附带的Apache版本为httpd2.4,与Centreon相关的配置文件路径为“/opt/rh/httpd24/root/etc/httpd/conf.d/10-centreon.conf”.其主要功能是配合PHP,提供web页面的后台管理。这里,我们可以打开此配置文件,进一步了解web目录、与PHP配合工作等相关信息。
[root@mon172 conf.d]# more 10-centreon.conf
#
# Section add by Centreon Install Setup
#
Alias /centreon/api /usr/share/centreon
Alias /centreon /usr/share/centreon/www/
<LocationMatch ^/centreon/(?!api/latest/|api/beta/|api/v[0-9]+/|api/v[0-9]+\.[0-9]+/)(.*\.php(/.*)?)$>
ProxyPassMatch fcgi://127.0.0.1:9042/usr/share/centreon/www/$1
</LocationMatch>
<LocationMatch ^/centreon/api/(latest/|beta/|v[0-9]+/|v[0-9]+\.[0-9]+/)(.*)$>
ProxyPassMatch fcgi://127.0.0.1:9042/usr/share/centreon/api/index.php/$1
</LocationMatch>
ProxyTimeout 300
<Directory "/usr/share/centreon/www">
DirectoryIndex index.php
Options Indexes
AllowOverride all
Order allow,deny
Allow from all
Require all granted
<IfModule mod_php5.c>
php_admin_value engine Off
</IfModule>
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
ErrorDocument 404 /centreon/index.html
AddType text/plain hbs
</Directory>
<Directory "/usr/share/centreon/api">
Options Indexes
AllowOverride all
Order allow,deny
Allow from all
Require all granted
<IfModule mod_php5.c>
php_admin_value engine Off
</IfModule>
AddType text/plain hbs
</Directory>
RedirectMatch ^/$ /centreon
从这个配置文件,我们可知PHP服务的监听端口为TCP 9042,而非我们常见的9000。知道这个窍门以后,你也可以改成任意端口,只要与你的PHP启动端口相匹配就行。一般情况下,我们不需要对Apache做任何配置,在Centreon web管理进行初始化的时候,自动进行处理了。如果是纯手工用源码包进行安装,则需要逐个进行配置,组合后才能正常工作。
应用服务PHP
Centroen 20.X版本要求PHP版本为php7.2,早先的版本为php7.1。如果Centreon从19.X版本升级到20.X,会在系统存在php7.1和php7.2两个版本。有时候Centreon后台管理界面不能正常访问,那么可能的问题就是启动了php7.1这个老版本。
Centreon相关组件
Centreon自身的组件比较多,分布也比较散。最主要的组件是centreon-engine、centreon-broker,新版本增加了一个gorgoned。
其中centreon-engine在分布式监控体系里,中央控制器与Poller代理端,都必须同时运行。centreon-broker是Web管理后台去操作centreon-engine的控制接口。每当在Web管理后台对监控对象(主机或者服务)进行了更新(配置数据写入数据库),还需要在对centreon-engine关联的Poller进行操作:Generate Configuration Files、Run monitoring engine debug (-v)、Move Export Files、Restart Monitoring Engine。执行Run monitoring engine debug –v就是对配置文件进行语法检查,有Nagios使用经验的老鸟们应该对下述操作印象深刻吧?
而Move Export files 则是把文件以文本形式写入磁盘,这个可以在执行操作前查看添加对象相对应的配置文件,比如添加主机,查看hosts.cfg文件,执行完操作后,再进行对比,观察其变化。生成文本形式的配置文件以后,还需重启引擎,把配置文件加载到内存(Zabbix是直接查询数据库),开始新的监控动作。
Gorgoned是Centreon 20.X的版本才新增进来的,它用于与远端的Poller进行通信并传递信息,是分布式监控所需要的,如果使用ZMQ进行连接,使用tcp 5556端口(与NRPE端口5666容易混淆)。在旧的版本里边,用的是SSHD服务。
Centreon分布式监控架构
Centreon 分布式监控平台由中央控制器及远端代理Poller两大部分组成,当然,本地也是使用了Poller。
中央监控服务器主要包括以下部分:
Web访问界面:由Apache提供。
Centreon engine:由Nagios重新封装的监控引擎。
CBD:Centreon broker,文本与数据库数据交换工具。
MariaDB:数据库。
Poller代理端包括以下部分:
Centreon engine。
Gorgoned(可选):Poller代理连接守护进程。
中央服务器Centreon central server 可以支持多个远端Poller,用以支持更大规模的服务网络。由于监控工作实际由poller端的Centreon-engine提供服务,因此,中央服务器承担的监控负荷极小,稳定性及可靠性都比集中式监控要高得多。中央服务器Centreon Central Server的数据库可以单独出来,以获得更好的数据存取性能及可靠性。
Centreon Web 管理界面简述
Centreon的主界面相当简洁、直观。主要分三个区域:
1、 顶部的状态汇总(从左到右为的顺序)
-
Poller状态。正常为绿色、异常为黄色或者红色.
-
主机状态。异常或者有故障时显示黄色或者红色,数字只显示有异常的主机数量。
-
服务状态。异常或者有故障时显示黄色或者红色,数字只显示有异常的服务数量。
-
用户属性。登录后台的用户名称及权限。
2、 左侧纵向主菜单按钮,从上到下一个五个,每一个都包含有子菜单。 -
用户视图。用户登录后,默认展示的页面。某些Centreon版本,手机浏览器登录,可能是一片空白,这时需要进行视图定义。
-
状态查看。包含四个子菜单,子菜单下还有子菜单。
-
仪表盘。
-
主配置菜单按钮。大部分维护、管理等操作,都是在这个菜单项下边进行的。
-
配置杂项。
3、 主展示区。屏幕中间最大的一块区域。
Centreon 19及以前的版本,手机访问管理后台,比Centreon 20版本的界面要友好一些,菜单按钮排布有些差异。