Zabbix LLD Discovery - zabbix监控之低等级发现

zabbix 的Regular expressions

以下是一个zabbix文件系统自动发现的正则表达式,匹配到的话返回true:
1
下面看一下文件系统自动发现的具体配置:
2
在zabbix server通过zabbix_get获取一下文件系统发现的全部key:
3

可以观察到,这里匹配{ #FSTYPE }的这个key,必须要符合上述正则表达式(返回True)才会返回,这个是zabbix自带的自动发现。
再说说这个Filters的作用:
实际上就是一个限制作用,只有符合我们自定义的规则,才会返回到zabbix的监控项,否则就不返回,这个看个人具体需求,适合一些已知的监控项,比如文件系统,网卡类型等。如果是不可控的可变类型,建议不要使用,会导致匹配失败而不能发现监控项。

监控实例

单监控key

实例1 监控mysql是否在线

新建监控模板

通常我的做法是新加一个lld规则,新建一个模板,填上模板名称即可
4

新建应用(aapplication)

5
我这里把下一个实例的应用也同时创建了
6

添加监控脚本

这一步是重点,通过自定义的脚本来为zabbix添加自定义key
7
脚本输出必须为标准的json格式,至于用py 还是 shell自己选择,我是觉得系统数据获取还是shell比较方便
8
修改zabbix_agentd.conf
9
重启zabbix_agentd 就可以获取对应添加的key了,下面测试一下
10
mysql.alived 就是添加的自定义key,可以正常返回
获取对应{ #MYSQL_PORT } 端口的值:
zabbix_get -s 192.168.236.32 -k "mysql.alive[5500]"
以上测试通过之后可以进行下一步,这里注意脚本的权限,zabbix用户务必具有执行权限。

配置zabbix自动发现

在zabbix面板新建两个discovery rules

new discovery rules

配置discovery rule,这里Filters暂时不使用

configure discovery rules

为模板添加items

new items

配置items

configure items

创建报警触发器

new tigger

配置触发器

configure tigger
我这里是正常返会1,异常返回0。当最后一次的值小于1时触发告警,告警级别为Disaster。

创建监控图表

new graph

配置监控图表

confiugre graph
以上就完成一个lld 自动发现模板的配置了。

监控测试

进入到套用此模板的服务器,查看自动发现item是否已经正常加入监控。我们过滤一下mysql_alived这个application,可以看到监控项正常加入
items

测试告警可以关闭监控mysql进行。

实例2 监控mysql主从(一从多主)关系是否正常

参照2.1的配置就行了,就是修改一下key的名称即可。

多监控key

实例1 监控mysql主从(一从多主)延时

监控脚本返回

这个的步骤其实跟上边也是差不多的,先来看看监控返回格式
json return
这里其实就跟一开始我们分析的文件系统自动返现那里是类似的。跟上例子不一样的是,这里使用了两个json key作为一个分组,分别是{ #MYSQL_PORT } { #CHANNEL_NAME },我们现在要实现的是监控这些端口下所有channel的mysql主从同步的 Second_behind_master参数,所以我们必须先得到所有的mysql port 和 每个port 下对应的channel名称才能得到Second_behind_master的值。

这里mysql.behind 也是自定义的监控key,在zabbix_agentd.conf进行自定义添加即可。

配置regular expression

新建一个regular expression,这里用途是匹配一从多主的channel_name,等下会用到
reg expression

配置zabbix 自动发现

新建一个模板,新建application,新建discovery rule
reg expression
这里filters使用上边刚刚添加的regular expression
reg expression
新建items
new items
这里{ #MYSQL_PORT }{ #CHANNEL_NAME } 的使用其实就很明确了,你得事先让zabbix知道他们分别代指什么东西,之后zabbix就能将他们作为数据参数来使用了,这就是为什么一开始就要先获取到这两个key的全部数据。

接下来添加触发器和添加图标的操作是一样的:
下面是图表添加的范例
new graph

监控测试

进入到套用模板的机器,过滤对应的application
dashbord