暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

zabbix5.0通过脚本监控远程主机端口

原创 雪狼sunny 2022-05-10
2337

总需求 

公司内部服务器要求监控指定的端口,但是自动发现脚本会出现很多不需要的端口,所以就通过客户端写脚本监控端口,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
}
port

port.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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论