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]

简单检查项配置中的用户名密码字段(不超过255个字符)用于VMware监控项;否则忽略。

支持的检查

列出的监控项键没有可选参数和附加信息。单击监控项键查看完整的详细信息。

参见VMware监控项键.

监控项键说明
icmpping通过ICMP ping 检测主机的可访问性。
icmppingloss丢包的百分比。
icmppingsecICMP ping 响应时间。
net.tcp.service检查服务是否在运行并且接受 TCP 连接。
net.tcp.service.perf检测 TCP 服务性能。
net.udp.service检测服务是否正在运行并响应UDP请求。
net.udp.service.perf检测 UDP 服务的性能。

监控键详细信息

没有尖括号的参数是必需的。标有尖括号< >的参数是可选的。

icmpping[<target>,<packets>,<interval>,<size>,<timeout>,<options>]

ICMP ping 的主机可访问性。
返回值:0 - ICMP ping 失败;1 - ICMP ping 成功。

参数:

  • target - 主机 IP 或 DNS 名称;
  • packets - 数据包数量;
  • interval - 连续数据包之间的时间(以毫秒为单位);
  • size - 数据包大小(以字节为单位);
  • timeout - 超时(以毫秒为单位);
  • options - 用于允许重定向:如果为空(默认值),则重定向响应被视为目标主机关闭;如果设置为 allow_redirect,则重定向响应被视为目标主机启动。

另请参阅 默认值 表。

示例:

  1. icmpping[,4] #If at least one packet of the four is returned, the item will return 1.
icmppingloss[<target>,<packets>,<interval>,<size>,<timeout>,<options>]

丢失数据包的百分比。
返回值:浮点数

参数:

  • target - 主机 IP 或 DNS 名称;
  • packets - 数据包数量;
  • interval - 连续数据包之间的时间(以毫秒为单位);
  • size - 数据包大小(以字节为单位);
  • timeout - 超时(以毫秒为单位);
  • options - 用于允许重定向:如果为空(默认值),则重定向响应被视为目标主机关闭;如果设置为 allow_redirect,则重定向响应被视为目标主机启动。

另请参阅 默认值 表。

icmppingsec[<target>,<packets>,<interval>,<size>,<timeout>,<mode>,<options>]

ICMP ping 响应时间(以秒为单位)。
返回值:Float

参数:

  • target - 主机 IP 或 DNS 名称;
  • packets - 数据包数量;
  • interval - 连续数据包之间的时间(以毫秒为单位);
  • size - 数据包大小(以字节为单位);
  • timeout - 超时(以毫秒为单位);
  • mode - 可能的值:minmaxavg(默认);
  • options - 用于允许重定向:如果为空(默认值),则重定向响应将被视为目标主机已关闭;如果设置为 allow_redirect,则重定向响应将被视为目标主机已启动。

注释:

  • 丢失或超时的数据包不用于计算;
  • 如果主机不可用(已达到超时),则该监控项将返回 0;
  • 如果返回值小于 0.0001 秒,则该值将设置为 0.0001 秒;
  • 另请参阅 默认值 表。
net.tcp.service[service,<ip>,<port>]

检查服务是否正在运行并接受 TCP 连接。
返回值:0 - 服务已关闭;1 - 服务正在运行。

参数:

  • service - 可能的值:sshldapsmtpftphttppopnntpimaptcphttpstelnet(参见详细信息);
  • ip - IP 地址或 DNS 名称(默认情况下使用主机 IP/DNS);
  • port - 端口号(默认情况下使用标准服务端口号)。

注释:

  • 请注意,对于 tcp 服务,指示端口是强制性的;
  • 这些检查可能会导致系统守护进程日志文件中出现其他消息(通常会记录 SMTP 和 SSH 会话);
  • 目前不支持检查加密协议(如端口 993 上的 IMAP 或端口 995 上的 POP)。作为解决方法,请使用 net.tcp.service[tcp,<ip>,port] 进行此类检查。

