zabbix自动发现当前服务器使用中的端口并图形展示各个端口连接数
1.修改配置文件 vi /data/server/zabbix_agent/conf/zabbix_agentd.conf UserParameter=tcp.port.discovery,/data/server/zabbix/bin/discover_tcp_port_count tcp_port_discovery UserParameter=tcp.port.count,/data/server/zabbix/bin/discover_tcp_port_count tcp_port_count $1
2.自动发现脚本 vi discover_tcp_port_count #!/bin/bash
source/etc/bashrc >/dev/null 2>&1 source/etc/profile >/dev/null 2>&1 tcp_port_discovery(){ tcp_port=(`netstat-tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/)print $NF}'|sort |uniq 2>/dev/null`) printf'{' printf' "data":[' for((i=0;i<${#tcp_port[@]};++i)) { num=$(echo$((${#tcp_port[@]}-1))) if ["$i" != ${num} ]; then printf" { " printf" \"{#PORTNUM}\":\"${tcp_port[$i]}\"}," else printf" { " printf" \"{#PORTNUM}\":\"${tcp_port[$num]}\"}]}" fi } } tcp_port_count(){ #/usr/bin/curl-o /dev/null -s -w %{http_code} http://$1 netstat-atnl |grep $1 |wc -l } case"$1" in tcp_port_discovery) tcp_port_discovery ;; tcp_port_count) tcp_port_count$2 ;; *) echo"Usage:$0 {tcp_port_discovery|tcp_port_count [port]}" ;; esac 3.重启agentd 4.验证 ./zabbix_get -s192.168.0.7 -p 10050 -k "tcp.port.discovery" ./zabbix_get -s192.168.0.7 -p 10050 -k "tcp.port.count[8080]"
5.server端web页面配置(配置模版或单个主机) 1)创建应用集
2)创建探索规则
3)创建项目监控原型
4)添加图形原型
|