作者田逸(vx:formyz,mail:sery@163.com)
有了Centreon WEB管理界面,我们再也不需要像原生Nagios那样手动编辑各种文本文件,这些操作,绝大部分可以在浏览器页面进行,非常的直观,而且也能减少手工输入字符的错误。接下来,假定一个场景:一个空白干净的Centreon 监控某个远端主机是否存活。
这里,我不按照规矩出牌(即不事先安装基本插件、对管理员账号做修改等),而是在操作中故意遇到障碍,以排除故障作为操作路径,加深大家对Centreon的认识和理解,也许这样,可能对初学者更有帮助。
我们约定,如果没有特殊说明,默认操作是在浏览器里进行;同时确定,centreon所有相关的服务处于启动状态,比如centengine、cbd等。
添加主机
鼠标选择左侧菜单按钮”配置”(齿轮图标⚙),子菜单“hosts”,孙菜单“hosts”。
出现添加主机配置操作界面,点按钮“Add”。
有两个“Add”按钮,两个按钮对应的操作都是一样的,可以随便选一个。下一个界面,带星号的项必须填写或者选定。
Name字段,如果字符之间有空格,如stor109 server,系统会自动在第一个单词的结尾处用下划线把两个单词连接在一起,形如stor199_server。为了方便维护,也可以直接输入中文字符。滚动条往下拉,“Host check options”主机检查选项,Check Command是一个单选下拉列表框,用来指定主机存活所使用的命令。
鼠标点开下拉列表框,什么也没有,到这步,就卡住了,要继续往下,得先解决这个问题。点击列表框右侧的中间有字母“i”的图标,弹出新的页面窗口,提示如下图所示:
从上边这个提示大致可以判断,可能是缺少插件的问题。关闭贴士页面,返回到主管理界面,点开配置菜单的子菜单”Plugin Packs”,确保系统可以访问互联网。
等待片刻,会出现很多可用的插件包,看起来很丰富,实际场景中,用得上的没几个,更多的时候,可能需要手工写插件,来满足特定的需求。
第一个图标,名字为“Base Pack”,鼠标放在上边,有一个加号“+”向左展现(其它图标也一样),点这个加号“+”就是安装此插件。整个图标是个超链接,点开它可以看到此插件更详细的信息。
安装好插件以后,图标的形状变了,又上角多了个勾。
如果不再需要这个插件,可以点击图标的按钮叉号。
插件就绪,返回到添加主机那个界面,看命令选项的下拉列表框是否有内容。
确实有内容了,说明解决思路和方法是对的。这里我们选“base_host_alive”,再把其它编辑框填上或者选取上。
调度选项这几个值,在这里简单做一个说明:
- Check Period(检查周期)。重要业务,全天候24小时监控了。告诉大家一个秘密,某国家单位,对外提供服务的服务器,人下班服务器也下班,哈哈!
- Max Check Attempts(最大重试次数)。此机制可有效避免因网络抖动等原因造成系统误报,或者频繁报警的问题。此处设置为“3”,表示探测3次监控对象都处于出装状态,就发出警示告警(监控页面图标的颜色、发送告警邮件等)。
- Normal Check Interval(正常检查时间间隔)。两次监控探测执行的时间间隔,单位为分钟。
- Retry Check Interval(重试检查间隔时间)。定义被监控的主机故障被探测到后,监控服务器再次去探测该主机状态的时间间隔。
以上几个设置,监控系统探测到主机发生故障,到正式认为主机真宕机并发出告警,所经历的时间大概是9分钟。
先不急于保存上述设置,等下一个“Notification”设置完以后,再点“Save”按钮一次保存。
保存完毕以后,登录系统,查看数据库是否有写入。抽取数据库centreon的表单host,浏览其字段定义,然后再进行记录查询,使用的指令为:
MariaDB [(none)]> use centreon
MariaDB [centreon]> show tables;
MariaDB [centreon]> desc host;
MariaDB [centreon]> select host_id,host_name,host_address from host;
查询的输出如下图所示:
从输出记录可知,Web页面进行的操作,确实把相关设定写入了数据库。
添加依附于主机的服务
主Web管理界面,菜单进入“Configuration””Services”“Service by host”。需要注意的是,必须先添加主机,才能在其上添加服务。
描述这个编辑框,尽量用可以看得懂的文字进行描述,方便日常管理。好的命名有事半功倍的作用,即便部署监控的人不在,其他得到授权的同事,也能明白其意义所在。
“Service Scheduling Options”服务调度选项与添加主机的调度选项基本一致,不做赘述,其具体设定如下图所示:
同样,添加服务也得把通知相关联。
在点击按钮“Save”之前,可以登录系统,查看数据库centreon的表单service,使用语句“select service_id,display_name from service;”进行查询,观察其输出。点击保存之后,再查询数据库表单service,与保存之前做一个对比,看是否写入了数据库。
select service_id,display_name from service;
通过前边的添加主机和添加服务操作,虽然数据都写入了数据库,但监控引擎其实是没有工作的,通过查看Web管理页面的上部图标,即可做出判断。
从这里我们可以了解到Centreon与Zabbix的差异:不从数据库直接读取数据。有原生Nagios运维经验的伙伴们应该熟悉,监控引擎读取的是文本配置文件。Centreon的cbd,其主要功能就是从数据库读取数据,然后插入到相关的文本配置文件。前边的步骤,我们添加了主机与服务,那么我们就把关注点转移到目录/etc/centreon-engine下的文件hosts.cfg与services.cfg,一番操作以后,看是否有内容填充?
导出数据并启动Centreon引擎
鼠标点击页面左上角图标Poller,再点子菜单“configure pollers”。
在页面中,可以看到“Conf Changed”的字段值有显眼的“Yes”,其颜色为红色。
而数据库未有新数据写入的情况下,此处的值为“No”,颜色为绿色。
勾选需要操作的Poller,然后点页面按钮“Export configuration”。
页面“Configuration Files Export”,勾选如下几项,重载引擎的方法有“Reload”与“Restart”两项可选,随便选取即可。
勾选的四项Actions,其作用如下:
- Generate Configuration Files(生成配置文件)。从数据库导出记录,存储在临时的缓存文件中,具体的存放路径为“/var/cache/centreon/config/engine/1”,执行“Export”操作以后,在其下生成的文件如下图所示:
- Run monitoring engine debug (-v)监控引擎对配置文件进行语法检测。相当于原生Nagios执行nagios –v nagios.cfg,这里应该是centengine.cfg文件。
- Move Export Files(移动输出文件)。从缓存目录/var/cache/centreon/config/engine/1复制文件到配置文件正式目录/etc/centreon-engine。输出操作完成以后,抽取文件hosts.cfg,查看其内容。
确实与我们在web页面输出及设定的内容相一致,熟悉的nagios配方,熟悉的味道。
- Restart Monitoring Engine(重启监控引擎)。
执行输出(Export)操作,页面会有控制台信息输出,一部分为执行进度,一部分为语法检查过程。
不妙,报错了!根据控制台提示,初步判断是联系人没有与通知类型相关联,即出现告警用什么方式通知联系人。进入菜单“Configure”“Users”“Contact / Users”,对用户进行编辑。
因为当前系统只有唯一的一个可用账号admin,因此仅对admin账号进行编辑修改。鼠标点超链接“admin”,即可进行编辑。
编辑界面的上半部分,由系统自动填充,不用理会。
-
Linked to Contact Groups。链接组当前有管理员组及访客组,仅选管理员组即可。
-
Host Notification Options。主机通知选项勾选“Down”、“Unreachable”、“Recovery”。表示监控引擎探测被监控的主机发生宕机、不可达、或者故障恢复,都会发送告警信息。
- Host Notification
Commands。主机通知命令默认有好几种,因为在安装系统时,我们只填写了一个管理员邮箱,因此只有选邮件通知才会起作用。在生产环境中,通常会使用短信通道或者钉钉机器人来发送告警信息。
- Service Notification
Options。服务通知选项勾选“Warning”(比如磁盘到达设定的阈值下限)、“Unknown”、“Critical”(设定阈值的上限)、“Recovery”。
- Service Notification Commands。服务通知命令也选邮件方式。
保存设置,然后再返回配置输出操作界面,再观察页面控制台输出信息。
语法检查通过,一切ok。在页面的上部,将看到主机一个,服务也是一个。
如果不是这样,很可能是cbd与centengine服务没有启动,用系统命令“systemctl status centengine cbd”检查并用” systemctl start centengine cbd”启动它们。
systemctl status centengine cbd
systemctl start centengine cbd
操作步骤汇总
为确保少走弯路,可按如下顺序进行。
- 安装基础插件包。
- 编辑用户信息。
- 添加主机。
- 为主机添加服务。
- 选定Poller输出配置并重启Centreon引擎。
- 检查监控是否生效。
验证监控有效性
部署好Centreon监控以后,还需要模拟故障发生和恢复,以验证监控是否有效工作。很久以前,某知名地产公司的兄弟找我帮忙,说他们的监控系统就是服务器死机了,也不会报警,让我帮忙看看是什么情况。他们用的是原生nagios,监控大概40几个物理主机,仔细检查,发现部署监控的乙方,仅仅把监控项加上就完事,没有做故障模拟测试,这还不算,连监控引擎都没启动。
模拟测试的基本方法是:把被监控的主机关机,观察Centreon的行为;再把被监控主机启动恢复正常,观察Centreon的行为。如果是生产环境,不能停机的话,建议找一个不重要的系统进行测试,比如负载均衡器后的某个节点,关闭以后,有其它节点继续提供服务,并不会对业务造成影响。
- 被监控主机关机。可关闭系统或者拔掉网线,确保其不能通过网络访问,可通过ping一类的系统指令远程探测被监控主机。再切换到Centreon Web管理后台,观察页面显示的状态变化。
监控引擎探测到主机发生严重错误,当重试三次还是处于错误状态的时候,通过邮件发送告警信息。邮件发送是通过postfix完成的,因此postfix服务也是必须开机启动的。告警邮件发送,由于大部分电子邮件系统启用了反垃圾邮件机制,没有特定解析的主机可能不能正常发送邮件。但我们可以通过查看日志文件/var/log/maillog查看邮件发送与接收。
- 恢复被监控主机。观察Centreon Web管理后台页面状态,恢复以后,图标应该为绿色;接收告警邮件的邮箱,也能收到故障恢复的邮件。