zabbix 自动发现(LLD)

概述

自动发现(LLD)提供了一种在计算机上为不同实体自动创建监控项,触发器和图形的方法。例如,Zabbix可以在你的机器上自动开始监控文件系统或网络接口,而无需为每个文件系统或网络接口手动创建监控项。此外,可以配置Zabbix根据定期执行发现后的得到实际结果,来移除不需要的监控项。

上面是官方的解释,简单来说就是创建规则自动发现主机上的不确定数量的items,例如,我们要监控主机上的cpu 使用情况,但是问题来了,主机的cpu 数量每个主机可以不一样,有的8核,有的16核,这时候我们可能就要建立自动发现的规则了,让程序自动发现主机上的cpu 核心数,然后自动监控,并绘图。

实例:

创建web 监控,让主机自动监控我们网站,如果我们有一百个或者上千个url,这时不用一个个的去页面添加,可以让zabbix 自动为我们添加

1.配置zabbix-agent.conf

UnsafeUserParameters=1   
Include=/etc/zabbix/zabbix_agentd.d/      #放置用户自定义监控脚本

2.配置监控脚本

vim /etc/zabbix/zabbix_agentd.d/url_monitor.conf   

UserParameter=url.discover,bash /etc/zabbix/LLD/discover.sh          #uri自动发现,用于自动发现我们的url,我们的url可以写到文件里,也可以取指定的地方获取,这里我们为了简单,就直接脚本中返回过去了。
UserParameter=url.monitor[*],bash /etc/zabbix/LLD/monitor.sh $1    #监控具体的uri是否可以访问。

扫描二维码关注公众号,回复: 7701194 查看本文章

note:

 上面的那个discover.sh  脚本做的事情其实就是自动发现url ,然后返回一个json ,形如:

{"data":[{"{#URI}":"http://www.baidu.com"},{"{#URI}":"http://www.qq.com"},{"{#URI}":"http://www.sina.com"}]}       

#大致的原理就是利用我们自己提供的脚本发现机器上的监控项然后zabbix server 收到后将这些值赋给我们指定的macro ,在本例中时赋值给  URI,然后zabbix 在将取到的值一个个的传到我们的monitor.sh 脚本中,用户监控具体的itmes。

vim /etc/zabbix/LLD/monitor.sh                    #监控具体的url,如果成功访问就返回1,失败就返回0,用于页面绘图,脚本中的 $1 其实就是上面discover.sh 这个脚本返回的值,比如;www.baidu.com  , www.qq.com,  www.sina.com

#!/bin/bash
curl $1 > /dev/null 2>&1
if [[ $? == 0 ]]
then
echo 1
else
echo 0
fi

编辑好后重启zabbix-agentd

########接下来就是web 页面的操作:

1.创建自动发现规则:

configuration  --->>  templates   --->>  template os linux   --->>  discover rules  --->> create discovery rule

2.创建item 的具体监控方式(上面第一步相当于只是获取到了主机上的具体itme 项名称,而这里时具体怎样去监控上一步发现到的item)

configuration  --->>  templates   --->>  template os linux   --->>  discover rules  --->> create discovery rule

 

 3.根据发现到的itme 自动创建图形:

####查看获取到的图像:

点击对应的主机,可以看到已经自动发现了我们的url

 到此,我们就可以利用lld自动发现我们的itmes 并应用对应的itme 绘制图形,当然还可以创建触发器触发对应的告警等功能

猜你喜欢

转载自www.cnblogs.com/dufeixiang/p/11773218.html