这是原厂英文文档的翻译页面. 欢迎帮助我们 完善文档.
2022 Zabbix中国峰会
2022 Zabbix中国峰会

5 简单检查

概述

简单检查通常用于检查远程未安装Zabbix agent的服务。

请注意,简单检查不需要Zabbix agent,由Zabbix server和Zabbix proxy来负责处理(例如创建外部连接等)。

简单检查使用示例:

net.tcp.service[ftp,,155]
       net.tcp.service[http]
       net.tcp.service.perf[http,,8080]
       net.udp.service.perf[ntp]

在简单检查项的配置中,User namePassword字段用于Vmware的监控项;非VMware监控项则可忽略。

支持的简单检查

Zabbix支持的简单检查列表:

另请参考:

键值
描述 返回值 参数 注释
icmpping[<target>,<packets>,<interval>,<size>,<timeout>]
通过ICMP ping 检测主机的可访问性. 0 - ICMP ping 失败

1 - ICMP ping 成功
target - 主机 IP 或者域名
packets - 数据包数量
interval - 连续两个数据包之间的时间间隔,单位是毫秒
size - 数据包大小,单位是字节
timeout - 超时时间,单位是 毫秒
示例:
=> icmpping[,4] → 4 个数据包中只要一个有返回,那么该项返回值为 1.

另请参考: 默认值表格。
icmppingloss[<target>,<packets>,<interval>,<size>,<timeout>]
发出的数据包丢包的百分比. 浮点数 target - 主机 IP 或者域名
packets - 数据包数量
interval - 连续两个数据包之间的时间间隔,单位是毫秒
size - 数据包大小,单位是字节
timeout - 超时时间,单位是毫秒
另请参考: 默认值表格。
icmppingsec[<target>,<packets>,<interval>,<size>,<timeout>,<mode>]
ICMP ping 响应时间,单位是秒. 浮点数 target - 主机 IP 或者域名
packets - 数据包数量
interval - 连续两个数据包之间的时间间隔,单位是毫秒
size - 数据包大小,单位是字节
timeout - 超时时间,单位是毫秒
mode - 可能的值: min, max, avg (缺省值)
传输过程中丢失或者超时的数据包不会被计算在内.

如果主机不可用或者超时,这个监控项会返回 0.
如果返回值小于 0.0001 秒,那么这个值会被置为 0.0001 秒.

另请参考: 默认值表格。
net.tcp.service[service,<ip>,<port>]
检查服务是否在运行并且接受 TCP 连接。 0 - 服务停止

