Zabbix监控指定端口

生产上经常会监控某些具体端口状态,下面介绍具体步骤:

 

主机名 ip 操作系统 zabbix版本
zabbix-server 172.27.9.63 Centos7.3.1611 zabbix_server (Zabbix) 3.4.8
zabbix-agent 172.27.9.65 Centos7.3.1611 zabbix_agentd (daemon) (Zabbix) 3.4.8

 

1.脚本编写

两个脚本,port_alert.sh为端口自发现脚本,port.conf为指定的监控端口号

复制代码
[root@zabbix-agent ~]# cd /etc/zabbix/script/
[root@zabbix-agent script]# more port_alert.sh 
#/bin/bash
CONFIG_FILE=/etc/zabbix/script/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
}
port
复制代码
复制代码
[root@zabbix-agent script]# more port.conf
22
80
#  abc 1
#ebc
50
3306  
8080
10050
10051
 3822
21
9100
复制代码

注意两个脚本属主为zabbix:zabbix。

配置文件port.conf每个端口号一行,每行的被监控端口可以有空格,空行和注释行#会被过滤。

 

2.修改被监控端的zabbix_agent.conf配置文件,新增KEY值port.alert

[root@zabbix-agent ~]# view /etc/zabbix/zabbix_agentd.conf
UserParameter=port.alert,/etc/zabbix/script/port_alert.sh

重启agent端zabbix服务

[root@zabbix-agent ~]# systemctl restart zabbix-agent 

3.server端测试

复制代码
[root@zabbix-server ~]# zabbix_get -s 172.27.9.65 -k port.alert
{
        "data":[
                {"{#TCP_PORT}":"22"},
                {"{#TCP_PORT}":"80"},
                {"{#TCP_PORT}":"50"},
                {"{#TCP_PORT}":"3306"},
                {"{#TCP_PORT}":"8080"},
                {"{#TCP_PORT}":"10050"},
                {"{#TCP_PORT}":"10051"},
                {"{#TCP_PORT}":"3822"},
                {"{#TCP_PORT}":"21"},
                {"{#TCP_PORT}":"9100"}
        ]
}
复制代码

测试成功,返回json格式的合法端口号

 

4.新建模板,创建自动发现规则

新建模板:

 

 新建自动发现规则:

 

 自动发现清单中新建监控项原型:

自动发现清单中新建触发器:

添加表达式:

模板关联主机:

查看最新数据:

查看告警信息:

 

 

原文链接:https://blog.51cto.com/loong576/2117521

posted @   民宿  阅读(1335)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示