11 外部检查
概述
外部检查是由Zabbix服务器通过运行shell脚本或二进制执行的检查。
外部检查不需要在被监控的主机上运行任何代理。
监控项Key的语法是:
- script[<parameter1>,<parameter2>,...]
当:
参数 | 定义 |
---|---|
script | shell脚本或二进制文件的名称。 |
parameter(s) | 可选的命令行参数。 |
如果你不想将任何参数传递给脚本,可以使用:
- script[] 或者
- script
Zabbix服务器将查找定义为外部脚本的位置的目录(Zabbix服务器配置文件中的参数“ExternalScripts”),然后执行该命令。 该命令将以Zabbix用户执行,因此,任何访问权限或环境变量都应在包装器脚本中处理,并且该命令的权限应允许该用户执行它。只有指定目录中的命令才可执行。
不要过度使用外部检查! 由于每个脚本都需要Zabbix服务器启动fork进程,运行太多的脚本会降低Zabbix的性能。
用法示例
使用第一个参数“-h”执行脚本check_oracle.sh。 第二个参数将由IP地址或DNS名称替代,这取决于主机属性中的选择。
- check_oracle.sh["-h","{HOST.CONN}"]
假设主机配置为使用IP地址,Zabbix将执行:
- check_oracle.sh "-h" "192.168.1.4"
外部检查结果
检查的返回值与标准错误一起通过标准输出(从Zabbix 2.0起返回完整输出,并且从Zabbix 3.4开始,执行结果的退出代码也被checked)。
在标准错误输出的情况下,文本(字符、日志或文本信息类型)的监控项将被支持。
如果没有找到请求的脚本,Zabbix服务器没有执行权限或执行退出代码不匹配0(零),将不支持监控项,并且将设置相应的错误消息。在超时的情况下,监控项将被标记为不受支持,将显示相应的错误消息,脚本的分支进程将被杀死。