11 外部检查

概述

外部检查是由Zabbix server通过running a shell script或二进制文件执行的检查。然而,当 主机由Zabbix proxy监控时,外部检查则由 proxy执行。

外部检查不需要在被监控的一个主机上运行任何agent。

监控项键的语法为:

script[<parameter1>,<parameter2>,...]

其中:

参数 定义
script shell脚本或二进制文件的名称。
parameter(s) 可选的命令行参数。

如果不想向脚本传递任何参数,可以使用:

script[] or
       script

Zabbix server或proxy将在指定的外部脚本目录中搜索并execute命令(参见Zabbix server/proxy配置file中的ExternalScripts参数)。 命令将以与Zabbix server/proxy相同的用户身份执行,因此如有必要,应在包装脚本中处理任何访问权限或环境变量。 命令的权限也应允许该用户execute它。 只有指定目录中的命令可供执行。

不要过度使用外部检查,因为每个脚本都需要Zabbix server/proxy启动一个fork进程,运行大量脚本会显著降低Zabbix性能。

使用示例

执行脚本check_oracle.sh时使用第一个参数'-h'. 第二个参数将根据主机属性中的选择被替换为IP地址或DNS名称.

check_oracle.sh["-h","{HOST.CONN}"]

假设主机配置为使用IP地址, Zabbix server/proxy将execute:

check_oracle.sh '-h' '192.168.1.4'

外部检查结果

外部检查的返回值由检查产生的标准输出和标准错误组成。

返回文本(字符、日志或文本类型信息)的监控项不会因标准错误输出而变为不受支持状态。

返回值限制为16MB(包括被截断的尾部空白字符);文本数据限制同样适用。

如果请求的脚本未找到,或Zabbix server/proxy没有execute权限,该监控项将变为不受支持状态并显示相应错误信息。

若发生超时,监控项将变为不受支持状态,显示相应错误信息,且为脚本派生的进程将被终止。