zabbix配置钉钉告警(附含钉钉告警脚本 · 实战亲测无任何问题)

news/2025/2/12 19:14:57/

🍁博主简介

  🏅云计算领域优质创作者
  🏅华为云开发者社区专家博主
  🏅阿里云开发者社区专家博主
💊交流社区:运维交流社区 欢迎大家的加入!

文章目录

  • 钉钉上操作(钉钉告警以关键词方式告警)
    • 创建钉钉群
    • 添加机器人-->设置关键词
    • 生成webhook(请保管好webhook的值;后面需要用到。)
  • 服务器上操作
  • web页面操作
  • 钉钉接收告警信息测试

钉钉上操作(钉钉告警以关键词方式告警)

创建钉钉群

  • 登录钉钉
  • 创建钉钉群

手机、电脑都可以,这里以电脑举例

在这里插入图片描述

这里可以自己随便选择,我选择的是内部群

在这里插入图片描述

邀请好友,起一个群名称就可以了;

在这里插入图片描述

创建完成。

添加机器人–>设置关键词

创建完成之后点击群设置

在这里插入图片描述

往下翻找到“机器人”

在这里插入图片描述

点击添加机器人

在这里插入图片描述

添加”机器人“–>“自定义”

在这里插入图片描述

点击添加

在这里插入图片描述

在这里插入图片描述

生成webhook(请保管好webhook的值;后面需要用到。)

请保管好webhook的值;后面需要用到。

在这里插入图片描述

在这里插入图片描述

服务器上操作

  • 配置钉钉脚本

安装python或者python3教程可参考:Linux下安装Python3.6.8(超级详细)、【Linux】中安装pip(详细教程)

#将脚本写在/usr/lib/zabbix/alertscripts/目录下
[root@zabbix ~]# cd /usr/lib/zabbix/alertscripts/##安装python或者python3
[root@zabbix alertscripts]# yum install python3[root@zabbix alertscripts]# vim dingding.py
#!/usr/bin/env python
# -*- coding: utf-8 -*- 
import requests
import json
import sys
import os
import datetime
webhook = "https://oapi.dingtalk.com/robot/send?access_token=237132311231w4ru3rweehfiuqeor21o34u1923412werqwrq223"
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()

在这里插入图片描述

#为脚本添加执行权限
[root@zabbix alertscripts]# chmod +x dingding.py#修改脚本的属主和属组:
[root@zabbix alertscripts]# chown zabbix.zabbix dingding.py
  • 创建日志文件:
[root@zabbix alertscripts]# mkdir -p /usr/lib/zabbix/log/[root@zabbix alertscripts]# touch /usr/lib/zabbix/log/dingding.log[root@zabbix alertscripts]# chown zabbix.zabbix -R /usr/lib/zabbix/log/
  • 测试脚本是否能运行成功:

注意关键词;

#py脚本 手机号 关键词 告警信息
./dingding.py 12312312312 告警 test

手机号写的正确的话就可以直接@他,如果随便写的就不会输出,如下图的上(正确手机号)、下(错误手机号)

在这里插入图片描述

成功接收到信息,完成!

web页面操作

  • 管理–>报警媒介类型–>创建媒体类型

在这里插入图片描述

{ALERT.SUBJECT}
{ALERT.MESSAGE}
{ALERT.SENDTO}

在这里插入图片描述

在这里插入图片描述

  • 配置–>动作–>创建动作

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

#告警操作内容:
##标题:
服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!
##消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}#恢复操作内容
##标题:
服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!
##消息内容:
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}

操作添加:

在这里插入图片描述

恢复操作添加:

在这里插入图片描述

在这里插入图片描述

  • 个人中心–>报警媒介–>添加

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

钉钉接收告警信息测试

自己设置好服务器的监控项触发器,让他告警;

在这里插入图片描述

成功收到,完成!!!


http://www.ppmy.cn/news/98265.html

相关文章

首发Yolov8优化:Adam该换了!斯坦福最新Sophia优化器,比Adam快2倍 | 2023.5月斯坦福最新成果

1.Sophia优化器介绍 斯坦福2023.5月发表的最新研究成果,他们提出了「一种叫Sophia的优化器,相比Adam,它在LLM上能够快2倍,可以大幅降低训练成本」。 论文:https://arxiv.org/pdf/2305.14342.pdf 本文介绍了一种新的模型预训练优化器:Sophia(Second-order Clippe…

sql-labs SQL注入平台——第二关Less-2 GET - Error based - Intiger based (基于错误的GET整型注入)

Less-2 GET - Error based - Intiger based (基于错误的GET整型注入) 一、先确认漏洞是否存在 (1)查询 id1返回查询结果正常 (2)查询 id1’返回查询结果报错,可能存在SQL注入 (3)查询 id1 …

MybatisPlus处理业务数据新思路

文章目录 [toc] 1.问题2.新姿势3.总结 1.问题 由于之前搞了一个停车场的项目,有一个区域的停车场收费被投诉了被举报没有按照政府要求来计费,所以需要将之前的那些停车计费的数据重新计算,将多缴费的钱拿去交罚款,这个就很坑&…

机器学习 | SVD奇异值分解

本文整理自哔哩哔哩视频:什么是奇异值分解SVD–SVD如何分解时空矩阵 📚奇异值分解是什么? M是原始矩阵,它可以是任意的矩阵,奇异值分解就是将它分解为三个矩阵相乘。U和V是方阵,∑是不规则矩阵,…

js获取Element元素的常用方法

js中获取Element元素的常用方法有以下四种: 【方法一】根据元素ID:document.getElementById() 【方法二】根据元素标签:document.getElementsByTagName() 【方法三】根据元素class名:document.getElementsByClassName() 【方法…

RabbitMQ学习-备份交换机

有了 mandatory 参数和回退消息,我们获得了对无法投递消息的感知能力,有机会在生产者的消息 无法被投递时发现并处理。但有时候,我们并不知道该如何处理这些无法路由的消息,最多打个日志,然 后触发报警,再来…

定积分的计算(换元法)习题

前置知识:定积分的计算(换元法) 习题1 已知 f ( x ) f(x) f(x),计算 ∫ a b f ′ ( 2 x ) d x \int_a^bf(2x)dx ∫ab​f′(2x)dx 解:原式 1 2 ∫ a b f ′ ( 2 x ) d ( 2 x ) 1 2 f ( 2 x ) ∣ a b 1 2 [ f ( 2 …

linux kernel pwn 常用结构体

tty 设备结构体 tty 设备在 /dev 下的一个伪终端设备 ptmx 。 tty_struct(kmalloc-1k | GFP_KERNEL_ACCOUNT) tty_struct 定义如下 。 /* tty magic number */ #define TTY_MAGIC 0x5401struct tty_struct {int magic;...const struct tty…