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

image-20211128144524723

配置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端配置

新建一个模板

image-20211128144127256

创建自动发现规则

image-20211128144220050

创建监控项原型

image-20211128144247694

将这个模板链接给上面添加了配置文件的主机

确认该自动发现规则已启用

image-20211128144718378

主机监控项

image-20211128144807596

参考

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