1. Centreon
1.1 Centreon简述
作为一款优秀的开源监控软件,Centreon能够通过第三方组件实现对网络、应用及操作系统进行监控,由于Centreon是开源的,所以我们可以免费使用和改造,并且Centreon的底层监控采用了nagios,nagios使用ndoutil模块将监控得到的数据写入到数据库中。Centreon则会实时从数据库中读取数据并通过Centreon的web端进行展示,并且我们可以通过Centreon的web端配置和管理nagios的各种配置信息,简化nagios的配置工作。
1.2 Centreon的监控组件
(1)nagios:Centreon的主要组件,对各个终端或服务器进行监控,通过各种配置文件进行配置。
(2)nagios-plugins:是nagios的插件,其中提供了各种监控模板及监控命令,如check_tcp等很多常用的监控目标都可以使用这些通用命令,或者也可以自己编写脚本来实现,操作上不同的就是要进行一些针对性的配置令自定义的监控脚本生效,所以在监控灵活度上nagios是非常优秀的,可以由运维根据各自的实际需求安排监控。
(3)ndoutils:利用这个组件将nagios的监控信息存入mysql数据库。
(4)nrpe:用来监控被控端主机资源的工具,没有它,nagios将无法对被控端服务器的主机资源进行监控。如果被控端主机是windows则会应用NSClient进行处理。
(5)CentCore/CentStorage/Centreon web:Centreon内部负责不同功能的组件。
1.3 Centreon组成架构
下面两张图片描述的内容相似,格式不同。
下图给出了nagios的结构
Centreon各组件功能
(1)Nagios,数据库,centreon可以分布式部署到多台服务器。
(2)Nagios主程序,Nagios插件和NDOUtils中的NDOMOD模块用于采集服务器数据。
(3)各节点使用NdoUtils中的NDOMOD模块将Nagios采集的数据传送到中心节点,中心节点运行NdoUtils中的NDO2DB守护进程,处理分解节点来的数据。
(4)中心节点NDO2DB进程将各节点的数据写入nagiostatus数据库。
(5)Centreon将nagiostatus数据展示到web界面,并调用RRDtool将数据展示到曲线图中。
(6)Centreon将新增配置文件写入数据库,并在本地生成Nagios实例配置。
(7)Centreon调用Nagios插件将本地实例配置文件传输到各个分节点,并替换原来的配置文件。重启nagios服务。
数据流(工作原理)
(1)Centreon Web --> CentCore --> CentStorage --> DB --> Centreon Web:其中Centreon Web就是Centreon的Web配置管理界面,在Web配置管理界面中配置好主机和服务后,会生成相应的配置文件,然后CentCore会去读取这些配置文件并结合相关Nagios插件将数据发送到Nagios监控引擎,并生成相关日志文件和RRDS文件,而CentStorage模块会及时收集这些日志信息及RRDS数据并最终将这些数据存入数据库中,以供Centreon Web展示调用。
(2)Nagios --> CentStorage --> DB --> Centreon Web,在本地或远程的扩展节点中Nagios监控引擎会产生日志文件和RRDS文件,这些文件定期被CentStorage读取并最终存储在数据库中,以供Centreon Web读取。
(3)Nagios(Ndomod)--> Ndo2DB --> DB --> Centreon Web,这里将Nagios实时监控状态写入数据库,首先由在本地或远程扩展节点上的Ndomod进程将Nagios监控状态通过Ndo2DB模块写入数据库,最后Centreon Web会定期调用这个DB库,这样监控系统中各个主机或服务的监控状态就被实时展示出来了。