5 种简单检查

概述

简单检查通常用于远程无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 - 用于允许重定向:如果为空(默认值),重定向的响应将被视为 target 主机 处于宕机状态;如果设置为 allow_redirect,重定向的响应将被视为 target 主机 处于运行状态。

另请参阅 默认值 表格。

示例:

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 或更高版本。

超时处理

如果一个简单检测的执行时间超过了在配置表单中定义的 超时(Timeout) 秒数,Zabbix 将不会继续处理该检测。
对于 VMware items 监控项,Zabbix 将不会处理执行时间超过在 Zabbix 超时超时 配置文件中定义的 Timeout 秒的简单检测。对于 icmpping* 监控项,超时和重试次数的值是直接在 监控项 键中指定的,不受全局 Timeout 参数的影响。请确保在 监控项 键中正确配置这些值。

ICMP ping

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

安装

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

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

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

  • fping 也可以被编译:安装

配置

在 Zabbix server/proxy 配置 file 的 fping位置 参数中指定 fping 的位置
(或使用 fping6location 参数以支持 IPv6 地址)。

fping 必须可由用户 Zabbix server/proxy run 作为执行,并且该用户应具有足够的权限。

另请参阅:有关使用低于 3.10 版本的 fping 处理简单检查的信息,请参见 简单检查

默认值

ICMP 检查参数的默认值、限制和值描述:

参数 单位 描述 Fping 的 flag 默认设置方 Zabbix 允许的限制
fping Zabbix 最小值 最大值
packets 数字 发送到目标的请求包数量 -C 3 1 10000
interval 毫秒 向单个目标连续包之间等待的时间 -p 1000 20 无上限
size 字节 包大小(字节)
56 字节在 x86 上,68 字节在 x86_64 上
-b 56 或 68 24 65507
timeout 毫秒 fping v3.x - 最后一个包发送后的等待超时,受 -C flag 影响
fping v4.x - 每个包的单独超时
-t fping v3.x - 500
fping v4.x 及更新版本 - 继承自 -p flag,但不超过 2000
50 无上限

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

此外,Zabbix 使用 fping 选项 -i interval ms(不要与上表中提到的 监控项 参数 interval 混淆,该参数对应 fping 选项 -p)和 -S 源 IP 地址(或旧版本 fping 中的 -I)。 这些选项通过运行不同选项组合的检查自动检测。 Zabbix 会尝试检测 fping 允许使用的 -i 的最小毫秒值,尝试的 3 值为:0、1 和 10。 第一个成功值将用于后续的 ICMP 检查。 此过程由每个 服务器进程类型与线程 进程单独完成。

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

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