3 自定义报警脚本
概述
如果您对目前发送告警的媒介类型不满意,那么还有另外一种方式来执行此操作。您可以创建一个脚本,按照您自己的方式来处理通知。
告警脚本在Zabbix server上执行。这些脚本的存放目录,是服务器 配置文件 中 AlertScriptsPath 变量所定义的。
以下是一个报警脚本的示例:
#!/bin/bash
to=$1
subject=$2
body=$3
cat <<EOF | mail -s "$subject" "$to"
$body
EOF
从3.4版本开始,Zabbix会检查执行命令和脚本的退出代码。若退出代码不为 0,则均被视为 命令执行 错误。在这种情况下,Zabbix将尝试重复失败的执行。
环境变量不会为脚本保留或创建,因此应该明确地来处理它们。
配置
配置自定义告警脚本为媒介类型:
转到 管理 - > 媒介类型
点击 创建媒介类型
媒介类型 选项包含了媒介类型的一般属性:
红色星号标记的为必填字段。
以下为脚本媒介类型所特有的参数:
参数 | 描述 |
---|---|
脚本名称 | 输入脚本的名称。 |
脚本参数 | 向脚本添加命令行参数。 脚本中支持 {ALERT.SENDTO}, {ALERT.SUBJECT} 和 {ALERT.MESSAGE} 宏 参数。 从Zabbix 3.0开始支持自定义脚本参数。 |
有关如何配置默认消息和报警处理选项,请详见 通用媒介类型参数 。
即使自定义报警脚本不使用默认消息,也必须为此媒介类型使用的操作类型定义消息模板,否则将不会发送通知。
从Zabbix 3.4.0开始,就已实现了媒介类型的并行处理。因此需要注意的是,如果配置了多个脚本媒介类型,这些脚本可能会被报警进程并行处理。报警进程的总数受StartAlerters 参数 的限制。
用户媒介
媒介类型配置完成后,请转到 管理 → 用户 部分,编辑用户配置文件,将此媒介分配给用户。用户媒介的配置步骤请参见 媒介类型 页面(适用于所有媒介类型)。
注意:定义用户媒介时,Send to 字段不能为空。如果在自定义脚本中不使用此字段,那么请在此字段中输入任何支持的字符组合,以绕过验证要求。