您现在的位置是:首页 >其他 >Zabbix4.0 自动发现TCP端口并监控网站首页其他

Zabbix4.0 自动发现TCP端口并监控

行路见知 2024-08-15 00:01:06
简介Zabbix4.0 自动发现TCP端口并监控

java端口很多,每台机器上端口不固定,考虑给机器配置组不同的组挂载模版,相对繁琐。直接使用同一个脚本自动获取机器上java相关的端口,推送到zabbix-server。有服务端口挂了自动推送告警

一、zabbix-agent配置过程

1、用户自定义参

[root@nexus zabbix_agentd.d]# cat /etc/zabbix/zabbix_agentd.d/userparameter_checkport.conf 
# 添加以下内容到配置文件中
UserParameter=tcpport.listen[*], bash /etc/zabbix/zabbix_agentd.d/externalscripts/check_port.sh $1
[root@nexus zabbix_agentd.d]#  cat /etc/zabbix/zabbix_agentd.d/externalscripts/port_discovery.sh 
#!/bin/bash
portarray=(`sudo netstat -tnlp | egrep -i "$1" | awk {'print $4'} | awk -F':' '{if ($NF~/^[0-9]*$/ && $NF != 22 && $NF != 80 && $NF != 10050 && $NF != 3306 ) print $NF}' | sort | uniq`)
length=${#portarray[@]}
printf "{
"
printf  '	'""data":["
for ((i=0;i<$length;i++))
  do
     printf '
		{'
     printf ""{#TCP_PORT}":"${portarray[$i]}"}"
     if [ $i -lt $[$length-1] ];then
                printf ','
     fi
  done
printf  "
	]
"
printf "}
"

2、zabbix_agent修改参数

1、调大延迟

Timeout=30

2、开启远程命令执

UnsafeUserParameters=1

3、给zabbix用户添加sudo权限

使用ansible批量授权zabbix用户执行netstat

3、zabbix-server测试

[root@ops-public ~]# zabbix_get -s 192.168.12.234 -k "tcpportlisten"

5、优化记录

解决方法

chmod u+s /usr/bin/netstat

二、zabbix web配置自动发现模版

1、创建模版

2、配置模版组

3、创建自动发现

4、填写自动发现规则

填写自动发现名称,键值填写与zabbix-agent端配置文件userparameter_checkport.conf 中的tcpportlisten保持一致

5、创建Item prototypes(创建监控项原型)

监控项原型名称:Port:{#TCP_PORT}

键值:net.tcp.listen[{#TCP_PORT}] TCP_PORT与脚本中port_discovery.sh 中的保持一致,键值选择net.tcp.listen[port],把port改成{#TCP_PORT}

6、创建触发器

触发器名称:Port:

默认正常值是1,不等于1时发送告警通知

恢复表达式

7、agent挂载模版查看最新数据

三、优化

计划自动发现端口并匹配到服务名称

风语者!平时喜欢研究各种技术,目前在从事后端开发工作,热爱生活、热爱工作。