返回列表 发帖

Zabbix使用Agent监控Linux的TCP+UDP端口

笺注:被监控主机的Agent的安装可以参考 Zabbix使用Agent监控CentOS6/Redhat6


备注:这相当于在被监控主机上进行本地监控,所以被监控主机的防火墙可以不打开对应的TCP、UDP端口,只要启动对应的服务就可以了:
[root@zabbix_client ~]# cat /etc/sysconfig/iptables
# Generated by iptables-save v1.4.7 on Sat Feb  8 10:55:09 2020
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [3:324]
-A INPUT -p tcp -m tcp --dport 10050 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3306 -j DROP
-A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
# Completed on Sat Feb  8 10:55:09 2020
[root@zabbix_client ~]#



######

监控TCP端口:

在Zabbix服务器上使用命令zabbix_get进行远程检测:(端口对应的服务运行时的效果)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k net.tcp.listen[80]
1
[root@centos8 ~]#

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k net.tcp.listen[3306]
1
[root@centos8 ~]#


在Zabbix服务器上使用命令zabbix_get进行远程检测:(端口对应的服务没有运行时的效果)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k net.tcp.listen[80]
0
[root@centos8 ~]#

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k net.tcp.listen[3306]
0
[root@centos8 ~]#


键值模板:
net.tcp.listen[port]       
检测 TCP端口 是否处于侦听状态。返回 0 - 未侦听;1 - 正在侦听




################## Zabbix添加被监控主机:

配置》主机》创建主机  (主机名称无需与被监控主机的真实主机名一致;群组可以随便选;IP地址那里要输入被监控主机的IP地址;端口为10050)
图片1.png
2022-10-23 23:33

页面太长,紧接的是下半部分:
图片2.png
2022-10-23 23:33



主机Linux_server_01添加成功:
图片3.png
2022-10-23 23:33

注释:假如只是监控TCP、UDP端口是否处于侦听状态,主机可以使用模板,也可以不使用。



######

在主机Linux_server_01中创建监控项:( 监控被监控主机的TCP 3306端口的侦听状态 )
自定义名称: Check TCP Port 3306
键值: net.tcp.listen[3306]
信息类型: 数字(无正负)
图片4.png
2022-10-23 23:34

本页拖下去:
图片5.png
2022-10-23 23:34




给主机Linux_server_01的监控项“Check TCP Port 3306”创建触发器:(被监控主机的TCP 3306端口处于未侦听状态时就告警)
自定义名称: TCP Port 3306 is down.
严重性: 严重
图片6.png
2022-10-23 23:34


插入表达式:( 监控项 Linux_server_01: Check TCP Port 3306 )
图片7.png
2022-10-23 23:35


自动生成的表达式:(触发器的表达式要用到监控项中的键值)
{Linux_server_01:net.tcp.listen[3306].last()}=0
图片8.png
2022-10-23 23:35

本页拖下去:
图片9.png
2022-10-23 23:35




######

测试:

被监控主机停止自己的MySQL服务:
[root@zabbix_client ~]# service mysql stop
Shutting down MySQL. SUCCESS!
[root@zabbix_client ~]#

[root@zabbix_client ~]# netstat -anp |grep 3306
[root@zabbix_client ~]#
[root@zabbix_client ~]# echo $?
1
[root@zabbix_client ~]#


当主机Linux_server_01的TCP 3306端口处于未侦听状态时,在仪表板上看到的效果:(显示对应触发器的名称)
TCP Port 3306 is down.
图片10.png
2022-10-23 23:37


图片11.png
2022-10-23 23:37

笺注:当被监控主机的MySQL服务已停止时,对应的TCP 3306端口就处于未侦听状态。



被监控主机启动自己的MySQL服务:
[root@zabbix_client ~]# service mysql start
Starting MySQL.. SUCCESS!
[root@zabbix_client ~]#

[root@zabbix_client ~]# netstat -anp |grep 3306
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN      3734/mysqld
[root@zabbix_client ~]#
[root@zabbix_client ~]# echo $?
0
[root@zabbix_client ~]#


当主机Linux_server_01的TCP 3306端口处于侦听状态时,在仪表板上的告警会马上消失,如下图:
图片12.png
2022-10-23 23:38

笺注:当被监控主机的MySQL服务正在运行时,对应的TCP 3306端口就处于侦听状态。



