zabbix报警(邮箱+钉钉)

一、邮箱报警

1.使用zabbix自带的邮箱报警

在zabbix管理里选择报警媒介类型,选择Email,如下图所示

Grafana managed alert发送钉钉报警 zabbix钉钉报警_zabbix

2.选择Email填写相关信息,如下图所示

我的是阿里云企业邮箱就smtp后面更公司域名就可以了

163邮箱就是smtp.163.com

HELO项随意填写域名

电邮就写自己邮箱

用户名和密码就按自己的填写就好,注意163邮箱需要填写的是客户端授权密码不是邮箱密码

Grafana managed alert发送钉钉报警 zabbix钉钉报警_json_02

3.在用户中添加报警

选择想要接收到的报警用户,点击用户,在用户里面选择报警媒介

在用户报警媒介类型中选择添加

Grafana managed alert发送钉钉报警 zabbix钉钉报警_邮箱_03


在下面界面需要填写四个地方

类型为Email,收件人写自己邮箱,时间选择,严重性我选择的是警告以上发送邮件,如下图所示

Grafana managed alert发送钉钉报警 zabbix钉钉报警_报警_04

4.在动作中添加操作

在动作中选择你想要发送邮件的主机

Grafana managed alert发送钉钉报警 zabbix钉钉报警_json_05

然后在操作和恢复操作设置,将操作类型和用户选择,记得填写完后点更新,如图所示

Grafana managed alert发送钉钉报警 zabbix钉钉报警_邮箱_06


配置好了之后如图所示,记得操作和恢复操作都要做修改

Grafana managed alert发送钉钉报警 zabbix钉钉报警_钉钉_07

5.测试

然后现在出现报警就可以在邮箱中收到了

Grafana managed alert发送钉钉报警 zabbix钉钉报警_zabbix_08


邮箱报警就完成了,下面我们部署钉钉报警,将两者结合起来,避免遗忘

二、钉钉报警

1.创建钉钉机器人

在钉钉群里面找到群机器人,添加机器人

Grafana managed alert发送钉钉报警 zabbix钉钉报警_邮箱_09


选择自定义机器人

Grafana managed alert发送钉钉报警 zabbix钉钉报警_邮箱_10

选择添加

2.创建钉钉报警脚本

[root@localhost ~]# cd /usr/lib/zabbix/alertscripts/ 
 [root@localhost alertscripts]# vim dingding.py  
 [root@localhost alertscripts]# chmod +x dingding.py
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os

headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = ""https://oapi.dingtalk.com/robot/send?access_token=78812b298b6a311e8be6fda51c53e0cd87ad2177f489f9f08f1db0724e1b0a89
#需要更换你机器人的地址
def msg(text):
    json_text= {
     "msgtype": "text",
     "text": {
         "content": text
     },
     "at": {
         "atMobiles": [
             "186..." #需要@群里谁
         ],
         "isAtAll": True #是否全部@,True为是,False为否
     }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content

if __name__ == '__main__':
    text = sys.argv[1]
    msg(text)

机器人地址可以在添加的机器人中找到设置,负责webhook

Grafana managed alert发送钉钉报警 zabbix钉钉报警_zabbix_11

3.测试脚本

Grafana managed alert发送钉钉报警 zabbix钉钉报警_邮箱_12


执行完脚本可以看到钉钉群里出来一条信息

Grafana managed alert发送钉钉报警 zabbix钉钉报警_报警_13


这里出现了一个问题,在执行脚本报错了

[root@localhost alertscripts]# ./dingding.py test
 Traceback (most recent call last):
  File “./dingding.py”, line 3, in 
    import requests
 ImportError: No module named requests
解决办法
 [root@localhost alertscripts]# yum install python-requests -y
 在执行成功

4.在zabbix上添加钉钉报警

此步骤和前面邮箱报警类似

在管理的报警媒介类型选择创建报警媒介类型

Grafana managed alert发送钉钉报警 zabbix钉钉报警_邮箱_14


然在在报警媒介类型上选择脚本的方式,输入图示信息,记得脚本名称不要写错

Grafana managed alert发送钉钉报警 zabbix钉钉报警_zabbix_15


添加完后可以看到报警媒介已添加

Grafana managed alert发送钉钉报警 zabbix钉钉报警_报警_16


我们在动作中选择刚刚邮件报警的动作,在操作和恢复操作中选择新的,发送选择我们刚创建的dingding来发送

Grafana managed alert发送钉钉报警 zabbix钉钉报警_钉钉_17


记得操作和恢复操作都要添加,消息内容可以设置中午,就顺便调整了一下

Grafana managed alert发送钉钉报警 zabbix钉钉报警_zabbix_18


Grafana managed alert发送钉钉报警 zabbix钉钉报警_邮箱_19


添加完在管理里找到用户,选择你想要发送报警的用户,在报警媒介里面添加新的报警如下图所示

Grafana managed alert发送钉钉报警 zabbix钉钉报警_钉钉_20

三、测试

前面两个都创建好了之后,可以自己创建一个问题来测试我们两个报警方式是否成功,可以看到在邮箱和钉钉上面都收到了报警,设置成功。

Grafana managed alert发送钉钉报警 zabbix钉钉报警_钉钉_21


Grafana managed alert发送钉钉报警 zabbix钉钉报警_zabbix_22