zabbix报警(邮箱+钉钉)
一、邮箱报警
1.使用zabbix自带的邮箱报警
在zabbix管理里选择报警媒介类型,选择Email,如下图所示
2.选择Email填写相关信息,如下图所示
我的是阿里云企业邮箱就smtp后面更公司域名就可以了
163邮箱就是smtp.163.com
HELO项随意填写域名
电邮就写自己邮箱
用户名和密码就按自己的填写就好,注意163邮箱需要填写的是客户端授权密码不是邮箱密码
3.在用户中添加报警
选择想要接收到的报警用户,点击用户,在用户里面选择报警媒介
在用户报警媒介类型中选择添加
在下面界面需要填写四个地方
类型为Email,收件人写自己邮箱,时间选择,严重性我选择的是警告以上发送邮件,如下图所示
4.在动作中添加操作
在动作中选择你想要发送邮件的主机
然后在操作和恢复操作设置,将操作类型和用户选择,记得填写完后点更新,如图所示
配置好了之后如图所示,记得操作和恢复操作都要做修改
5.测试
然后现在出现报警就可以在邮箱中收到了
邮箱报警就完成了,下面我们部署钉钉报警,将两者结合起来,避免遗忘
二、钉钉报警
1.创建钉钉机器人
在钉钉群里面找到群机器人,添加机器人
选择自定义机器人
选择添加
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
3.测试脚本
执行完脚本可以看到钉钉群里出来一条信息
这里出现了一个问题,在执行脚本报错了
[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上添加钉钉报警
此步骤和前面邮箱报警类似
在管理的报警媒介类型选择创建报警媒介类型
然在在报警媒介类型上选择脚本的方式,输入图示信息,记得脚本名称不要写错
添加完后可以看到报警媒介已添加
我们在动作中选择刚刚邮件报警的动作,在操作和恢复操作中选择新的,发送选择我们刚创建的dingding来发送
记得操作和恢复操作都要添加,消息内容可以设置中午,就顺便调整了一下
添加完在管理里找到用户,选择你想要发送报警的用户,在报警媒介里面添加新的报警如下图所示
三、测试
前面两个都创建好了之后,可以自己创建一个问题来测试我们两个报警方式是否成功,可以看到在邮箱和钉钉上面都收到了报警,设置成功。