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