5 简单检查

概述

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

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

简单检查使用示例:

  1. net.tcp.service[ftp,,155]
  2. net.tcp.service[http]
  3. net.tcp.service.perf[http,,8080]
  4. 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[] 监控项来监控。

Note that for SourceIP support in LDAP simple checks, OpenLDAP version 2.6.1 or above is required.

超时处理

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

ICMP pings

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

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

另请参考: 已知问题

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

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

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

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

  1. shell> groups zabbix

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

  1. shell> usermod -a -G zabbix zabbix

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

参数单位描述Fping 的参数Fping 默认设置Zabbix
允许的限制
fpingZabbixminmax
packets计数发送到目标的请求报文数-C3110000
interval毫秒连续数据包之间的间隔时间-p100020不限制
sizebyte用字节描述的包大小
x86 架构是 56 byte, x86_64架构是68 byte
-b56 or 682465507
timeout毫秒fping v3.x - 上次发送数据包后等待超时时间,影响 -C 参数
fping v4.x - 每个包的单独超时时间
-tfping 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地址数量。