还可以给主机Linux_server_01的监控项“Check TCP Port 3306”创建图形:
图片13.png
2022-10-23 23:39

监控项:( Linux_server_01: Check TCP Port 3306
图片14.png
2022-10-23 23:39

注释:可以自定义图形的绘图风格、颜色等等。



查看主机Linux_server_01的图形“Check TCP Port 3306 image”:

监测》图形:
图片15.png
2022-10-23 23:39


图片16.png
2022-10-23 23:40

注释:图形中的数据线是从右往左延伸的。

图片17.png
2022-10-23 23:40















######

监控UDP端口:

在Zabbix服务器上使用命令zabbix_get进行远程检测:(端口对应的服务运行时的效果)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k net.udp.listen[53]
1
[root@centos8 ~]#

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k net.udp.listen[123]
1
[root@centos8 ~]#


在Zabbix服务器上使用命令zabbix_get进行远程检测:(端口对应的服务没有运行时的效果)
[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k net.udp.listen[53]
0
[root@centos8 ~]#

[root@centos8 ~]# /usr/local/zabbix/bin/zabbix_get -s 192.168.168.130 -k net.udp.listen[123]
0
[root@centos8 ~]#


键值模板:
net.udp.listen[port]       
检测 UDP端口 是否处于侦听状态。返回 0 - 未侦听;1 - 正在侦听




在主机Linux_server_01中创建监控项:( 监控被监控主机的UDP 123端口的侦听状态 )
自定义名称: Check UDP Port 123
键值: net.udp.listen[123]       
信息类型: 数字(无正负)
图片18.png
2022-10-23 23:42

备注:
其他地方保持默认,点击页底“添加”按钮;



给主机Linux_server_01的监控项“Check UDP Port 123”创建触发器:(被监控主机的UDP 123端口处于侦听状态时就告警)
自定义名称: UDP Port 123 is up.
严重性: 一般严重
图片19.png
2022-10-23 23:42


插入表达式:( 监控项 Linux_server_01: Check UDP Port 123 )
图片20.png
2022-10-23 23:43


自动生成的表达式:(触发器的表达式要用到监控项中的键值)
{Linux_server_01:net.udp.listen[123].last()}=1
图片21.png
2022-10-23 23:43

本页拖下去:
图片22.png
2022-10-23 23:43




######

测试:

被监控主机启动自己的ntpd服务:
[root@zabbix_client ~]# service ntpd start
正在启动 ntpd:[确定]
[root@zabbix_client ~]#

netstat -anp |grep 123
图片23.png
2022-10-23 23:44



当主机Linux_server_01的UDP 123端口处于侦听状态时,在仪表板上看到的效果:(显示对应触发器的名称)
UDP Port 123 is up.
图片24.png
2022-10-23 23:45


图片25.png
2022-10-23 23:45

笺注:当被监控主机的ntpd服务正在运行时,对应的UDP 123端口就处于侦听状态。



被监控主机停止自己的ntpd服务:
[root@zabbix_client ~]# service ntpd stop
关闭 ntpd:[确定]
[root@zabbix_client ~]#
[root@zabbix_client ~]# netstat -anp |grep 123
[root@zabbix_client ~]#
[root@zabbix_client ~]# echo $?
1
[root@zabbix_client ~]#


当主机Linux_server_01的UDP 123端口处于未侦听状态时,在仪表板上的告警会马上消失,如下图:
图片26.png
2022-10-23 23:46

笺注:当被监控主机的ntpd服务已停止时,对应的UDP 123端口就处于未侦听状态。



还可以给主机Linux_server_01的监控项“Check UDP Port 123”创建图形:
图片27.png
2022-10-23 23:46

监控项:( Linux_server_01: Check UDP Port 123 )
图片28.png
2022-10-23 23:47

注释:可以自定义图形的绘图风格、颜色等等。


查看主机Linux_server_01的图形“Check UDP Port 123 image”:

监测》图形:
图片29.png
2022-10-23 23:48


图片30.png
2022-10-23 23:48

注释:图形中的数据线是从右往左延伸的。

图片31.png
2022-10-23 23:48






相关文章:
Zabbix使用Agent监控Windows的TCP端口和服务状态
Zabbix使用Agent监控CentOS7/Redhat7

DNS缓存域名服务器
NTP服务器

返回列表