zabbix4.4邮箱、钉钉报警

zabbix监控主机指标参数,当监控项满足触发器要求时发生报警,可以采用邮箱、钉钉、企业微信、短信报警,由于没有企业微信和短信猫,只演示邮箱和钉钉报警。

zabbix4.4邮箱、钉钉报警

一、安装zabbix

基于LNMP的zabbix4.4源码编译安装

二、配置邮箱报警

收发邮箱已我的QQ邮箱为例,163等主流的邮箱大致一样

1.设置邮件模板

管理-报警媒介类型(系统自带Emali模板)

zabbix4.4邮箱、钉钉报警

2.设置发件箱

管理-报警媒介类型

zabbix4.4邮箱、钉钉报警

注意:密码需要登录qq邮箱生成授权码,具体获取如下

zabbix4.4邮箱、钉钉报警

配置完成

zabbix4.4邮箱、钉钉报警

3.配置收件箱

管理-用户-报警媒介

zabbix4.4邮箱、钉钉报警

4.添加一个触发器

zabbix4.4邮箱、钉钉报警

zabbix4.4邮箱、钉钉报警

添加故障报警信息

zabbix4.4邮箱、钉钉报警

添加恢复信息

zabbix4.4邮箱、钉钉报警

5.故障测试

已磁盘空间不能小于10G为例

zabbix4.4邮箱、钉钉报警

通过dd模拟占用磁盘空间

dd if=/dev/zero of=test bs=6M count=1000

占用前

zabbix4.4邮箱、钉钉报警

占用后

zabbix4.4邮箱、钉钉报警

查看报警

zabbix4.4邮箱、钉钉报警

zabbix4.4邮箱、钉钉报警

收到告警

6.恢复测试

删除dd创建的文件块

zabbix4.4邮箱、钉钉报警

二、配置钉钉告警

1.创建钉钉机器人

下载钉钉电脑版-创建群-群助手-添加机器人-得到Webhook,复制下来

启动ip地址通过zabbix_server服务器运行curl ip.sb获取

zabbix4.4邮箱、钉钉报警

zabbix4.4邮箱、钉钉报警

zabbix4.4邮箱、钉钉报警

2.zabbix_server配置文件修改

mkdir -p /usr/local/Zabbix/alertscripts

cd /usr/local/Zabbix/alertscripts

编写dingding.py脚本(网上找py大神的案例)
将上面复制的Webhook添加至脚本中

vim 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=7c143476006b59ea176e1033e56dfe9acc6daf2160c77f14d3936b8e264d1152"
# 改成自己的Webhook
def msg(text):
    json_text= {
     "msgtype": "text",
     "text": {
         "content": text
     },
     "at": {
         "atMobiles": [
             "186..."
         ],
         "isAtAll": False
     }
    }
    print requests.post(api_url,json.dumps(json_text),headers=headers).content

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

增加执行权限

chmod +x dingding.py

更改用户组

chown zabbix:zabbix dingding.py

3.修改zabbix_server配置文件

vim /usr/local/Zabbix/etc/zabbix_server.conf末尾添加

AlertScriptsPath=/usr/local/Zabbix/alertscripts

4.重启zabbix

/etc/init.d/zabbix_server restart

5.创建报警媒介

添加以下参数

{ALERT.MESSAGE}

zabbix4.4邮箱、钉钉报警

6.设置接收用户

zabbix4.4邮箱、钉钉报警

7.创建触发器

参照邮箱报警设置

8.故障测试

dd if=/dev/zero of=test bs=6M count=1000

zabbix4.4邮箱、钉钉报警
测试正常

附:告警模板

告警模板

默认标题:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!
默认信息:
告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}

恢复模板

恢复标题:恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!
恢复信息:
恢复主机:{HOSTNAME1}
恢复时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}