Zabbix7.0(三)-推送问题告警到邮件、钉钉

Zabbix推送告警概述

本文介绍了如何创建Zabbix告警脚本、配置告警以及一些其他注意事项,实现Zabbix告警推送至钉钉和邮件,由于邮件接收有一定的滞后性,这里最推荐使用钉钉接收告警,也是我自己最常用的告警接收方式。

文章分三个阶段,本篇是第三阶段:

邮件告警请从第四章开始操作

一、获取钉钉webhook

  1. 登录钉钉

  2. 发起群聊-选择普通群-选择需要接收告警的人
    请添加图片描述

  3. 点击右上角三个点,创建机器人根据需求,任选其一:阿里云Codeup(无需配置安全设置)、自定义(需配置安全设置)
    请添加图片描述
    请添加图片描述

  4. 输入名字,设置安全措施(阿里云Codeup无需此步骤)
    请添加图片描述
    安全设置为必填项,请根据实际情况选择,为保证安全性,建议限制IP地址;如果不知道怎么填写,请勾选“自定义关键词”,填写“主机名”。
    请添加图片描述

  5. 复制webhook链接
    请添加图片描述

二、创建钉钉告警脚本

  1. ssh登录到zabbix服务器

  2. 创建告警脚本

#zabbix脚本保存目录
cd /usr/lib/zabbix/alertscripts
#创建脚本
vim DingDing.py
  1. 复制脚本内容至DingDing.py,将webhook后面的XXX…替换为上面创建的机器人webhook地址
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
import datetime
webhook = "XXXXXXXXXXXXXXXXXXXXXXXX"
user=sys.argv[1]
subject=sys.argv[2]
text=sys.argv[3]
data={
        "msgtype": "text",
        "text": {
                "content": "%s%s"%(subject,text)
        },
        "at": {
                "atMobiles": [
                        user
                        ],
                        "isAtAll": False
        }
}
headers = {'Content-Type': 'application/json'}
x=requests.post(url=webhook,data=json.dumps(data),headers=headers)
if os.path.exists("/usr/lib/zabbix/alertscripts/log/dingding.log"):
        f=open("/usr/lib/zabbix/alertscripts/log/dingding.log","a+")
else:
        f=open("/usr/lib/zabbix/alertscripts/log/dingding.log","w+")
f.write("\n"+"--"*30)
if x.json()["errcode"] == 0:
        f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送成功"+"\n"+str(text))
        f.close()
else:
        f.write("\n"+str(datetime.datetime.now())+"    "+str(user)+"    "+"发送失败"+"\n"+str(text))
f.close()
  1. 保存脚本

三、钉钉告警媒介配置

  1. 告警-媒介

请添加图片描述

  1. 创建媒介类型

请添加图片描述

名称:钉钉告警

类型:脚本

脚本名称:DingDing.py

脚本参数:添加三项

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
  1. 消息模板:添加两项

请添加图片描述

  • 消息类型:问题
    主题:
故障名称: {EVENT.NAME}

消息:

开始时间:{EVENT.DATE} {EVENT.TIME}
主机名: {HOST.NAME}
严重程度: {EVENT.SEVERITY}
额外信息: {EVENT.OPDATA}
故障ID: {EVENT.ID}
触发器URL: {TRIGGER.URL}

请添加图片描述

  • 消息类型:问题恢复
    主题:
故障恢复:{EVENT.NAME}

消息:

故障已经恢复,恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
故障持续时间: {EVENT.DURATION}
主机名: {HOST.NAME}
严重程度: {EVENT.SEVERITY}
故障ID: {EVENT.ID}
触发器URL: {TRIGGER.URL}

请添加图片描述

四、邮件告警(钉钉告警请跳过此步)

此处使用阿里云邮箱SMTP SSL/TLS举例,其他邮箱配置办法参考各邮箱帮助文档

将举例中的电子邮件替换为你实际的电子邮件地址,此处假设电子邮件为:123@test.local

  1. 告警-媒介

请添加图片描述

  1. 创建媒介类型

请添加图片描述

名称:邮件

类型:电子邮件

邮箱提供商:Generic SMTP

