一、Centreon概述
Centreon是一款功能强大的分布式IT监控系统,它通过第三方组件可以实现对网络、操作系统和应用程序的监控:首先,它是开源的,我们可以免费使用它;其次,它的底层采用nagios作为监控软件,同时nagios通过ndoutil模块将监控到的数据定时写入数据库中,而Centreon实时从数据库读取该数据并通过Web界面展现监控数据;,最后,我们可以通过Centreon管理和配置nagios,或者说Centreon就是nagios的一个管理配置工具,通过Centreon提供的Web配置界面,可以轻松完成nagios的各种繁琐配置。
此外,Centreon还支持NRPE、SNMP、NSClient等插件,可以通过这些插件构建分布式的监控报警系统。
二、 Centreon的特点
Centreon作为一款优秀的IT监控软件,具有如下显著特点和优点:
采用web方式配置nagios,通过web界面即可完全控制nagios,可以轻松添加和管理上千台主机和服务。
支持主机模板和服务模板,并且自动建立关联服务。
支持多节点的分布式监控,对于远程节点可采用NRPE、SNMP、NSClient等方式监控私有服务。
支持ACL权限管理,可以给不同用户设置不同的管理权限,多个用户可以管理不同主机和服务,互不影响。
详细的报表统计功能和日志管理功能,可以查看某个时间段某个服务或主机的运行状态、故障率等。
模块化管理,可根据需要定制自己的模块,同时支持第三方监控数据接入。
三、 Centreon的结构
一个典型的Centreon监控系统一般有四大部分组成,分别是nagios、centstorage、centcore和ndoutils,简单介绍如下:
nagios是Centreon的底层监控引擎,主要完成监控报警系统所需的各项功能,是Centreon监控系统的核心。另外,Centreon还支持Centreon Engine、Icinga等监控引擎。本章采用nagios监控引擎进行介绍。
centstorage是一个数据存储模块,它主要用于将日志数据及RRDtool生成的数据存储到数据库中,以供用户查询日志数据并快速生成曲线图,更主要的是nagios可以随时通过查看数据库中的记录更新监控状态。
centcore主要用于cnetreon的分布式监控系统中,在系统中centcore是一个基于perl的守护进程,主要负责中心服务器(central server)和扩展节点(pollers)间的通信和数据同步等操作,例如centcore可以在中心服务器上执行对远程扩展节点上nagios服务的启动、关闭和重启操作,还可以运行、更新扩展节点上nagios的配置文件。
ndoutils是将nagios与数据库进行连接的工具,它可以将nagios的实时状态写入数据库,以供其他程序去调用,最终可以实现在一个控制台上完成所有扩展节点的数据入库操作。
在介绍了Centreon监控系统的基本组成以后,下面重点看看每个组成部分是如何协调工作的,如下图1所示。
图1 典型的Centreon监控系统的内部工作原理
图1主要展示了Centreon每个组成部分是如何工作的,在组织结构上,一般情况下,Centreon Web、Centrstorage、Centcore和Ndo2DB位于中心服务器上,而Nagios和Ndomod可以位于一台独立的扩展节点(pollers)上,也可以位于中心服务器上。在分布式监控环境中,Nagios和Ndomod都位于远程的一个扩展节点上,此图没有展示Centreon的分布式监控构架,这个将后面详细介绍。
为了能使大家快速了解Centreon的内部工作原理,我们将图1分为三条线来介绍,第一条线:Centreon Web--->Centcore---> Centstorage--->db---> Centreon Web,Centreon Web就是Centreon的Web配置管理界面,在Web配置管理界面中配置好主机和服务后,会生成相应的配置文件,然后Centcore会去读取这些配置文件并结合相关Nagios插件将数据发送到Nagios监控引擎,并生成相关日志文件和rrds文件,而Centstorage模块会及时收集这些日志信息及rrds数据并最终将这些数据存入数据库中,以供Centreon Web展示调用。
接着是第二条线:Nagios---> Centstorage--->db---> Centreon Web,在本地或远程的扩展节点中Nagios监控引擎会产生日志文件和rrds文件,这些文件定期被Centstorage读取并最终存储在数据库中,以供Centreon Web读取。
最后一条线:Nagios(Ndomod)---> Ndo2DB--->db---> Centreon Web,这一条线将Nagios实时监控状态写入数据库,首先由在本地或远程扩展节点上的Ndomod进程将Nagios监控状态通过Ndo2DB模块写入数据库,最后Centreon Web会定期调用此db库,这样监控系统中各个主机或服务的监控状态就被实时展示出来了。
通过对这三条线的描述,Centreon内部工作过程就变得非常清晰了!
本文转自南非蚂蚁51CTO博客,原文链接: http://blog.51cto.com/ixdba/1576028,如需转载请自行联系原作者