zabbix自定义自动发现服务(low
一、概述由于工作关系很久没有更新博客了,本文基于生产配置,是zabbix系列的另一补充;本次要讲的是zabbix Low-level discovery简称(LLD),我们在配置items(监控项)时,有时需要对类似的Items进行添加,换句话说,多台机器上的某一监控具有类似的items,如系统开放的服务,再如磁盘分区,网卡名称等,后两种zabbix已经自带,今天我们以自定义监控每个系统开放的服务来说明 LLD的使用逻辑;
和普通items获取不同的是,LLD 脚本在获取返回时,格式必须是json形式;
和自动发现不同的是,自动发现通过网络发现设备;而LLD是针对主机或模板中用来自动发现定义的items和添加触发器和图形的;
本次测试操作基于zabbix3.4.4本文中的相关脚本和模板下载
二、LLD脚本
1、获取开放的服务
任何获取items都要基于程序脚本,LLD发现也不例外,以下是获取系统开放服务脚本discovery_services.sh
# cat /usr/local/zabbix-3.4.4/scripts/discovery_services.sh
#!/bin/bash
proarray=($(find /var/run/ -name "*.pid"2> /dev/null||egrep -v '(rpc|php_daemon|haldaemon|irqbalance|console-kit-daemon)' |awk -F'/' '{print $NF}'|awk -F'.' '{print $1}')) # 排除不监控的服务
length=${#proarray[@]}
printf "{\n"
printf'\t'"\"data\":["
printf "\t"
printf '\n\t\t{'
printf "\"{#PRO_NAME}\":\"iptables\"}" #必须要添加的iptables
printf","
for ((i=0;i
页:
[1]