Zabbix 配置端口监控

Zabbix 端口监控简介

在Zabbix中配置端口监控,可以帮助你实时监控服务器或网络设备上的特定端口是否开放和可访问。Zabbix提供了多种方式来监控端口,主要包括简单的端口可用性检查和更复杂的服务监控。
在这里插入图片描述
在Zabbix中进行端口监控时,不一定需要Zabbix Agent参与。可以选择使用Zabbix的内置“简单检查”(Simple check)功能来实现端口监控,这种方式不依赖于Zabbix Agent。

如果需要更复杂的监控,或者在监控过程中需要进行一些自定义处理,可以使用Zabbix Agent和自定义用户参数来实现端口监控。

安装了Zabbix Agent后,登录Zabbix Server的Web界面添加新主机,通过配置相应的监控项(Item)和触发器来监控特定端口的状态。

以下是Zabbix进程标准检测器的列表:

# 检查 TCP 端口 是否处于侦听状态。返回 0 - 未侦听;1 - 正在侦听
net.tcp.listen[port]# 检查是否能建立 TCP 连接到指定端口。返回 0 - 不能连接;1 - 可以连接
net.tcp.port[<ip>,port]# 检查 TCP 服务的性能。返回 0 - 服务已关闭;或连接到服务所用的秒数	
net.tcp.service.perf[service,<ip>,<port>]# 检查服务是否运行并接受 TCP 连接。返回 0 - 服务关闭;1 - 服务运行
net.tcp.service[service,<ip>,<port>]# 返回与参数匹配的 TCP 套接字数量。返回整数
net.tcp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]# 检查 UDP 端口 是否处于侦听状态。返回 0 - 未侦听;1 - 正在侦听
net.udp.listen[port]# 检查 UDP 服务的性能。返回 0 - 服务已关闭; 或等待服务响应的秒数
net.udp.service.perf[service,<ip>,<port>]# 检查服务是否运行并响应 UDP 请求。返回 0 - 服务关闭;1 - 服务运行
net.udp.service[service,<ip>,<port>]# 返回匹配参数的 UDP 套接字数量。返回整数
net.udp.socket.count[<laddr>,<lport>,<raddr>,<rport>,<state>]

Zabbix 端口监控配置

zabbix环境信息:

节点IPOSRole
zabbix-server192.168.72.31Ubuntu 22.04zabbix-server
web-server192.168.72.33Ubuntu 22.04web-server/zabbix-agent

zabbix 版本: v7.0.0

前置要求:已在web-server上安装zabbix-agent,并且在zabbix-server上添加web-server主机。

在web-server上安装nginx服务作为示例应用端口。

apt install -y nginx

查看nginx 监听的80端口

root@web-server:~# ss -antulp |grep ':80 '
tcp   LISTEN 0      511          0.0.0.0:80         0.0.0.0:*    users:(("nginx",pid=49839,fd=6),("nginx",pid=49838,fd=6),("nginx",pid=49837,fd=6))                                                                                                                                                                                                                                                                                                                                                                  
tcp   LISTEN 0      511             [::]:80            [::]:*    users:(("nginx",pid=49839,fd=7),("nginx",pid=49838,fd=7),("nginx",pid=49837,fd=7))                                                                                     

在zabbix web控制台上,导航到数据采集 -> 主机,选择web-server节点
在这里插入图片描述
选择监控项,新建监控项
在这里插入图片描述

配置参数说明:

  • 名称:Check Port 80 Status
  • 类型:Zabbix 客户端
  • 键值:net.tcp.service[tcp,,80]

选择触发器,创建触发器,在表达式中选择Check Port 80 Status
在这里插入图片描述

配置参数说明:

  • 名称:Port 80 Down
  • 表达式:点击添加,监控项选择Check Port 80 Status,插入后表达式为:last(/web-server/net.tcp.service[tcp,,80])=0,当80端口不存在时进行告警。