SMTP服务器:smtp.qiye.aliyun.com

SMTP服务器端口:465

电子邮件(例):123@test.local

SMTP HELO(例):test.local

安全连接:SSL/TLS

认证:用户名和密码

用户名称(例):123@test.local

密码:填写实际密码

消息格式:文本

  1. 消息模板:添加两项

请添加图片描述

  • 消息类型:问题
    主题:
故障名称: {EVENT.NAME}

消息:

开始时间:{EVENT.DATE} {EVENT.TIME}
主机名: {HOST.NAME}
严重程度: {EVENT.SEVERITY}
额外信息: {EVENT.OPDATA}
故障ID: {EVENT.ID}
触发器URL: {TRIGGER.URL}

请添加图片描述

  • 消息类型:问题恢复
    主题:
故障恢复:{EVENT.NAME}

消息:

故障已经恢复,恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
故障持续时间: {EVENT.DURATION}
主机名: {HOST.NAME}
严重程度: {EVENT.SEVERITY}
故障ID: {EVENT.ID}
触发器URL: {TRIGGER.URL}

请添加图片描述

五、触发器动作配置

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

请添加图片描述

  1. 动作-添加告警条件
    根据需要设置触发告警的等级

请添加图片描述
配置大于等于“告警”等级才会触发推送

请添加图片描述

  1. 操作-设置接收推送的群组

请添加图片描述
添加用户组和条件

请添加图片描述

六、用户告警方式配置

  1. 用户

请添加图片描述

  1. 报警媒介

请添加图片描述

  1. 添加媒介

请添加图片描述

邮件告警配置如下:

收件人填写需要接收者的邮箱

请添加图片描述

钉钉告警配置如下:

收件人填写:@all

请添加图片描述

七、推送效果

请添加图片描述

### 使用 Docker 部署 Zabbix 7.0 并安装配置 Zabbix Java Gateway 教程 #### 准备工作 为了成功部署 Zabbix 7.0 和其组件,需先准备好所需的环境。这包括获取官方提供的 `docker-compose.yml` 文件来简化多容器应用的设置过程[^2]。 #### 下载必要的资源 从 Zabbix GitHub 官网下载适用于 7.0 LTS 版本的 `docker-compose.yml` 文件。此文件包含了构建整个监控系统的必要指令和服务定义[^4]。 #### 拉取所需镜像 执行命令以拉取所有必需的 Docker 镜像: ```bash docker pull mysql:8.0.30 docker pull zabbix/zabbix-java-gateway:alpine-7.0-latest docker pull zabbix/zabbix-server-mysql:alpine-7.0-latest docker pull zabbix/zabbix-web-nginx-mysql:alpine-7.0-latest ``` 以上操作会确保本地拥有最新版本的相关软件包用于后续部署[^3]。 #### 修改 docker-compose.yml 文件 编辑所下载的 `docker-compose.yml` 文件,确认其中关于 MySQL 数据库初始化脚本路径、Zabbix Server 连接参数以及其他重要选项都已正确配置。特别是对于 Zabbix Java Gateway 的部分,应指定监听端口,默认情况下为10052/tcp。 #### 启动服务 完成上述准备工作之后,可以通过如下命令一键启动全部关联的服务实例: ```bash docker-compose up -d ``` 这条命令将以守护进程模式后台运行所有的容器化应用程序,并自动处理依赖关系和网络连接等问题。 #### 测试与验证 访问浏览器中的 Web UI 地址 (通常是 http://localhost 或者宿主机 IP),按照提示完成初始向导流程即可开始使用全新的 Zabbix 实例进行性能监测等工作。同时也可以通过命令行工具检查各个组件的状态是否正常运作。 #### 关于 Zabbix Java Gateway 的特别说明 由于某些特定类型的被监控对象可能需要借助额外的支持才能实现全面的数据采集功能,因此在实际应用场景里可能会涉及到对 Zabbix Java Gateway 单独做进一步调整优化的情况。比如修改 JVM 参数提高性能表现;或是依据企业内部安全策略更改默认开放给外界通信使用的 TCP 端口号等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hanziqing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值