Zabbix自动发现规则

   今天介绍一下Zabbix的自动发现规则,自定义监控项是自定义发现规则的基础,需要用户自定义脚本和键值。

  为什么我们需要自动发现规则呢?是因为很多监控项监控的内容一样,但是监控的对象不一样,自动发现规则可以方便我们添加这些监控项。以系统自带的发现规则(监控磁盘、网口和服务等)举例,磁盘、网口、服务数量都是变动的的,每台服务器都有可能不一样,但是要监控的内容都一样,比如磁盘的剩余空间,服务的状态等。

  那么我们用到发现规则的地方是 监控机台产生的error_log文件修改时间有没有改变,如果改变了,说明机台有error。但是机台数量很多,一台一台的添加监控项很枯燥,偷懒一下,用自动发现规则来添加监控项吧~

参考文档:

1. zabbix监控数据库表空间大小

2. Zabbix之Python脚本端口自动发现

3. Zabbix添加自定义监控项(一)

4. zabbix discovery / zabbix 自动发现

这4篇博客都是关于自动发现的脚本和案例。
自定义监控项/发现规则需要在Zabbix Agent的config档定义键,以及键对应的可执行脚本,然后在web上给被监控Server设置该键为监控项/发现规则。
注意Zabbix的自动发现功能获取的数据类型是JSON格式的,所以我们要输出JSON格式的字符串,Server才能识别。

博客1监控数据库表空间的大小;
博客2监控端口;
博客3监控磁盘IO使用率;
博客4监控是否存在丢包行为。

1. Python JSON

2. python对json的操作总结

3. Json概述以及python对json的相关操作(转)

上文提到,“Zabbix的自动发现功能获取的数据类型是JSON格式的”,而且我们使用Python开发脚本,所以上述三篇博客是关于Python的Json库使用介绍。

参考上述文档,即可写出自己的脚本,修改agent的config。然后在服务器上添加自动发现规则。截图附下。

添加自动发现规则

设置过滤器,过滤器是在脚本中上报的键,比如,我们脚本上报的是机台EQPT,注意,格式{#EQPT}

添加监控项并设置触发器,注意使用上图设置的过滤器

  以上,即实现了自动发现规则的创建添加。

   

  小提示,如果脚本是用Python写的,跑在windows上,应该在脚本前面加上Python的可执行路径,比如我的脚本前面加了如下语句

#! C:UserslqAppDataLocalProgramsPythonPython37python
# -*- coding: utf-8 -*-

  网上大部分脚本都是跑在Linux上面,所以前面加的是“#!/usr/bin/python”,但是windows上Python的可执行路径不是这个~

原文地址:https://www.cnblogs.com/lq67/p/11349342.html