自动发现监控json


2020年6月21日 14:51     admin

注意:

Zabbix_agentd端自动发现脚本,zabbix要求返回的数据为json格式。

客户端

1、自动发现脚本与数据采集脚本

  1. #!/bin/bash
  2. #自动发现
  3. function zabbix_count() {
  4. XUHAO_NUM=1
  5. TOTAL_NUM=`cat /home/zabbix/zabbix/a.txt | wc -l`
  6. printf "{\n\t\"data\":[\n" > /home/zabbix/zabbix/test_zabbix.txt
  7. cat /home/zabbix/zabbix/a.txt | while read line
  8. do
  9. a=`echo $line | awk '{print $1}'`
  10. if [ "${XUHAO_NUM}" -ne "${TOTAL_NUM}" ];then
  11. printf '\t\t{\"{#NAME}\":\"'"$a"'\"},\n'>>/home/zabbix/zabbix/test_zabbix.txt
  12. else
  13. printf '\t\t{\"{#NAME}\":\"'"$a"'\"}\n'>>/home/zabbix/zabbix/test_zabbix.txt
  14. fi
  15. XUHAO_NUM=$(($XUHAO_NUM+1))
  16. done
  17. printf "\t]\n}" >> /home/zabbix/zabbix/test_zabbix.txt
  18. cat /home/zabbix/zabbix/test_zabbix.txt
  19. }
  20. #数据采集
  21. function zabbix_util(){
  22. cat /home/zabbix/zabbix/a.txt | grep -w "$1" | awk '{print $2}'
  23. }
  24. $1 $2

2、配置zabbix_agentd.conf

  1. vim /etc/zabbix/zabbix_agentd.d/zabbix_count.conf
  2. -----------------------------------------------------
  3. UnsafeUserParameters=1 #是否允许自定义脚本传递特殊字符作为参数
  4. UserParameter=zabbix.count,/home/zabbix/zabbix/test.sh zabbix_count
  5. UserParameter=zabbix.util[*],/home/zabbix/zabbix/test.sh zabbix_util $1

3、重启zabbix_agentd

  1. systemctl restart zabbix-agent.service

服务端

4、测试:返回预知的数据,则脚本和配置OK

  1. #自动发现脚本
  2. zabbix_get -s 192.168.31.146 -p 10050 -k "zabbix.count"
  3. #数据采集脚本
  4. zabbix_get -s 192.168.31.146 -p 10050 -k "zabbix.util a"

5、在模板中配置自动发现

6、配置项目原型

7、在主机或模板中配置图形