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]

在简单检查项的配置中,用户名密码 字段用于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以后开始支持https and telnet 服务。
在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[]监控项。
超时处理

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

ICMP pings

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

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

另请参考: 已知问题

fping 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无限制
size字节数据包大小(以字节为单位)
x86上使用56字节,x86_64上使用68字节
-b56 or 682465507
timeout毫秒fping v3.x - 最后一个包发送后等待的超时时间 (受 “-C” 标志的影响)

fping v4.x - 每个包的单独超时时间
-tfping v3.x - 500

fping v4.x - 继承自 -p 标志, 但不超过 2000
50无限制

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

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