Zabbix监控搭建小结

前言

本文主要总结一下最近工作中设置zabbix监控的过程(非zabbix本身的安装部署)。

发现主机

当安装好zabbix-server以及在每一台主机上安装好agent之后,我们就要开始往里面添加主机了。主机比较多,采用的是Active agent auto-registration

设置监控项

主机有了之后,我们就需要设置监控项,也就是item;一堆item的集合就是application;而每个item都能设置对应的trigger;templates就是这一堆东西的集合。templates可以导出来随处使用。做这套监控的时候就是现成已经有了不少模版,比如常规的OS指标,可以直接使用zabbix自带的Template OS Linux。导入模版的时候要特别注意依赖关系,比如Template JMX Cassandra是依赖于Template JMX CMS,而Template JMX CMS是依赖于Template JMX Generic的,那么导出来的时候要全部导出,不然之后导入的时候就会报错,一般是报有某些值找不到的错误。还有,主机添加JMX模版的时候,必须要先添加JMX Interface,不然模版是加不进去的。关于JMX Interface的注意,可以参考这篇文章。Zabbix配置JMX监控的一点记录

自定义监控项

有些监控值是需要通过其他手段来获取的,这时候就需要用到自定义监控项。这里举一个简单的例子。比如需要监控elasticsearch集群的状态,包括cluster的整体状态以及每个节点的状态,这些状态值是通过访问es提供的API获取的。使用py-zabbix的 api编写一个python脚本获取这些监控值并发送到zabbix-server即可。这里有两种方式,一种是zabbix-server直接调用脚本收取所有es主机的值,但是要求server能连同所有的es机器;另外一种是每台es的zabbix-agent自身调用脚本收取值并发送到zabbix-server,但是要在每台es都放置python脚本并编写userparameter_es.conf文件说明键值如何获取。安全起见,推荐使用第二种并且部署可以使用ansible自动化,脚本放置到多台机并不是什么问题。

配置发送告警邮件

我使用的是自定义脚本发送告警邮件。首先是定义media以及action,详细可以参考这里。接着是定义用户以及用户组,配置用户的media为上面所配置的自定义media。然后即可触发测试。这里面要注意的是,所配置的用户必须对生成事件的主机组至少具有读权限,一般是通过用户组的权限进行配置;其次,不只是发送告警信息,还可以远程执行命令,做一些简单的治愈;最后,如果问题一时半会不能解决,可以在operation里面配置当event knowledge等于not ack的时候才发送告警邮件,这样就可以先ack一下来暂停邮件轰炸😄

参考

https://www.zabbix.com/documentation/3.2

您的支持将鼓励我继续创作!
0%