zabbix端口监控

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


主机名                ip                     操作系统           zabbix版本

zabbix-server     172.27.9.63     Ubuntu16.04     zabbix_server  (Zabbix) 3.4.8

zabbix-agent      172.27.9.65     Ubuntu16.04     zabbix_agentd  (Zabbix) 3.4.8

1.脚本编写

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

[root@zabbix-agent ~]# cd /etc/zabbix/script/

没有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端测试

    3.1 安装zabbix_get

    sudo apt-get install zabbix-get

    3.2 测试配置是否正确

[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格式的合法端口号

    3.3 可能出现问题

出现问题:  sh: 1: /etc/zabbix/script/port_alert.sh: Permission denied 

解决方案:  chmod +x port_alert.sh

出现问题:  syntax error: "(" unexpected (expecting "fi")

解决方案:   修改dash 为bash

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

新建模板:

zabbix端口监控_第1张图片

新建自动发现规则:

zabbix端口监控_第2张图片

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

zabbix端口监控_第3张图片

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

zabbix端口监控_第4张图片

添加表达式:

zabbix端口监控_第5张图片

模板关联主机:

zabbix端口监控_第6张图片

查看最新数据:

zabbix端口监控_第7张图片

查看告警信息:

zabbix端口监控_第8张图片

查看微信端告警:

zabbix端口监控_第9张图片

查看邮件报警:

zabbix端口监控_第10张图片


来源:https://www.linuxidc.com/Linux/2018-09/154434.htm

加入本人安装配置过程中出现的问题及解决方案

你可能感兴趣的:(zabbix端口监控)