为快速对服务器端口进行监控,以下介绍如何通过zabbix的自动发现功能,对端口进行监控。
1、获取端口脚本
首先,将服务器的监听端口扫描出来,封装成json格式,抛给zabbix
将以下脚本保存为:discover_port.sh
- #!/bin/bash
- portarray=(`netstat -tnlp|egrep -i "$1"|awk {'print $4'}|awk -F':' '{if ($NF~/^[0-9]*$/) print $NF}'|sort|uniq`)
- length=${#portarray[@]}
- printf "{\n"
- printf '\t'"\"data\":["
- for ((i=0;i<$length;i++))
- do
- printf '\n\t\t{'
- printf "\"{#TCP_PORT}\":\"${portarray[$i]}\"}"
- if [ $i -lt $[$length-1] ];then
- printf ','
- fi
- done
- printf "\n\t]\n"
- printf "}\n"
2、zabbix-agent配置脚本
将以下内容保存至 find_tcp_port.conf 放到每套服务器 /etc/zabbix/zabbix-agentd.d/目录下
UserParameter=find.tcp.port,/bin/bash /opt/scripts/tcpport/discover_port.sh
二、客户端配置
1、在每台zabbix agent客户端服务器创建以下目录:
mkdir -p /opt/scripts/tcpport
然后将以上脚本discover_port.sh上传至该目录下并授予脚本执行权限:
chmod +x /opt/scripts/tcpport/*.sh
2、上传find_tcp_port.conf文件至以下目录(如果是zabbix-agent2,放到对应的目录即可)
/etc/zabbix/zabbix_agentd.d/
3、修改zabbix启动用户为root
vi /usr/lib/systemd/system/zabbix-agent.service

注释User Group 两行
接着修改zabbix-agent配置
vi /etc/zabbix/zabbix_agentd.conf

4、然后重启zabbix-agent客户端
1、打开web界面,导入Template TCP Port status.xml
(模版默认为zabbix5版本,如果是zabbix,请导入4.0模板)

2、在主机中关联模板
在主机模块,全选主机,点击批量更新,然后点击模板

3、验证数据
选择其中一台linux主机,在自动发现模块,选择 find tcp port 项,点击 Execute now
然后在监控项栏,看是否有新增TCP_PORT应用集监控项目