选择告警->动作->创建动作,在触发器中选择Port 80 Down
在这里插入图片描述配置参数说明:

  • 名称:Notify on Port 80 Down
  • 条件:点击添加,触发器选择 Port 80 Down

配置操作
在这里插入图片描述
自定义消息内容如下:

Problem: {EVENT.NAME}-=【告警】=-
告警组:{TRIGGER.HOSTGROUP.NAME}
告警主机:{HOSTNAME1} 
告警主机别名:{HOST.NAME}
主机IP:{HOST.IP}
主机描述:{HOST.DESCRIPTION}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
警报类别:{TRIGGER.NAME}
当前状态:{ITEM.LASTVALUE}
告警平台:http://192.168.72.31/zabbix

说明:告警平台地址为zabbix-server地址。

配置恢复操作
在这里插入图片描述
自定义消息内容如下:

Resolved:{EVENT.NAME}-=【告警取消啦】=-
恢复主机:{HOSTNAME1}
恢复时间:{EVENT.DATE} {EVENT.TIME}
主机IP:{HOST.IP}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

在监测->最新数据中,选择web-server,查看监控数据图形:在这里插入图片描述
在Zabbix-server服务端执行。
如果192.168.1.100的8080端口正常可达,此时应该返回1,如果不通则返回0

root@zabbix-server:~# apt install -y zabbix-get
root@zabbix-server:~# zabbix_get -s 192.168.72.33 -k net.tcp.service[tcp,,80]
1

在web-server上停止nginx服务

root@web-server:~# systemctl stop nginx

查看收到的钉钉告警消息
在这里插入图片描述

自定义脚本配置文件

通过在Zabbix客户端配置文件中添加自定义用户参数(UserParameter),可以实现对特定端口的监控。这是一种灵活的监控方法,可以根据需求定制化监控项。以下是具体步骤和示例:

通过为zabbix设计脚本文件加端口列表文件,port_alert.sh为端口自发现脚本,port.conf为指定的监控端口号,然后结合UserParameter来批量监控端口。可以轻松地批量监控多个端口,并且可以通过简单修改配置文件来更新监控列表,无需频繁修改Zabbix配置。

在web-server节点创建脚本文件

root@web-server:~# cat /etc/zabbix/port_alert.sh 
#!/bin/bash# 端口自发现脚本
discover_ports() {ports=$(cat /etc/zabbix/port.conf | grep -v '^#' | tr '\n' ' ')printf '{"data":['comma=""for port in $portsdoprintf '%s{"{#PORT}":"%s"}' "$comma" "$port"comma=","doneprintf ']}\n'
}# 检查端口是否开放
check_port() {port=$1timeout 1 bash -c "echo >/dev/tcp/localhost/$port" 2>/dev/nullif [ $? -eq 0 ]; thenecho 1elseecho 0fi
}# 主逻辑
case "$1" indiscover)discover_ports;;check)check_port $2;;*)echo "Usage: $0 {discover|check port}"exit 1;;
esacexit 0

修改脚本执行权限

chmod +x /etc/zabbix/port_alert.sh

创建要监控的端口列表

root@web-server:~# cat /etc/zabbix/port.conf
# 要监控的端口列表
80
443
3306
8080

新建zabbix_agentd.conf 配置文件

cat >/etc/zabbix/zabbix_agentd.d/zabbix_agentd.conf<<'EOF'
UserParameter=custom.port.discovery,/etc/zabbix/port_alert.sh discover
UserParameter=custom.port.check[*],/etc/zabbix/port_alert.sh check $1
EOF

重启zabbix-agent服务

systemctl restart zabbix-agent.service

Zabbix Web界面配置,选择数据采集->主机->web-server->自动发现->创建自动发现。
在这里插入图片描述

创建自动发现规则

  • Name: Port Discovery
  • Type: Zabbix agent
  • Key: custom.port.discovery
  • Update interval: 1h (或根据需要调整)
    在这里插入图片描述

