Zabbix自动添加端口进程监控

添加端口和进程的监控,一种方案是可以通过模板来定义一组机器需要监控的端口和进程,优点是方案简单且监控准确,缺点是需要维护多套模板,比较适合小规模的团队。当监控规模较大时,需要考虑一种支持自助修改监控项的方案。本文记录一种通过自动发现(Low-Level Discovery)功能来实现自动添加端口进程监控以及支持自助修改的方案。

概述

Zabbix 的 Low-Level Discovery 功能可以通过一个自定义脚本,返回一个特定格式的 JSON 数据:

然后将脚本添加为 UserParameter。

然后在模板中配置自动发现。

端口自动发现

端口自动发现是通过 ss 命令来做,核心命令是:

输出格式如下:

然后将其输出为 Zabbix 自动发现要求的 JSON 格式:

为了支持用户自动配置,可以读取一个配置文件,允许用户在配置文件中自定义监控的端口,完整代码如下:

然后用户可以在 /etc/lld_port.conf 文件中修改 includeexclude 配置,比如,使用自定义的 include,只监控 22 和 53 端口:

进程自动发现

和端口自动发现的思路一样。

输出示例:

后记

这种方案要求用户自己去修改 /etc/lld_port.conf/etc/lld_proc.conf 文件来实现自定义,当机器比较多时是很繁琐的,对用户并不友好。如果用户不去维护,就可能导致自动添加了一些并不需要的端口和进程,带来一些无关紧要的报警。一个可能的解决方案是,通过 iTop CMDB 之类的工具来降低维护成本,将监控项也管理起来,允许用户在 CMDB 中配置监控项,对一组机器或者单台机器配置端口进程自动发现规则,机器上跑定时任务去更新 /etc/lld_port.conf/etc/lld_proc.conf,类似 登录时显示服务器信息 里的方式。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注