示例:

  1. net.tcp.service[ftp,,45] #此监控项可用于测试 TCP 端口 45 上 FTP 服务器的可用性。
net.tcp.service.perf[service,<ip>,<port>]

检查 TCP 服务的性能。
返回值:Float0.000000 - 服务已关闭;seconds - 连接到服务所花费的秒数。

参数:

  • service - 可能的值:sshldapsmtpftphttppopnntpimaptcphttpstelnet(参见详细信息);
  • ip - IP 地址或 DNS 名称(默认情况下使用主机 IP/DNS);
  • port - 端口号(默认情况下使用标准服务端口号)。

注释:

  • 请注意,使用 tcp 服务时必须指定端口;
  • 目前不支持检查加密协议(如端口 993 上的 IMAP 或端口 995 上的 POP)。作为解决方法,请使用 net.tcp.service[tcp,<ip>,port] 进行此类检查。

示例:

  1. net.tcp.service.perf[ssh] #此监控项可用于测试 SSH 服务器的初始响应速度。
net.udp.service[service,<ip>,<port>]

检查服务是否正在运行并响应 UDP 请求。
返回值:0 - 服务已关闭;1 - 服务正在运行。

参数: - service - 可能的值:ntp(参见 details); - ip - IP 地址或 DNS 名称(默认情况下使用主机 IP/DNS); - port - 端口号(默认情况下使用标准服务端口号)。

示例:

  1. net.udp.service[ntp,,45] #此监控项可用于测试 UDP 端口 45 上的 NTP 服务的可用性。
net.udp.service.perf[service,<ip>,<port>]

检查 UDP 服务的性能。
返回值:Float0.000000 - 服务已关闭;seconds - 等待服务响应所花费的秒数。

Parameters:

  • service - 可能的值:ntp(参见 details);
  • ip - IP 地址或 DNS 名称(默认情况下使用主机 IP/DNS);
  • port - 端口号(默认情况下使用标准服务端口号)。

示例:

  1. net.udp.service.perf[ntp] #此监控项可用于测试 NTP 服务的响应时间。

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

超时处理

Zabbix 不会处理时间超过 item configuration 表单中定义的 Timeout 秒的简单检查。 对于 VMware itemsicmpping* 监控项, Zabbix 不会处理时间超过 Zabbix serverproxy 配置文件中定义的 Timeout 秒的简单检查。

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地址数量。

安装

fping 不包含在 Zabbix 中,需要单独安装:

配置

在 Zabbix 服务器/代理配置文件的 FpingLocation 参数中指定 fping 位置 (或使用 IPv6 地址的 Fping6Location 参数)。

fping 应由运行 Zabbix 服务器/代理的用户执行,并且该用户应具有足够的权限。

另请参阅:已知问题,以使用低于 3.10 的 fping 版本处理简单检查。

默认值

ICMP 检查参数的默认值、限制和值说明:

参数单位说明Fping 的标志默认值由Zabbix 允许的限制
设置
fpingZabbixminmax
packetsnumber发送到目标的请求数据包数量-C3110000
intervalmilliseconds等待发送到单个目标的连续数据包之间的时间-p100020unlimited
sizebytes数据包大小(以字节为单位)
x86 上为 56 字节,x86_64 上为 68 字节
-b56 或 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(或旧版 fping 中的 -I)。 这些选项可通过使用不同的选项组合运行检查来自动检测。 Zabbix 尝试通过尝试 3 个值(0、1 和 10)来检测 fping 允许使用 -i 的最小毫秒值。 第一个成功的值将用于后续的 ICMP 检查。 此过程由每个 ICMP pinger 进程单独完成。

自动检测到的 fping 选项每小时失效一次,并在下次尝试执行 ICMP 检查时再次检测。 设置 DebugLevel>=4 以便在服务器或代理日志文件中查看此过程的详细信息。

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