创建监控项原型

  • Name: Port {#PORT} status
  • Type: Zabbix agent
  • Key: custom.port.check[{#PORT}]
  • Type of information: Numeric (unsigned)
  • Update interval: 1m (或根据需要调整)
    在这里插入图片描述

创建触发器类型

  • Name: Port {#PORT} is down on {HOST.NAME}
  • Expression: last(/web-server/custom.port.check[{#PORT}])=0
  • Severity: High (或根据需要调整)

在这里插入图片描述

查看最新数据
在这里插入图片描述

创建告警动作
在这里插入图片描述
查看告警信息
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/40110.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI赋能视创云展元宇宙展厅,打造沉浸式智能观展体验!

在AI人工智能迅猛发展的背景下&#xff0c;视创云展将元宇宙展厅与“AI智能助手”深度融合&#xff0c;这无疑是一次前瞻性的创新尝试&#xff0c;极大地丰富了展览展示的形式与内容&#xff0c;为参观者打造了一个既沉浸又智能的观展新纪元。 一、沉浸式体验 元宇宙展厅利用虚…

OpenAI 向少部分用户推出 GPT-4o(S2S)模型;Meta 发布 3D Gen AI 模型丨 RTE 开发者日报

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09; 领域内「有话题的新闻」、「有态度的观点」、「有意思的数据」、「有思考的文章」、「…

【Python】基于动态规划和K聚类的彩色图片压缩算法

引言 当想要压缩一张彩色图像时&#xff0c;彩色图像通常由数百万个颜色值组成&#xff0c;每个颜色值都由红、绿、蓝三个分量组成。因此&#xff0c;如果我们直接对图像的每个像素进行编码&#xff0c;会导致非常大的数据量。为了减少数据量&#xff0c;我们可以尝试减少颜色…

Redis理解【精细】【快速上手】

目录 1. 了解3V和3高 2.什么是redis 3. redis可以做什么 4. Windows安装 5. 使用redis客户端操作redis 5.1 redis基本命令 5.1.1 切换数据库 5.1.2 查看当前数据库的大小 5.1.3 查看当前数据库所有的key ​​​​​​​ 5.1.4 清空当前数据库所有key 5.1.5 清空所…

Element 的 el-table 表格实现单元格合并

html 部分 <template><div class"index-wapper"><el-table :data"tableData" :span-method"objectSpanMethod" border><el-table-column v-for"(item, index) in tableHeader" :key"index" :prop&quo…

Android Studio上传新项目到Gitee

一、在Gitee上创建仓库 首先需要再Gitee上创建仓库 1、在Gitee中新建仓库 2、输入仓库信息 3、生成仓库地址 创建成功会生成一个仓库地址&#xff0c;格式如下&#xff1a; https://gitee.com/test/compose_mvi_demo.git二、Android Studio 上传项目到Gitee 1、在Android …

微信小程序转发朋友圈详细教程

微信小程序转发朋友圈功能&#xff0c;官方说的很官方&#xff0c;容易踩坑 官方链接戳这里 想分享朋友圈必须要分享好友 onShareTimeline() { } 想要生效必须先定义 onShareAppMessage() { } /*** 用户点击右上角分享*/onShareAppMessage() { },onShareTimeline() { } 简单…

一维信号全变分(TV)降噪方法(MATLAB)

信号降噪一直是领域研究的热点&#xff0c;这是一项十分有意义并且极具挑战性的工作&#xff0c;经过几十年来相关科研人员的共同努力&#xff0c;降噪技术得到了极大的发展&#xff0c;并在现实生活中也得到了广泛的应用。其中&#xff0c;许多常用的方法有&#xff1a;小波变…

免费最好用的证件照制作软件,一键换底+老照片修复+图片动漫化,吊打付费!

这款软件真的是阿星用过的&#xff0c;最好用的证件照制作软件&#xff0c;没有之一&#xff01; 我是阿星&#xff0c;今天要给大家安利一款超实用的证件照工具&#xff0c;一键换底&#xff0c;自动排版&#xff0c;免费无广告&#xff0c;让你在家就能轻松搞定证件照&#…

搭建知识付费系统的技术框架与实现路径

知识付费系统已经成为内容创作者和企业变现的重要工具。要成功搭建一个高效、稳定、用户体验良好的知识付费系统&#xff0c;明确技术框架和实现路径至关重要。本文将详细解析搭建知识付费系统的技术框架&#xff0c;并提供具体的实现路径和相关技术代码示例。 一、知识付费系…

测试图片上传功能,使用postman提供的url

是不是有时候想要测试图片上传功能&#xff0c;但是没有后台url进行测试&#xff0c;这时候就可以使用postman提供的url&#xff1a; https://postman-echo.com/post接下来&#xff0c;我将教你在postman中&#xff0c;用该url测试图片上传功能。 1.发送图片上传请求 第一步…

Character.ai因内容审查流失大量用户、马斯克:Grok-3用了10万块英伟达H100芯片

ChatGPT狂飙160天&#xff0c;世界已经不是之前的样子。 更多资源欢迎关注 1、爆火AI惨遭阉割&#xff0c;1600万美国年轻人失恋&#xff1f;Character.ai被爆资金断裂 美国流行的社交软件Character.ai近期对模型进行大幅度内容审查&#xff0c;导致用户感到失望并开始流失。…

12. Revit API: Document、Element

12. Revit API: Document、Element 前言 还是先讲一下Document吧&#xff0c;不然Selection不好讲&#xff0c;那涉及到了挺多东西的&#xff0c;比元素&#xff08;Element&#xff09;和各类Filter&#xff0c;这些都与Document有关&#xff0c;所以先简单讲一下这个。 一、…

Chart.js四个示例

示例代码在图片后面&#xff0c;点赞加关注&#xff0c;谢谢 条形图 雷达图 折线图 圆环图 完整例子代码 具体代码在干什么看粗体加重的注释 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <me…

C++精解【10】

文章目录 读写文件概述example csv读文件读取每个字段读取机器学习数据库iris constexpr函数GMP大整数codeblock环境配置数据类型函数类 EigenminCoeff 和maxCoeffArray类 读写文件 概述 fstream typedef basic_fstream<char, char_traits<char>> fstream;此类型…

【大数据】什么是数据融合(Data Fusion)?

目录 一、数据融合的定义 二、数据融合的类型 三、数据融合的挑战 四、数据融合的方法 五、数据融合的关键环节 1.数据质量监控指标的制定和跟踪 2.异常检测和处理机制 3.实时数据监测与反馈机制 4.协同合作与知识共享 一、数据融合的定义 数据融合&#xff08;Data Fusion&…

STM32基本定时器、通用定时器、高级定时器区别

一.STM32基本定时器、通用定时器、高级定时器区别 STM32系列微控制器中的定时器资源分为基本定时器&#xff08;Basic Timer&#xff09;、通用定时器&#xff08;General Purpose Timer&#xff09;和高级定时器&#xff08;Advanced Timer&#xff09;三类&#xff0c;它们在…

PyCharm远程开发配置(2024以下版本)

目录 PyCharm远程开发配置 1、清理远程环境 1.1 点击Setting 1.2 进入Interpreter 1.3 删除远程环境 1.4 删除SSH 2、连接远程环境 2.1 点击Close Project 2.2 点击New Project 2.3 项目路径设置 2.4 SSH配置 2.5 选择python3解释器在远程环境的位置 2.6 配置远程…

C++ 现代教程二

线程支持库 - C中文 - API参考文档 GitHub - microsoft/GSL: Guidelines Support Library Fluent C&#xff1a;奇异递归模板模式&#xff08;CRTP&#xff09; - 简书 #include <thread> #include <iostream> #include <unordered_map> #include <futu…

区块链加载解析方法

一.区块链加载解析 对于数据的下载主要包括三种方式&#xff1a; 1.实现比特币网络协议&#xff0c;通过该协议和其他比特币全节点建立联系&#xff0c;然后同步区块数据。 2.通过比特币节点提供的API服务下载区块链数据。 3.通过blickchain.com提供的rest服务下载区块数据…