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 name 和 Password 字段(限制为 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 - 可能的值:min、max 或 avg(默认);
- options - 用于允许重定向:如果为空(默认值),则重定向响应将被视为目标主机已关闭;如果设置为 allow_redirect,则重定向响应将被视为目标主机已启动。
注释:
- 丢失或超时的数据包不用于计算;
- 如果主机不可用(已达到超时),则该监控项将返回 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 地址或 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 服务的性能。
返回值:Float:0.000000 - 服务已关闭;seconds - 连接到服务所花费的秒数。
参数:
- service - 可能的值:ssh、ldap、smtp、ftp、http、pop、nntp、imap、tcp、https、telnet(参见详细信息);
- ip - IP 地址或 DNS 名称(默认情况下使用主机 IP/DNS);
- port - 端口号(默认情况下使用标准服务端口号)。
注释:
- 请注意,使用 tcp 服务时必须指定端口;
- 目前不支持检查加密协议(如端口 993 上的 IMAP 或端口 995 上的 POP)。作为解决方法,请使用
net.tcp.service[tcp,<ip>,port]进行此类检查。
- 目前不支持检查加密协议(如端口 993 上的 IMAP 或端口 995 上的 POP)。作为解决方法,请使用
示例:
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 - 等待服务响应所花费的秒数。
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(icmpping、icmppingloss、icmppingretry、icmppingsec)。
安装
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 地址数量无关。