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监控到服务器出现问题,则会触发邮件告警和短信告警动作,正常发送会显示绿色,如果没发送成功则是红色。

如下为收到告警邮件:

相关推荐
我命由我123453 天前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
我命由我123454 天前
Mac 操作系统 - 一些使用记录
运维·windows·学习·系统安全·运维开发·mac·学习方法
天天喝旺仔5 天前
Linux 性能排查实战:用 perf、strace 与火焰图定位 CPU、内存与 IO 瓶颈
linux·性能优化·运维开发
Turboex邮件分享6 天前
DNSBL 实时黑名单的技术原理:从 DNS 查询到垃圾邮件拦截
运维开发·软件需求
Ahtacca7 天前
Linux 基础实验:从终端操作到 C 语言编译
linux·运维·运维开发·虚拟机
Databuff8 天前
五款主流 SSH 免费工具介绍
运维·ssh·运维开发
蓝速科技8 天前
便民服务大厅 AI 数字人一体机场景适配与落地指南丨蓝速科技
大数据·网络·数据结构·人工智能·自然语言处理·数据分析·运维开发
程曦曦9 天前
MySQL 生产库误删 98 张表后的时间点恢复实战:从 binlog 解析到资金对账
linux·数据结构·其他·算法·ubuntu·运维开发
Dawn-bit11 天前
Linux 运维基础扩展:跳板机、堡垒机与物理服务器全流程
linux·运维·服务器·云计算·运维开发
蓝速科技12 天前
蓝速科技 F100 双屏翻译机:中小企业跨国会议提效方案
大数据·网络·数据结构·人工智能·科技·运维开发