注意:
Zabbix_agentd端自动发现脚本,zabbix要求返回的数据为json格式。
客户端
1、自动发现脚本与数据采集脚本
#!/bin/bash
#自动发现
function zabbix_count() {
XUHAO_NUM=1
TOTAL_NUM=`cat /home/zabbix/zabbix/a.txt | wc -l`
printf "{\n\t\"data\":[\n" > /home/zabbix/zabbix/test_zabbix.txt
cat /home/zabbix/zabbix/a.txt | while read line
do
a=`echo $line | awk '{print $1}'`
if [ "${XUHAO_NUM}" -ne "${TOTAL_NUM}" ];then
printf '\t\t{\"{#NAME}\":\"'"$a"'\"},\n'>>/home/zabbix/zabbix/test_zabbix.txt
else
printf '\t\t{\"{#NAME}\":\"'"$a"'\"}\n'>>/home/zabbix/zabbix/test_zabbix.txt
fi
XUHAO_NUM=$(($XUHAO_NUM+1))
done
printf "\t]\n}" >> /home/zabbix/zabbix/test_zabbix.txt
cat /home/zabbix/zabbix/test_zabbix.txt
}
#数据采集
function zabbix_util(){
cat /home/zabbix/zabbix/a.txt | grep -w "$1" | awk '{print $2}'
}
$1 $2
2、配置zabbix_agentd.conf
vim /etc/zabbix/zabbix_agentd.d/zabbix_count.conf
-----------------------------------------------------
UnsafeUserParameters=1 #是否允许自定义脚本传递特殊字符作为参数
UserParameter=zabbix.count,/home/zabbix/zabbix/test.sh zabbix_count
UserParameter=zabbix.util[*],/home/zabbix/zabbix/test.sh zabbix_util $1
3、重启zabbix_agentd
systemctl restart zabbix-agent.service
服务端
4、测试:返回预知的数据,则脚本和配置OK
#自动发现脚本
zabbix_get -s 192.168.31.146 -p 10050 -k "zabbix.count"
#数据采集脚本
zabbix_get -s 192.168.31.146 -p 10050 -k "zabbix.util a"