外部检查是由Zabbix server通过running a shell script或二进制文件执行的检查。然而,当 主机由Zabbix proxy监控时,外部检查则由 proxy执行。
外部检查不需要在被监控的一个主机上运行任何agent。
监控项键的语法为:
其中:
参数 | 定义 |
---|---|
script | shell脚本或二进制文件的名称。 |
parameter(s) | 可选的命令行参数。 |
如果不想向脚本传递任何参数,可以使用:
Zabbix server或proxy将在指定的外部脚本目录中搜索并execute命令(参见Zabbix server/proxy配置file中的ExternalScripts
参数)。 命令将以与Zabbix server/proxy相同的用户身份执行,因此如有必要,应在包装脚本中处理任何访问权限或环境变量。 命令的权限也应允许该用户execute它。 只有指定目录中的命令可供执行。
不要过度使用外部检查,因为每个脚本都需要Zabbix server/proxy启动一个fork进程,运行大量脚本会显著降低Zabbix性能。
执行脚本check_oracle.sh时使用第一个参数'-h'. 第二个参数将根据主机属性中的选择被替换为IP地址或DNS名称.
假设主机配置为使用IP地址, Zabbix server/proxy将execute:
check_oracle.sh '-h' '192.168.1.4'
外部检查的返回值由检查产生的标准输出和标准错误组成。
返回文本(字符、日志或文本类型信息)的监控项不会因标准错误输出而变为不受支持状态。
返回值限制为16MB(包括被截断的尾部空白字符);文本数据限制同样适用。
如果请求的脚本未找到,或Zabbix server/proxy没有execute权限,该监控项将变为不受支持状态并显示相应错误信息。
若发生超时,监控项将变为不受支持状态,显示相应错误信息,且为脚本派生的进程将被终止。