11 外部检查
概述
外部检查是由Zabbix server通过 运行shell脚本 或是二进制文件执行的检查。然而当主机是通过Zabbix proxy监控时,外部检查则由Zabbix proxy执行。
外部检查不需要在被监控的主机上运行任何代理。
监控项键值的语法:
script[<parameter1>,<parameter2>,...]
Where:
参数 | 定义 |
---|---|
script | shell脚本或二进制文件的名称 |
parameter(s) | 可选的命令行参数 |
如果你不想将任何参数传递给脚本,可以使用:
script[] or
script
Zabbix server将查找外部脚本位置的目录(Zabbix server配置文件 中’ExternalScripts’的参数),然后执行该命令。该命令将以Zabbix用户执行,因此任何访问权限或环境变量都应该在包装器脚本中处理,并且该命令的权限应允许该用户执行它。只有指定目录中的命令才可执行。
不要过度使用外部检查! 由于每个脚本都需要Zabbix server启动一个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 server没有执行该脚本的权限,则不支持该监控项,并将设置相应的错误消息。在超时的情况下,监控项也将被标记为不受支持,并显示相应的错误消息,脚本的分支进程将被杀死。