zabbix6.4告警配置(短信告警和邮件告警),脚本触发

目录

一、前提

  1. 已经搭建好zabbix-server
  2. 在需要监控的mysql服务器上安装zabbix-agent2

    上述安装步骤参考我的上篇文章:通过docker容器安装zabbix6.4.12图文详解(监控服务器docker容器)

二、告警配置

1.邮件告警脚本配置

  1. 进入zabbix-server-mysql容器内部
powershell 复制代码
docker exec -it zabbix-server-mysql bash
  1. 进入zabbix-server-mysql容器中存放脚本文件的文件夹
powershell 复制代码
cd /usr/lib/zabbix/alertscripts
  1. 在该文件夹下创建.sh的脚本文件
powershell 复制代码
vi sendmail.sh 

如图所示:

  1. 添加脚本内容。注,该文件运行的时候在容器内部,不能使用curl调用url接口,需要使用wget

脚本内容如下:

powershell 复制代码
#!/bin/bash  ## 指定脚本文件使用bash解释器来执行

send_email() {
    mail_address=$1
    title=$2
    content=$3
    ##这里修改成你自己的邮件api接口
    url='http://xxx.xxx.xxx.xxx:xxxx/ITExceptionV1/SendMail/SendToMail' 
    data="{\"mailAddress\": \"$mail_address\", \"toTitle\": \"$title\", \"toInfo\": \"$content\"}"

    echo $data > temp.json
    response=$(wget -qO- --post-file=temp.json $url)

    if [ $? -eq 0 ]; then
        echo 'SUCCESS'
    else
        echo 'response.status_code=' $?
        echo 'FAIL'
    fi

    rm temp.json
}

if [ "$#" -ne 3 ]; then
    echo "Usage: $0 <mail_address> <title> <content>"
else
    mail_address=$1
    title=$2
    content=$3
    send_email $mail_address "$title" "$content"
fi
  1. 添加完成后 :wq保存退出,并给文件赋予权限,文件才能运行,这边直接给文件赋予执行权限
powershell 复制代码
chmod +x /usr/lib/zabbix/alertscripts/sendmail.sh  #文件赋予执行权限
  1. 执行文件测试,看是否能收到邮件。能收到邮件说明脚本没有问题
powershell 复制代码
./sendmail.sh  xxx@xxx.com "email title" "email content"

2.短信告警脚本配置

前面步骤跟邮件告警一样,参考上文内容,下面直接从创建脚本开始。

  1. 进入zabbix-server-mysql容器中存放脚本文件的文件夹alertscripts创建一个脚本文件sendSMS.sh
powershell 复制代码
vi sendSMS.sh
  1. 添加脚本内容如下。
powershell 复制代码
#!/bin/bash

send_sms() {
	## 替换成你自己的短信api接口
    url='http://xxx.xx.xxx.xxx/api/ms/dm/sms/send'
    content=$(urlencode "$1")
    phone_number=$(urlencode "$2")
    smsPsw='7121@byd'
    smsUid='7121'

    response=$(wget -qO- "$url?content=$content&nodeld=2&phoneNumber=$phone_number&smsPsw=$s

    if [ $? -eq 0 ]; then
        echo 'SUCCESS'
    else
        echo 'FAIL'
    fi
}

urlencode() {
    # ...... awk ...... URL ......
    echo -n "$1" | awk '{ gsub(/[^a-zA-Z0-9\/:._-]/, c); print }'
}

if [ "$#" -ne 2 ]; then
    echo "Usage: $0 <phone_number> <message>"
else
    phone_number=$1
    message=$2
    send_sms "$message" $phone_number
fi
  1. 然后执行以下命令进行测试,能收到短信表示脚本无问题
powershell 复制代码
./sendSMS.sh 181XXXXX "message content"

3.zabbix添加报警媒介

  1. 告警------媒介------创建媒介类型

1 )邮件配置

名称:随意填写

类型:脚本

脚本名称:填写你刚才创建的脚本名称

脚本参数

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

2)短信配置
名称:随意填写

类型:脚本

脚本名称:填写你刚才创建的脚本名称

脚本参数

{ALERT.SENDTO}

{ALERT.MESSAGE}

如下表示创建成功:

4.zabbix创建动作

以下只介绍邮件告警动作配置,短信动作配置同理,选择不同的报警媒介即可。

  1. 告警------动作------触发器动作------创建动作

1)动作配置

名称:随意

条件:根据自己的需求添加,比如选择"主机群组"等于"zabbix servers"的主机(群组是在配置主机时添加的)

2)操作配置
(1)操作

  • 点击添加
  • 选择发送的用户组和用户
  • 仅送到:选择刚刚创建的报警媒介
  • 勾选自定义消息类型内容

主题添加如下内容:

powershell 复制代码
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

消息添加如下内容:

powershell 复制代码
告警主机:{HOSTNAME1}<br>
告警时间:{EVENT.DATE} {EVENT.TIME}<br>
告警等级:{TRIGGER.SEVERITY}<br>
告警信息: {TRIGGER.NAME}<br>
告警项目:{TRIGGER.KEY1}<br>
问题详情:{ITEM.NAME}:{ITEM.VALUE}<br>
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}<br>
事件ID:{EVENT.ID}

(2)恢复操作

  • 点击添加
  • 选择发送的用户组和用户
  • 仅送到:选择刚刚创建的报警媒介
  • 勾选自定义消息类型内容
    主题添加如下内容:
powershell 复制代码
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

消息添加如下内容:

powershell 复制代码
告警主机:{HOSTNAME1}<br>
告警时间:{EVENT.DATE} {EVENT.TIME}<br>
告警等级:{TRIGGER.SEVERITY}<br>
告警信息: {TRIGGER.NAME}<br>
告警项目:{TRIGGER.KEY1}<br>
问题详情:{ITEM.NAME}:{ITEM.VALUE}<br>
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}<br>
事件ID:{EVENT.ID}

4.给用户添加报警媒介

  1. 用户------用户------点击需要添加报警媒介的用户------报警媒介------添加------选择对应的报警媒介类型------收件人:邮箱号或手机号,点击添加即可
  2. 给用户添加邮件报警
  3. 给用户添加短信报警

在仪表盘页面如果出现zabbix监控到服务器出现问题,则会触发邮件告警和短信告警动作,正常发送会显示绿色,如果没发送成功则是红色。

如下为收到告警邮件:

相关推荐
不做菜鸟的网工2 天前
Zabbix收集H3C交换机实时配置命令 「SNMP TRAP」
zabbix
肖祥3 天前
docker安装zabbix7.4
zabbix
王九思4 天前
Thrift Server 介绍
大数据·系统架构·运维开发
shen121384 天前
【zabbix】自动发现监控项原型计算
zabbix
青靴4 天前
【运维开发实战】从0到1搭建半导体初创公司内网智能知识库与运维助手
运维·运维开发
峰顶听歌的鲸鱼4 天前
Zabbix监控系统
linux·运维·笔记·安全·云计算·zabbix·学习方法
学不完的5 天前
Nginx
linux·运维·nginx·运维开发
500佰6 天前
Hive常见故障多案例FAQ宝典 --项目总结(宝典一)
大数据·linux·数据仓库·hive·hadoop·云计算·运维开发
信创天地10 天前
国产化分布式服务框架双雄:Dubbo与Spring Cloud Alibaba 服务调用解决方案全解析
人工智能·系统架构·开源·dubbo·运维开发·risc-v
Re_Virtual11 天前
OpenEuler 20.03构建zabbix7.0 rpm包
linux·zabbix·openeuler