5 简单检查

概述

简单检查通常用于对服务进行远程的无 agent 检查。

请注意,简单检查不需要 Zabbix agent。Zabbix 服务器/proxy 负责处理简单检查(建立外部连接等)。

使用简单检查的示例:

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

简单检查监控项配置中的 User namePassword 字段(限制为 255 个字符)用于 VMware 监控项;在其他情况下将被忽略。

支持的检查

以下列出了不含可选参数和附加信息的监控项键。点击监控项键可查看完整详情。

另请参见 VMware 监控项键

监控项键 描述
icmpping 通过 ICMP ping 检查主机可达性。
icmppingloss 丢包百分比。
icmppingretry 通过带重试的 ICMP ping 检查主机可达性。
icmppingsec ICMP 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,则重定向响应被视为目标主机启动。

另请参阅 默认值 表。

示例:

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,则重定向响应被视为目标主机启动。

另请参阅 默认值 表。

icmppingretry[<target>,<retries>,<backoff>,<size>,<timeout>,<options>]


通过带重试的 ICMP ping 检查主机可达性。如果第一个数据包成功,则停止;如果数据包失败,则重试,直到达到 retries 参数定义的最大尝试次数。此监控项有助于减少通过网络发送的数据包数量。
返回值:0 - ICMP ping 失败;1 - ICMP ping 成功。

参数:

  • target - 主机 IP 或 DNS 名称;
  • retries - 对目标执行 ping 尝试的次数,不包括第一次尝试(0 或更大;默认值为 1);
  • backoff - 每次后续请求中等待时间的乘数(范围为 1.0-5.0;默认值为 1.0);
  • 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]

示例:

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

如果 SELinux 以 enforced 模式运行,自定义 TCP/UDP 简单检查可能会被策略阻止。要验证并允许新的出站连接,请查看审计拒绝记录:使用 grep denied /var/log/audit/audit.log

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] 进行此类检查。

示例:

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


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

参数:

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

示例:

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 - 端口号(默认情况下使用标准服务端口号)。

示例:

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

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

超时处理

灵活的监控项超时虽然支持简单检查,但不适用于 icmpping* 和 VMware 监控项。请参见 灵活超时支持

ICMP ping

Zabbix 使用外部工具 fping 来处理 ICMP ping(icmppingicmppinglossicmppingretryicmppingsec)。

安装

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

  • 各种基于 Unix 的平台在其默认仓库中提供 fping 软件包,但默认未预装。在这种情况下,您可以使用包管理器安装 fping。

  • Zabbix 为 RHEL 及其衍生版提供了 fping 软件包。请注意,这些软件包不提供官方支持。

  • fping 也可以从源码编译安装。

配置

在 Zabbix 服务器/proxy 配置文件的 FpingLocation 参数中指定 fping 的位置
(如果使用 IPv6 地址,则使用 Fping6Location 参数)。

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

另请参见:已知问题,了解如何使用低于 3.10 的 fping 版本处理简单检查。

默认值

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

参数 单位 说明 Fping 标志 默认值由以下设置 Zabbix 允许的限制
范围
fping Zabbix 最小 最大
packets 数量 发送到目标的请求数据包数量 -C 3 1 10000
interval 毫秒 向单个目标连续发送数据包之间的等待时间 -p 1000 20 无限制
size 字节 数据包大小(字节)
x86 上为 56 字节,x86_64 上为 68 字节
-b 56 或 68 24 65507
timeout 毫秒 fping v3.x - 发送最后一个数据包后等待的超时时间,受 -C 标志影响
fping v4.x - 每个数据包各自的超时时间
-t fping v3.x - 500
fping v4.x 及更新版本 - 继承自 -p 标志,但不超过 2000
50 无限制
retries 数量 对目标执行 ping 尝试的次数,不包括第一次尝试 -r 3 1 0 无限制
backoff factor 数量 每次连续请求时等待时间的乘数 -B 1.5 1.0 1.0 5.0

默认值可能会因平台和版本不同而略有差异。

此外,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,以便在服务器或 proxy 日志文件中查看此过程的详细信息。

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