自动发现端口并添加监控设置
UserParameter=net.listen.discovery,sudo /etc/zabbix/scripts/discovery_listport.sh
#!/bin/bash Check=(`netstat -lntp|awk '/^tcp/{split($4,Port,":");split($7,Name,"[/:]");print Name[2]":"Port[length(Port)]}'|sort -u`) if [ -z "$Check" ];then exit else length=${#Check[@]} fi printf "{\n" printf "\t\"data\":[" for((i=0;i<$length;i++)) do Server=`echo ${Check[$i]}|cut -d: -f1` Port=`echo ${Check[$i]}|cut -d: -f2` printf "\n\t\t{" printf "\n\t\t\t\"{#SERVERNAME}\":\"$Server\"," printf "\n\t\t\t\"{#PORT}\":\"$Port\"}" if [ $i -lt $(($length-1)) ];then printf ',' fi done printf "]}\n"
主机→自动发现规则→创建发现规则
过滤器可选配置:
先创建正则表达式:管理→一般→(右侧下拉列表)→正则表达式
创建监控项原型
创建触发器原型
自动发现效果图如下:
需要注意:创建监控项原型(键值[]中的数值必须大写,否则会报错如下)
Cannot create item: item with the same key "*********" already exists