Zabbix的低级别发现
简介
低级别发现Low-level discovery(LLD),使用低级别自动发现可以实现根据Agent的实际情况去自动创建监控项,适用于配置不一的环境。比如A主机有3块硬盘,B主机有5块硬盘,如果不使用LLD的话就需要人肉去为每个硬盘创建监控项。而有了LLD就可以实现自动创建每个硬盘的监控。
以下是一个监控url的实例,该脚本返回的数据必须是JSON格式,而且返回值需要设置为低级别发现宏的格式,如{#MYSQLPORT}:
#!/bin/sh
#file_name:discovery_url.sh
function discovery {
a=`awk 'BEGIN { i=0 } { i++ } END { print i}' /mnt/url`
printf "{ \n"
printf '"data":[ \n'
for url in `cat /mnt/url`;do
printf "{\"{#SERVICE_NAME}\":\"${url}\"}\n"
let a--
if [[ $a == 0 ]];then
break;
fi
printf ', \n'
done
printf '] \n'
printf '} \n'
}
function status_code {
if [[ -n $1 ]]; then
curl -sIL -w "%{http_code}\n" -o /dev/null $1
else
echo "NULL"
fi
}
case $1 in
discovery ) discovery
;;
status_code ) status_code $2
;;
* ) echo "Input Err!"
esac

配置zabbix-agent的配置文件;
[root@cluster4 zabbix]# cat zabbix_agentd.d/url_code_status.conf
UserParameter=discovery_url,/etc/zabbix/scripts/discovery_url.sh discovery
UserParameter=status_code[*],/etc/zabbix/scripts/discovery_url.sh status_code $1
web端配置
新建一个模板

创建自动发现规则

创建监控项原型

将这个模板链接给上面添加了配置文件的主机
确认该自动发现规则已启用

主机监控项

参考
http://www.linuxe.cn/post-480.html 【Zabbix监控教程】LLD低级别自动发现配置教程