本文基于Zabbix5.0监控远程主机端口存活(“理论”适用于其他Zabbix版本),无需在远程主机部署agent端,也就是说可以监控任意远程主机的端口是否正常。
本文端口监控使用的键值net.tcp.service[service,<ip>,<port>],如果要监控udp的话,就将键值中的tcp改成udp即可。
格式说明:
service参数:ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet
ip:监控主机的ip地址
port:要监控的端口号
对service参数的内容补充(可忽略):
ftp:创建一个TCP连接,并期望响应的前4个字符是“220”,然后发送“QUIT\r\n”。 默认使用端口21。
http:创建一个TCP连接,而不需要等待和发送任何东西。如果未指定,默认使用端口80。
https:使用(并且只使用)libcurl,不验证证书的真实性,不验证SSL证书中的主机名,只获取响应头(HEAD请求)。 默认使用端口443。
imap:创建一个TCP连接,并期望响应的前4个字符是“* OK”,然后发送“a1 LOGOUT\r\n”。默认使用端口143。
ldap:打开到LDAP服务器的连接,并使用过滤器集执行LDAP搜索操作(objectClass=*)。期望成功地检索第一个条目的第一个属性。如果未指定,默认使用端口389。
nntp:创建一个TCP连接,并期望响应的前3个字符是“200”或“201”,然后发送“QUIT\r\n”。默认使用端口119。
pop:创建一个TCP连接,并期望响应的前3个字符是“+OK”,然后发送“QUIT\r\n”。默认使用端口110。
smtp:创建一个TCP连接,并期望响应的前3个字符是“220”,然后是空格、行的结束或虚线。包含一个虚线的行属于多行响应,响应将被重新读取,直到收到一条没有虚线的行。然后发送“QUIT\r\n”。默认使用端口25。
ssh:创建一个TCP连接, 如果建立了连接,双方交换一个标识字符串(SSH-major.minor-XXXX),其中major 和minor是协议版本,XXXX是一个字符串。 Zabbix检查是否找到了匹配该指定的字符串,不匹配则返回返回字符串“SSH-major.minor-zabbix_agent\r\n”或者“0\n”。 默认使用端口22。
tcp:创建一个TCP连接,而不需要等待和发送任何东西。与其他检查需要指定端口参数不同,可自行设置端口。
telnet:创建一个TCP连接,并期望一个登录提示(':'在最后)。默认使用端口23。
注:对远程主机端口监控,键值不是唯一的,有多种方式,本文只是以net.tcp.service[service,<ip>,<port>]为例,例如:net.tcp.port[192.168.1.100,80]等同于net.tcp.service[http,192.168.1.100]等同于net.tcp.service[tcp,192.168.1.100,80]
所以没有什么特殊要求的话,net.tcp.service[service,<ip>,<port>]键值中的service就使用tcp即可。
方法不是绝对的,请灵活变通!
1、在Zabbix-server服务端执行
如果192.168.1.100的8080端口正常可达,此时应该返回1,如果不通则返回0
1 |
zabbix_get -s 127.0.0.1 -k net.tcp.service[tcp,192.168.1.100,8080] |
2、在Zabbix监控平台上配置监控项
其中主要是键值写对,更新间隔根据个人情况进行设置,我这里设置30秒检测一次192.168.1.100的8080端口
3、在Zabbix监控平台上配置触发器
在触发器中配置报警
邮件报警可参考:
https://blog.whsir.com/post-4385.html
https://blog.whsir.com/post-4387.html
https://blog.whsir.com/post-4394.html
原文链接:Zabbix5.0监控远程主机端口,转载请注明来源!