@Zabbix配置邮箱告警及钉钉告警


在这里插入图片描述

1|01.邮件告警配置

1|11)本地mail搭建

CentOS 7自带邮件系统,利用配置mail邮件系统发送邮件告警

#配置系统自带mail服务器(默认可能没有配置mail,重新手动配置即可) [root@Zabbix server ~]# egrep '^[^#]' /etc/mail.rc set bsdcompat set from=zeny-he@qq.com #发送邮件后显示的邮件发送方 set smtp=smtp.qq.com #网易邮箱smtp邮件服务器地址 set smtp-auth-user=zeny-he@qq.com #发件人邮箱 set smtp-auth-password=ychwmzxeblxlbfbh #发件人认证邮箱密码及校验码 set smtp-auth=login #邮箱动作,表示登录动作 #测试邮件服务器(发送两条测试,没有同步发送,时间有差异,如下所示:) [root@Zabbix server ~]# echo '你好'|mail -s '主题' zeny-he@qq.com [root@Zabbix server ~]# echo '你服务器已宕机,请确认哦'|mail -s '【zabbix告警】' zeny-he@qq.com

mail服务器已搭建完毕,如下所示:

在这里插入图片描述

1|22)zabbix server配置

#查看zabbix脚本启动参数 [root@Zabbix server ~]# egrep 'AlertScriptsPath' /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts #配置mail脚本 [root@Zabbix server ~]# cd /usr/lib/zabbix/alertscripts/ [root@Zabbix server alertscripts]# chmod +x sendmailzeny.sh [root@Zabbix server alertscripts]# ll total 8 -rwxr-xr-x 1 root root 1365 Aug 9 15:20 sendalert.py -rwxr-xr-x 1 root root 315 Aug 10 14:53 sendmailzeny.sh [root@Zabbix server ~]# cat /usr/lib/zabbix/alertscripts/sendmailzeny.sh #!/bin/bash messages=`echo $3 | tr '\r\n' '\n'` subject=`echo $2 | tr '\r\n' '\n'` echo "${messages}" | mail -v -s "${subject}" -c "zeny-he@qq.com" "zeny.he@qq.com" $1 >>/tmp/sendmail.log 2>&1 #echo $1 >> /tmp/sendmail.log 2>&1 #echo $messages >> /tmp/sendmail.log 2>&1 #echo $subject >> /tmp/sendmail.log 2>&1

1|33)zabbix web配置

zabbix web配置报警媒介:

在这里插入图片描述

配置告警媒介动作:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

主题:
zeny Alarm:{TRIGGER.STATUS}: {EVENT.NAME}
消息:
zeny 您好!
以下是 Zabbix监控服务器发来的监控邮件。
【监控对象】: {HOSTNAME}: {HOST.CONN}
【事件信息】: {EVENT.NAME}: {TRIGGER.STATUS}
【发生时间】: {EVENT.DATE} {EVENT.TIME}
【报警级别】: {TRIGGER.SEVERITY}
【最新数值】: {ITEM.LASTVALUE}

在这里插入图片描述

1|44)查看告警动作

在这里插入图片描述

2|02.钉钉告警配置

2|11)创建接收告警群

创建告警的群聊,可随意创建群聊

在这里插入图片描述

2|22)创建群聊机器人

添加钉钉群聊机器人:

在这里插入图片描述

机器人添加

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

复制保存此项,接入的api

在这里插入图片描述

2|33)告警脚本配置

#查看zabbix server配置中脚本默认路径 [root@Zabbix server ~]# grep 'AlertScriptsPath' /etc/zabbix/zabbix_server.conf AlertScriptsPath=/usr/lib/zabbix/alertscripts #配置钉钉告警脚本及日志 [root@Zabbix server ~]# vim /usr/lib/zabbix/alertscripts/sendalert.py [root@Zabbix server ~]# ll /usr/lib/zabbix/alertscripts/sendalert.py -rw-r--r-- 1 root root 1365 Aug 9 15:20 /usr/lib/zabbix/alertscripts/sendalert.py [root@Zabbix server ~]# chmod +x /usr/lib/zabbix/alertscripts/sendalert.py [root@Zabbix server ~]# ll /usr/lib/zabbix/alertscripts/sendalert.py -rwxr-xr-x 1 root root 1365 Aug 9 15:20 /usr/lib/zabbix/alertscripts/sendalert.py [root@Zabbix server ~]# ll /var/log/zabbix/dingding.log -rw-r--r-- 1 root root 0 Aug 9 15:24 /var/log/zabbix/dingding.log

钉钉告警脚本如下:

#说明:以下脚本只要将webhook改为你自己的webhook值即可,其它的不需要改变。 #!/usr/bin/python #-*- coding: utf-8 -*- #zabbix钉钉报警 import requests,json,sys,os,datetime #此项为机器人webhook的api webhook="https://oapi.dingtalk.com/robot/send?access_token=fc24a33e1e6f5e28abf65303628f9b9b6040c5557498fdf5cd7a33705334b824" user=sys.argv[1] #发给钉钉群中哪个用户 text=sys.argv[3] #发送的报警内容 data={ "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ user ], "isAtAll": False } } #钉钉API固定数据格式 headers = {'Content-Type': 'application/json'} x=requests.post(url=webhook,data=json.dumps(data),headers=headers) if os.path.exists("/var/log/zabbix/dingding.log"): f=open("/var/log/zabbix/dingding.log","a+") else: f=open("/var/log/zabbix/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() #将发送的告警信息写入本地日志/var/log/zabbix/dingding.log中

脚本手动测试

#手动测试 [root@Zabbix server ~]# cd /usr/lib/zabbix/alertscripts/ [root@Zabbix server alertscripts]# ./dingding.py #人员的钉钉号 Test "这是条告警测试信息,请忽略"

**加粗样式**

错误解析:

#该脚本要求至少python2.7版本,具有requests模块 #安装python环境: yum install python-pip -y pip install --upgrade pip pip install requests

2|44)zabbix web配置

管理》报警媒介类型》创建媒介类型

在这里插入图片描述

告警媒介配置

在这里插入图片描述

脚本参数: {ALERT.SENDTO} #对应脚本中的,user=sys.argv1。 {ALERT.SUBJECT} #代表发送的信息的标题,在"报表"的"动作日志"中可以看到。 {ALERT.MESSAGE} #对应脚本中的,text=sys.argv3

配置执行的动作

在这里插入图片描述
在这里插入图片描述

"主题"对应"钉钉告警"媒介中的:{ALERT.SUBJECT}
"消息"对应"钉钉告警"媒介中的:{ALERT.MESSAGE}
"收件人"对应"钉钉告警"媒介中的:{ALERT.SENDTO}

主题:
故障名称(触发器名称):{EVENT.NAME}
消息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

主题:
故障恢复(触发器名称):{EVENT.NAME}
消息:
恢复主机:{HOSTNAME1}
恢复时间:{EVENT.DATE} {EVENT.TIME}
主机IP:{HOST.IP}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}

用户告警媒介添加

在这里插入图片描述

注:这里只需要添加钉钉群里的任何一个成员的钉钉账号即可,即添加一个收件人,这样在机器人群里成员都能看到告警信息.,如果添加多个收件人,则机器人群里就会发送多个告警信息,一个收件人发一条信息.


__EOF__

本文作者ଲ小何才露煎煎饺
本文链接https://www.cnblogs.com/zeny/p/16578209.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ଲ小何才露煎煎饺  阅读(114)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
历史上的今天:
2021-08-11 @kuberbetes(k8s)集群图形化kuboard安装及使用
点击右上角即可分享
微信分享提示