1 - 服务正在运行
service - 可能的值: ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet (另见 详情)
ip - 主机 IP 或者域名 (默认使用主机 IP/DNS
port - 端口号 (默认使用标准服务端口).
示例:
=> net.tcp.service[ftp,,45] → 通过检测 TCP 的 45 端口来检测 FTP 服务器的可用性.

请注意:使用 tcp 服务必须指定端口.
这些检测可能会在系统守护进程日志文件中产生额外的信息 (通常会记录 SMTP 和 SSH 会话).
目前不支持检测加密协议 (比如 993 端口的 IMAP 或者 995 端口的 POP) . 可以使用 net.tcp.service[tcp,<ip>,port] 作为一种检测方式进行检测 .
从 Zabbix 2.0 以后开始支持 httpstelnet 服务。
net.tcp.service.perf[service,<ip>,<port>]
检测 TCP 服务性能. 浮点数

0.000000 - 服务停止

seconds - 连接到服务花费的时间,单位是秒
service - 可能的值: ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet (另见 详情)
ip - IP 地址或者域名 (默认使用 IP/DNS )
port - 端口号 (默认使用标准服务端口).
示例:
=> net.tcp.service.perf[ssh] → 可以用来测试 SSH 服务器的初始响应速度.

使用 tcp 服务必须指定端口.
目前不支持检测加密协议 (比如 993 端口的 IMAP 或者 995 端口的 POP). 可以使用 net.tcp.service.perf[tcp,<ip>,port] 作为一种检测方式进行检测.
从 Zabbix 2.0 以后开始支持 httpstelnet 服务.
在 Zabbix 2.0 之前调用的是 tcp_perf 。
net.udp.service[service,<ip>,<port>]
检测服务是否正在运行并响应UDP请求. 0 - 服务停止

1 - 服务正在运行
service - 可能的值: ntp (另见 详情)
ip - IP 地址或者域名 (默认使用 IP/DNS)
port - 端口号 (默认使用标准服务端口).
示例:
=> net.udp.service[ntp,,45] → 可用于测试 UDP 45 端口上 NTP 服务的可用性.

从 Zabbix 3.0以后开始支持这个监控项, 但在之前的版本中 ntp 服务可用 net.tcp.service[] 监控项来监控。
net.udp.service.perf[service,<ip>,<port>]
检测 UDP 服务的性能. 浮点数

0.000000 - 服务停止

seconds - 等待服务响应的时间,单位是秒
service - 可能的值: ntp (另见 详情)
ip - IP 地址或者域名 (默认使用 IP/DNS)
port - 端口号 (默认使用标准服务端口).
示例:
=> net.udp.service.perf[ntp] → 可用于测试NTP服务的响应时间.

从 Zabbix 3.0以后开始支持这个监控项, 但在之前的版本中 ntp 服务可用 net.tcp.service[] 监控项来监控。

· ::: noteimportant 对于 LDAP 简单检查(例如 net.tcp.service[ldap])中的 SourceIP 支持,需要 OpenLDAP 2.6.1 或更高版本。 从 Zabbix 6.0.1 开始,LDAP 简单检查支持 SourceIP。 :::

超时处理

如果简单检查时间超过了 Zabbix server 或是 proxy 配置文件中设置的超时时间,Zabbix 将不会做处理。

ICMP pings

Zabbix 使用外部程序 fping 来处理 ICMP pings。

Fping不包含在Zabbix的发行版中,您需要另外安装。 如果程序未安装、程序权限错误或者程序路径与配置文件中('FpingLocation' 参数)定义的不匹配,则不会处理ICMP ping (icmpping, icmppingloss, icmppingsec)。

另请参考: 已知问题

fping 必须可以被 Zabbix 守护进程以 root 身份执行,需要设置 setuid 权限。为设置正确的权限,请以 root 身份来执行这些命令:

shell> chown root:zabbix /usr/sbin/fping
       shell> chmod 4710 /usr/sbin/fping

执行以上两句命令,然后检查fping的权限。在某些情况下,可以通过执行chmod命令来重置所有权。

还要检查一下,如果用户zabbix属于zabbix组,则运行:

shell> groups zabbix

如果没有添加成功,通过如下命令解决:

shell> usermod -a -G zabbix zabbix

ICMP检测参数的默认值、限制和以及数值的描述:

参数 单位 描述 Fping 的参数 Fping 默认设置 Zabbix
允许的限制
fping Zabbix min max
packets 计数 发送到目标的请求报文数 -C 3 1 10000
interval 毫秒 连续数据包之间的间隔时间 -p 1000 20 不限制
size byte 用字节描述的包大小
x86 架构是 56 byte, x86_64架构是68 byte
-b 56 or 68 24 65507
timeout 毫秒 fping v3.x - 上次发送数据包后等待超时时间,影响 -C 参数
fping v4.x - 每个包的单独超时时间
-t fping v3.x - 500
fping v4.x - 继承 -p 参数的值,但是不能超过 2000
50 不限制

此外,Zabbix 使用 fping 参数 -i interval ms (不要和上边表格中的监控项参数 interval 混淆,它对应 fping 的 -p 参数) 和 -S source IP address (或者旧版本的 -I i)。这些参数通过使用不同的参数组合运行自动检测。 Zabbix尝试检测fping允许对-i参数一起使用的最小值(以毫秒为单位),尝试 3个值: 0, 1 和 10。第一个成功的值将用于后续的ICMP检查. 这个过程是由每个 ICMP pinger 进程单独完成的。

从Zabbix 5.0.4版本开始,fping 自动检测的参数每小时都会失效,并且在下一次尝试执行ICMP检查时再次加载。设置 DebugLevel>=4 可以在服务器或代理日志文件中查看该进程的详细信息。

警告: 根据平台和版本的不同,fping的默认值也会有所不同 - 如有疑问, 请参考fping文档。

Zabbix将三个 icmpping* 键值中任何一个IP地址写入一个临时文件中,然后传递给 fping。如果监控项有不同的键值参数,则只有具有相同键值参数的监控项IP才会被写入相同的单个文件。
所有写入到单个文件的IP地址将被fping并行检查,因此Zabbix icmp pinger进程将花费固定的时间来处理监控项,而不管文件中的IP地址数量。