2 简单检查

概述

简单检查通常用于远程无agent的服务监控。

注意:简单检查不需要Zabbix agent。Zabbix server/proxy负责处理简单检查(建立外部连接等操作)。

简单检查的使用示例:

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

在简单检查监控项配置中,用户名密码字段(限制255个字符)用于VMware监控监控项;其他情况下会被忽略。

支持的检查类型

监控项键值监控项列示时未包含可选参数及附加信息。点击该监控项键值监控项以查看完整详情。

另请参阅 VMware monitoring item keys

监控项 键值 描述
icmpping 通过 ICMP ping 检测 主机 的可访问性。
icmppingloss 丢包率。
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,则将重定向响应视为目标主机可用。

另请参见 默认值 表。

注释:

  • 如果由 packets 参数定义的至少一个数据包返回,则监控项返回 1。 如果所有数据包都未返回,则监控项返回 0

示例:

icmpping[,4] #如果四个数据包中至少有一个返回,则监控项返回 1。
icmppingloss[<target>,<packets>,<interval>,<size>,<timeout>,<options>]


丢失数据包的百分比。
返回值: float.

参数:

  • target - 目标主机 IP 或 DNS 名称;
  • packets - 数据包数量;
  • interval - 数据包之间间隔时间(毫秒);
  • size - 数据包大小(字节);
  • timeout - 超时时间(毫秒);
  • options - 用于允许重定向:如果为空(默认值),重定向响应将被视为target 主机 失败;如果设置为 allow_redirect,重定向响应将被视为target 主机 成功。

另请参阅 默认值 表格。

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


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

参数:

  • target - 主机 的 IP 或 DNS 名称;
  • packets - 数据包数量;
  • interval - 数据包之间间隔的毫秒数;
  • size - 数据包大小(以字节为单位);
  • timeout - 超时时间(以毫秒为单位);
  • mode - 可选值:minmaxavg(默认);
  • options - 用于允许重定向:如果为空(默认值),重定向的响应将被视为 target 主机 处于宕机状态;如果设置为 allow_redirect,重定向的响应将被视为 target 主机 处于运行状态。

备注:

  • 丢失或超时的数据包不会参与计算;
  • 如果 主机 不可用(达到超时时间),监控项 将返回 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(参见 details);
  • 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以强制模式运行,自定义TCP/UDP简单检查可能会被策略阻止。要验证并允许新的出站连接,请查看审计拒绝:使用 grep denied /var/log/audit/audit.log

net.tcp.service.perf[service,<ip>,<port>]


检查TCP服务的性能。
返回值:float: 0.000000 - 表示服务不可用;seconds - 连接到服务所花费的秒数。

参数:

  • service - 可能的值:ssh, ldap, smtp, ftp, http, pop, nntp, imap, tcp, https, telnet(参见 details);
  • 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服务的性能。
返回值:float: 0.000000 - 表示服务已停止;seconds - 等待服务响应所花费的秒数。

参数:

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

示例:

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

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

超时处理

Zabbix 不会处理超过 监控项配置 表单中定义的 Timeout 秒数的简单检查。 对于 VMware 监控项 监控项,Zabbix 不会处理超过 Zabbix 服务器proxy 配置文件中定义的 Timeout 秒数的简单检查。对于 icmpping* 监控项,超时和重试值直接在监控项键中指定,不受全局 Timeout 参数影响。请确保这些值在监控项键中配置正确。请注意,icmpping* 监控项适用硬编码的最大可能超时时间 600 秒(自 Zabbix 7.0.22 起)。

ICMP ping

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

安装

Zabbix 未包含 fping,需要单独安装:

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

  • Zabbix 为 RHEL 提供了 fping packages。请注意,这些软件包不包含官方支持。

  • fping 也可以被编译:安装

配置

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

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

另请参见:已知问题,了解在 fping 版本低于 3.10 时处理简单检查的相关信息。

默认值

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

Parameter Unit Description Fping's flag Defaults set by Allowed limits
by Zabbix
fping Zabbix min max
packets number 发送到目标的请求包数量 -C 3 1 10000
interval milliseconds 发送到同一目标的连续数据包之间的等待时间 -p 1000 20 unlimited
size bytes 以字节为单位的数据包大小
x86 上为 56 字节,x86_64 上为 68 字节
-b 56 or 68 24 65507
timeout milliseconds fping v3.x - 发送最后一个数据包后等待超时的时间,受 -C 标志影响
fping v4.x - 每个数据包的单独超时时间
-t fping v3.x - 500
fping v4.x 及更新版本 - 继承自 -p 标志,但不超过 2000
50 unlimited

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

此外,Zabbix 还会使用 fping 选项 -i interval ms(不要与上表中的监控项参数 interval 混淆, 后者对应 fping 选项 -p)以及 -S source IP address(在较旧的 fping 版本中为 -I)。 这些选项会通过使用不同的选项组合执行检查来自动检测。 Zabbix 会尝试通过测试 3 个值来检测 fping 允许与 -i 一起使用的最小毫秒值:0、1 和 10。 第一个成功的值随后会用于后续的 ICMP 检查。 此过程由每个 ICMP pinger 进程分别执行。

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

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