一、概述

    假设我们已经配置了一些项(items )和触发器(triggers ),并且现在由于一些事件而引起触发器的状态改变,那么现在是时候考虑去做一些操作了。

    首先,我们不想一直盯着触发器或事件列表。如果发生了重要的事情(如问题),最好是收到通知。此外,当问题发生时,我们希望所有有关人员都得到通知。

    这就是为什么发送通知是Zabbix提供的主要操作之一。可以定义在某个事件发生的时间和应通知的人员。

    要能够从Zabbix发送和接收通知,您必须:

  • 定义一些媒体(media)
  • 配置向定义的媒体之一发送消息的操作(action)

    动作(actions)包括条件(conditions )和操作(operations)。基本上,当条件满足时,就要进行操作。两个主要操作分别是发送消息(通知)和执行远程命令。

    对于发现和自动注册创建的事件,有一些额外的操作可用。其中包括添加或删除主机、链接模板等。
二、 Custom alertscripts

    如果您对用于发送警报的现有媒体类型不满意,则有另一种方法可以这样做。您可以创建一个脚本来按您的方式处理通知。

    警报脚本在Zabbix服务器上执行。我们在服务器配置文件/etc/zabbix/zabbix_server.conf中AlertScriptsPath变量中指定这些脚本所在的目录。

下面是一个警报脚本示例:

#!/bin/bash
 
to=$1
subject=$2
body=$3
 
cat <<EOF | mail -s "$subject" "$to"
$body
EOF

    不会为脚本保留或创建环境变量,因此应显式处理它们。

三、配置 Custom alertscripts

  配置流程:

    将自定义报警脚本配置为媒体类型:

  •     转到管理→媒体类型(Administration-->media types)
  •     点击创建媒体类型。
  •     选择脚本

zabbix 自定义脚本动作 zabbix告警脚本_zabbix 自定义脚本动作

    所有必需的输入字段都用红色星号标记。

参数

说明

name

媒体类型的名称

type

选择“脚本”作为类型。

Script name

选择脚本的名字

Script parameters

向脚本添加命令行参数。{ALERT.SENDTO}, {ALERT.SUBJECT} and {ALERT.MESSAGE} macros 在脚本参数中被支持。

    

用户媒体

    要将特定地址分配给用户,请执行以下操作:

    转到管理→用户(Administration → Users

    打开“用户属性”窗体 

    在“媒体”选项卡中,单击“添加”

zabbix 自定义脚本动作 zabbix告警脚本_linux_02

用户媒体属性:

参数

说明

Type

选择“自定义的报警脚本”作为类型。

Send to

指定接收警报的收件人。

When active

您可以限制发送邮件的时间,例如,仅限工作日(1-5,09:00-18:00)。

Use if severity

标记要接收通知的触发器严重性的复选框。

请注意,如果要接收非触发事件的通知,则必须选中默认严重性(“未分类”)。

保存后,所选触发严重性将以相应的严重性颜色显示,未选择的触发严重性将变灰。

Enabled

用户媒体的状态。

Enabled-正在使用。

DIsabled-未使用。

 

 

参考文献:

    https://www.zabbix.com/documentation/4.2/manual/config/notifications/media/script