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

主机名 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

#  abc
#ebc

配置文件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

server端测试
[root@zabbix-server ~]# zabbix_get -s 172.27.9.65 -k port.alert
{
"data":[
{"{#TCP_PORT}":""},
{"{#TCP_PORT}":""},
{"{#TCP_PORT}":""},
{"{#TCP_PORT}":""},
{"{#TCP_PORT}":""},
{"{#TCP_PORT}":""},
{"{#TCP_PORT}":""},
{"{#TCP_PORT}":""},
{"{#TCP_PORT}":""},
{"{#TCP_PORT}":""}
]
}

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

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

新建模板:

新建自动发现规则:

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

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

添加表达式:

模板关联主机:

查看最新数据:

查看告警信息:

查看微信端告警:

查看邮件报警:

微信、邮件告警搭建链接:http://blog.51cto.com/3241766/2108769

添加报警动作:

zabbix监控指定端口的更多相关文章

  1. zabbix的日常监控-自动发现端口并监测(服务器开启的所有端口或监控指定端口)(十三)

    动批量检查agent开放的端口 注:此方法给监控磁盘IO(即十二)篇过程一样: 注释:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控:  如果服务器会随机出现端口且每次启动程 ...

  2. zabbix使用客户端和不使用客户端监控指定端口

    监控指定端口也很简单,以监控181主机的22端口为例 点击已成功监控的181主机的监控项 点击创建监控项 使用客户端监控端口:选择键值net.tcp.listen[port],需要自己把port改成2 ...

  3. zabbix 监控进程,端口

    环境介绍 操作系统:centos 7.4 zabbix版本:zabbix server 3.4.7 客户端:zabbix-agent 3.4.7 监控进程:mysqld 监控端口:3306 tcp 进 ...

  4. Zabbix监控系统端口

    参考网站: https://www.cnblogs.com/nulige/p/7072019.html

  5. zabbix监控apache80端口

    1.修改zabbix_agentd.conf 修改# EnableRemoteCommands=0 -->去掉注释修改为1--> EnableRemoteCommands=1 ###允许客 ...

  6. zabbix—自动发现端口并监控

    自动批量检查agent开放的端口 PS:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控:  如果服务器会随机出现端口且每次启动程序都会改变,可以采用第二种方法,来监控指定的端 ...

  7. zabbix监控Java 8080端口

    linux下端口和服务是对应的,Java进程启动时默认监听8080端口,如果服务挂掉则8080端口就没有了. lsof -i:8080 端口,如果没有任何的输出,说明该端口不在工作. 想在zabbix ...

  8. Zabbix自定义监控8080端口的连接数

    Zabbix自定义监控8080端口的连接数 一 zabbix自定义监控实现思路 实际上我们要想使用zabbix来监控一些服务的原理很简单,步骤分别是:1.写一个脚本用于获取待监控服务的一些状态信息2. ...

  9. Zabbix系列之五——监控TCP端口

    监控端口的几个主要Keys: net.tcp.listen[port] Checks if this port is in LISTEN state. 0 - it is not, 1 - it is ...

随机推荐

  1. jenkins部署配置

    https://www.cnblogs.com/rslai/p/8135460.html 修改jenkins的默认端口号: https://blog.csdn.net/qq_32440951/arti ...

  2. 转载 :实例详解Django的 select_related 和 prefetch_related 函数对 QuerySet 查询的优化(一)

    在数据库有外键的时候,使用 select_related() 和 prefetch_related() 可以很好的减少数据库请求的次数,从而提高性能.本文通过一个简单的例子详解这两个函数的作用.虽然Q ...

  3. roadhog resolve alias 绝对路径 别名使用

    新建 webpack.config.js 然后加入 如下代码 module.exports = (webpackConfig, env) => { // 别名配置 const data = we ...

  4. sql server导入excel数据

    1.sql导入工具,数据源选择 microsoft excel 2.有odbc配置过的连接excel或其他数据库,都可以选择netframwork data provider for odbc,在ds ...

  5. Aop 基础

    基础文献 https://blog.csdn.net/abcd898989/article/details/50809321 简单Demo配置 pom.xml <!-- AOP --> & ...

  6. as2 连接服务器 post

    import mx.utils.Delegate; //接收服务器数据的文本加载器 var result_lv:LoadVars; /** * 数据提交成功后 * 获取的数据 * @param suc ...

  7. Redis脚本

    8.启动 /usr/local/bin/redis-server /etc/redis/redis.conf ./redis-server /home/work/redis/redis.conf &a ...

  8. 区分slice,splice和split方法

    1.slice(数组) 用法:array.slice(start,end) 解释:该方法是对数组进行部分截取,并返回一个数组副本:参数start是截取的开始数组索引,end参数等于你要取的最后一个字符 ...

  9. Django 数据库的迁移

    先数据库迁移的两大命令: python manage.py makemigrations & python manage.py migrate 前者是将model层转为迁移文件migratio ...

  10. Redis学习笔记一(Redis的详细安装及Linux环境变量配置和启动)

     Redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 我使用的是下面这个版本: 若没有资源的话,我在 ...