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是否可以访问。
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 绘制图形,当然还可以创建触发器触发对应的告警等功能
posted on 2019-10-31 19:31 it_man_xiangge 阅读(1158) 评论(0) 编辑 收藏 举报