总需求
公司内部服务器要求监控指定的端口,但是自动发现脚本会出现很多不需要的端口,所以就通过客户端写脚本监控端口,zabbixserver获取客户端传递出来的信息;
## 1 客户端配置。
创建port_alert.sh 用于抓取客户端的运行端口,port.conf 用于确定哪些是要监控的端口一行一个端口,不需要监控的端口可以不写或者直接#注释;
prot_alert.sh
[root@zabbix-agent ~]# cd /usr/local/zabbix/bin/
[root@zabbix-agent script]# more port_alert.sh
#/bin/bash
CONFIG_FILE=/usr/local/zabbix/bin/port.conf ###port.conf 文件位置不能错
Check(){
grep -vE '(^ *#|^$)' ${CONFIG_FILE} | grep -vE '^ *[0-9]+' &> /dev/null
if [ $? -eq 0 ]
then
echo Error: ${CONFIG_FILE} Contains Invalid Port.
exit 1
else
portarray=($(grep -vE '(^ *#|^$)' ${CONFIG_FILE} | grep -E '^ *[0-9]+'))
fi
}
PortDiscovery(){
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"
}
port(){
Check
PortDiscovery
}
portport.conf
[root@node1 bin]# cat port.conf
22
[root@node1 bin]#
port_alert.sh 必须要有执行权限,两个文件属性是zabbix
在zabbix_agentd.conf添加一段调用代码:
[root@zabbix-agent ~]# vi /etc/zabbix/zabbix_agentd.conf
UserParameter=port.alert,/usr/local/zabbix/bin/port_alert.sh重启zabbix-agent :
systemctl restart zabbix-agent## 2 zabbix-server 端的配置:
### A 创建新的模板:Port Alert 可见名称哪里要写端口监控,或者monitor-port ,由于docker启动的zabbix-server环境,数据库和中文字体没有优化导致模板添加失败,谨记;

### B 新建自动发现规则:

### C 添加监控项原型

### D 添加触发器类型:

### E 给对应的主机添加你新创建的模板看监控效果:

如果觉得创建模板麻烦,下面有直接模板文件下载导入就可以了,谨记导入模板前要解决zabbix中文乱码和数据库不支持中文字符集的问题,这个网上很多就不再这里重复了。
模板下载连接: https://www.modb.pro/download/539803
最后修改时间:2022-05-10 21:17:18
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




