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 - 可选值:min、max 或 avg(默认);
- 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(icmpping、icmppingloss、icmppingsec)。
安装
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 地址,都会花费固定的时间。