如果您对现有的告警发送媒介类型不满意, 还有一种替代方法可以实现。您可以create一个脚本, 以自定义方式处理通知。
告警脚本在Zabbix server上执行。这些脚本必须位于 服务器configuration file参数AlertScriptsPath
指定的目录中。
以下是自定义告警脚本的示例:
从version 3.4版本开始,Zabbix会检查 执行的命令和脚本的退出代码。任何不等于0的退出代码 将被视为command execution错误。这种情况下 Zabbix会尝试重新执行失败的操作。
脚本不会保留或创建环境变量, 因此需要显式处理环境变量。
配置自定义告警脚本作为媒介类型:
媒介类型标签页包含通用媒介类型属性:
所有必填字段均以红色星号标记。
以下参数为脚本媒介类型特有:
参数 | 说明 |
---|---|
Script name | 输入脚本名称file(例如notification.sh),该脚本需位于服务器configuration file参数AlertScriptsPath 指定的目录中。 |
Script parameters | 为脚本添加命令行参数。 脚本参数支持{ALERT.SENDTO}、{ALERT.SUBJECT}和{ALERT.MESSAGE}macros。 自定义脚本参数功能自Zabbix 3.0起支持。 |
关于默认消息配置与告警处理选项的详细信息,请参阅通用参数。
即使告警脚本不使用默认消息, 仍需为此媒介类型使用的操作类型定义消息模板, 否则将无法发送通知。
由于Zabbix 3.4.0起实现了媒介类型的并行处理, 需注意当配置多个脚本媒介类型时, 这些脚本可能由告警进程并行处理。 告警进程总数受限于StartAlerters参数 parameter。
配置媒体类型后,请前往管理 → 用户部分并编辑用户配置文件,为此用户分配该类型的媒体。设置用户媒体的步骤(适用于所有媒体类型)已在用户媒介页面中描述。
请注意,在定义用户媒体时,发送至字段不能为空。如果该字段在告警脚本中未被使用,请输入任何受支持字符的组合以绕过验证要求。