Zabbix监控告警邮箱提醒,钉钉提醒
本文摘要: 介绍了Zabbix监控系统配置邮件和钉钉告警的完整流程。邮件告警部分包括:1)配置网易邮箱开启SMTP服务,2)在服务端安装配置mailx邮件工具,3)编写Zabbix邮件告警脚本并设置权限,4)在Zabbix Web界面配置报警媒介和动作。钉钉告警部分包含:1)配置钉钉机器人Webhook,2)编写Python告警脚本并设置日志记录,3)安装Python requests库,4)在Z
邮件告警
一、注册网易邮箱及其配置邮箱
开启POP3/SMTP/IMAP






二、service端配置邮件服务
1.安装 mailx dos2unix
yum install -y mailx dos2unix
mailx:邮件服务
mos2unix:用于转换文本文件格式的实用工具
yum install -y mailx dos2unix
查看mailx版本
mailx -V
2.配置mailx配置文件
编辑:vim /etc/mail.rc
<table border="1" cellpadding="1" cellspacing="1" style="width:634px;"><tbody><tr><td>set from=lsqsq1@163.com smtp=smtp.163.com(自己的邮箱,smtp服务器)<br>setsmtp-auth-user=lsqsq1@163.com smtp-auth-password=<span style="color:#ff9900;">DJDOKFNAAUOZHZCW</span>(授权码)<br>set smtp-auth=login</td></tr></tbody></table>
echo "test mail from zabbix.server.com" | mail -s"test mail" lsqsq1@163.com
echo “内容”| mail -s “标题” 邮箱
在邮箱查看

3.编辑zabbix_server.conf应用邮件脚本
vim etc/zabbix/zabbix server.conf
AlertScriptsPath=/etc/zabbix/alertscripts
进入cd //etc/zabbix//zabbix/
[root@server alertscripts]# vim mail.sh
<table border="1" cellpadding="1" cellspacing="1" style="width:500px;"><tbody><tr><td><p>#!/bin/bash<br>#export.UT-F8<br>a=$2<br>b=$1<br>FILE=/tmp/mailtmp.txt<br>echo "$3" $FILE<br>/usr/bin/dos2unix -k $FILE<br>/bin/mail -s "$a" "$b" $FILE</p><p>#bt=$2 sjr=$1 :定义发件标题和收件人信息<br># FILE=/tmp/mailtmp.txt 定义文件路径<br>#/use/bin/dos2unix-k $FILE 转换字符</p><p></p></td></tr></tbody></table>

chown zabbix.zabbix mail.sh
touch /tmp/mailtmp.txt
chmod 777 /tmp/mailtmp.txt
chown zabbix.zabbix /tmp/mailtmp.txt

执行脚本 ./mail.sh lsqsq1@163.com "tset mail2" "test mail from zabbix"

4.配置zabbix_web监控项邮件报警
操作思路:
监控—创建报警媒介类型—更新用户使用的报警媒介类型—创建动作-验证;
1.创建报警媒介类型


<table border="1" cellpadding="1" cellspacing="1" style="width:500px;"><tbody><tr><td><p>名称自定义</p><p>脚本名需要与服务器中脚本对应。</p><p>报警媒介类型中脚本参数:</p><p>{ALERT.SENDTO}</p><p>{ALERT.SUBJECT}</p><p>{ALERT.MESSAGE}</p></td></tr></tbody></table>

2.更新用户使用的报警媒介类型




<table border="1" cellpadding="1" cellspacing="1" style="width:500px;"><tbody><tr><td><p>类型为上一步创建的类型</p><p>收件人为自己的邮箱地址</p></td></tr></tbody></table>


3.创建动作

<table border="1" cellpadding="1" cellspacing="1" style="width:500px;"><tbody><tr><td><p>邮件主题:</p><p>故障:{TRIGGER.STATUS},服务器:{HOSTNAME1},发生:{TRIGGER.NAME}故障!</p><p>邮件消息:</p><p>告警主机:{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}</p></td></tr></tbody></table>


4.验证


钉钉告警
一、钉钉告警,软件配置







二、配置zabbix-server
1、报警脚本配置
取消注释:
AlertScriptsPath=/usr/lib/zabbix/alertscripts

2、配置脚本
cd /usr/lib/zabbix/alertscripts
进入vim dingding.py
#!/usr/bin/env python
#coding:utf-8
#zabbix钉钉报警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=3a7191b12c8e8f5580b9bedc9e48938421845e7629c8ff0fe2833f1ede9e8b30" (修改为自己的webhook)
user=sys.argv[1]
text=sys.argv[3]
data={
"msgtype": "text",
"text": {
"content": 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("/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()
赋权:
chmod +x dingding.py

创建日志文件:
touch /var/log/zabbix/dingding.log
chown zabbix.zabbix /var/log/zabbix/dingding.log

3、安装 python-requests python
yum -y install python-requests python
4、手动测试
./dingding.py 1 123 "告警测试 "
三、web端配置
1、创建报警媒介类型

<table border="1" cellpadding="1" cellspacing="1" style="width:500px;"><tbody><tr><td><p>名称自定义</p><p>脚本名需要与服务器中脚本对应。</p><p>报警媒介类型中脚本参数:</p><p>{ALERT.SENDTO}</p><p>{ALERT.SUBJECT}</p><p>{ALERT.MESSAGE}</p></td></tr></tbody></table>

2、更新用户使用的报警媒介类型


3、创建动作

<table border="1" cellpadding="1" cellspacing="1" style="width:500px;"><tbody><tr><td><p>主题:故障恢复:{EVENT.NAME}</p><p>消息:</p><p>恢复主机:{HOSTNAME1}</p><p>恢复时间:{EVENT.DATE} {EVENT.TIME}</p><p>主机IP:{HOST.IP}</p><p>告警项目:{TRIGGER.KEY1}</p><p>问题详情:{ITEM.NAME}:{ITEM.VALUE}</p><p>当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}</p><p>事件ID:{EVENT.ID}</p></td></tr></tbody></table>


4、验证
停掉agent服务端的musql服务

更多推荐


所有评论(0)