邮件告警

一、注册网易邮箱及其配置邮箱

开启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服务

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