在zabbix web端,键值配置net.tcp.port ip+端口获取值始终是0,然后采取了进入server端使用zabbix_get 测试发现
zabbix server端使用zabbix_get -s A服务器ip -k net.tcp.port[B服务器ip,端口号]的方式获取值也始终是0,但是进入服务器A使用 telnet B服务器ip 端口号 的方式可以正确提示 Connected to B服务器ip
有没有人可以告知一下是什么原因如何处理呢?
或者有没有什么其他可以监控到某一服务器的某端口连通性的方法也行,可以被zabbix正确监控到的方法。
Zabbix 中的键值 net.tcp.port 用于检测指定 TCP 端口是否可连接。如果 Zabbix web 端显示的值始终是 0,可能是因为检测的服务器没有开启该端口,或者 Zabbix Agent 连接不到服务器。
你可以尝试以下步骤来解决这个问题:
(1)确保目标服务器上的该端口已经开启。你可以使用命令 telnet 来检测端口是否可连接。
(2)确保 Zabbix Agent 已经正确安装并启动。你可以使用命令 systemctl status zabbix-agent 查看 Zabbix Agent 的状态。
(3)确保 Zabbix Server 与 Zabbix Agent 之间的连接是可以正常通信的。你可以使用命令 zabbix_get -s A服务器ip -p 10050 -k agent.version 来测试。
(4)确保 Zabbix Server 的配置文件中包含了正确的服务器地址和端口信息。
如果以上步骤仍然无法解决问题,你可以尝试使用其他方法来监控服务器端口连通性,例如使用 Zabbix 内置的 icmpping 和 icmppingsec 键值来检测服务器是否可以 Ping 通,或者使用 Zabbix 的自动发现功能来监控服务器上的端口。
另外,你也可以使用其他监控工具,例如 Nagios 或 Prometheus,来监控服务器端口连通性。
检测端口连通性的方法很多,zabbix 中的 net.tcp.port 也是一种。但是如果你在 zabbix web 端获取的值始终是 0,说明可能存在以下几种可能:
你在 zabbix web 端使用的 key 配置不正确,请检查你在配置时是否正确指定了 ip 和端口号。正确的 key 应该是这样的:net.tcp.port[B服务器ip,端口号]。
你在 zabbix server 端使用的 key 也不正确。你使用的命令应该是这样的:zabbix_get -s B服务器ip -k net.tcp.port[端口号]。
B 服务器的端口可能被防火墙阻止了连接。请检查 B 服务器的防火墙设置,确保端口号没有被阻止。
B 服务器的端口可能没有启动相应的服务。请检查 B 服务器上相应的服务是否正在运行,确保端口号正常工作。
如果你想要使用 zabbix 监控端口连通性,你可以使用 net.tcp.port 和 net.tcp.service 两个 key。net.tcp.port 可以检测端口是否开放,net.tcp.service 可以检测端口上是否有服务正在运行。你可以在 zabbix web 端创建一个新的监控项,并使用这两个 key 进行监控。
如果你想使用其他方法监控端口连通性,
你是用的自带模板还是?
想要出图,一定要zabbix_get 能获取数据,否则不能的。
因此,你 zabbix_get上配的模板获取数据形式是否有问题?
当年我们编写自定义脚本去监控,也需要定义对应的K-V,然后zabbix_get 可以获取到,在自定义模板来出图。
首先可以检查一下服务器 B 是否开启了 Zabbix 的 Agent 服务,并且 Zabbix Server 是否能够正常连接到服务器 B 的 Agent。
如果 Zabbix Server 无法连接到服务器 B 的 Agent,那么使用 zabbix_get 命令获取值也会失败。这时需要检查服务器 B 的网络连通性,确保 Zabbix Server 可以访问服务器 B 的 Agent。
如果 Zabbix Server 可以连接到服务器 B 的 Agent,但是使用 zabbix_get 命令获取的值仍然是 0,那么可能是服务器 B 上的 Agent 没有正确配置监控项。可以通过检查 Agent 的配置文件(一般位于 /etc/zabbix/zabbix_agentd.conf)来确定配置的监控项是否正确。
如果服务器 B 上的 Agent 配置正确,但是使用 zabbix_get 命令仍然获取不到值,那么可能是 Zabbix 的配置问题。可以在 Zabbix Server 端检查一下对应的监控项是否已经正确配置,并确保对应的触发器、告警等设置也是正确的。
另外也可以使用 Zabbix 的其他监控方法来监控服务器 B 的端口连通性,例如使用 Zabbix 的 ICMP 监控方法,或者使用 Zabbix 的 net.tcp.service 监控项来监控服务器 B 上的指定端口的服务状态。
使用 net.tcp.service 监控项时,可以在 Zabbix 的配置界面中创建一个新的监控项,并使用以下配置:
Key:net.tcp.service[{$IP},{$PORT}]
Type of information:数值型 (Numeric float)
Data type:浮点型 (Decimal)
其中 {$IP} 和 {$PORT} 是 Zabbix 中的动态参数,表示要监控的 IP 地址和端口号。可以在创建监控项时手动输入,也可以使用 Zabbix 的预定义变量,例如 {HOST.IP} 和 {ITEM.KEY1}。
使用 net.tcp.service 监控项时,Zabbix 会尝试连接服务器 B 的指定端口,并返回连接状态。如果连接成功,则返回 1,否则返回 0。可以通过设置监控项的触发器来检测服务器 B 的端口连通性。
这个问题可能是由于服务器A上的Zabbix Agent没有正确配置或者没有启动造成的。
你需要检查服务器A上的Zabbix Agent配置文件,确保它正确地配置了Server和ServerActive选项。这些选项指定了Zabbix Server的IP地址和端口号,Zabbix Agent会向它发送监控数据。如果这些选项没有正确配置,Zabbix Agent就不会向Zabbix Server发送数据,导致你在Zabbix web界面中看到的数据都是0。
另外,你还需要检查服务器A上的Zabbix Agent是否已经启动。如果没有启动,请运行以下命令启动它:
systemctl start zabbix-agent
如果你想要监控某个服务器的某个端口的连通性,你可以使用Zabbix的“tcp_connect”功能。首先,在Zabbix web界面的“Hosts”页面中选择你要监控的主机,然后点击“Items”标签。在“Create item”页面中,选择“Type”为“Zabbix agent”,“Key”为“tcp_connect”,并在“Parameters”中输入要监控的端口号。然后保存这个Item,就可以在Zabbix web界面的图形中看到端口的连通性了。
无法监控端口_zabbix 监控远程主机端口
https://blog.csdn.net/weixin_32529407/article/details/112609031