https://juejin.im/post/5c8708eef265da2dd168a1c1

简介

家里搭建了zabbix去监控主机,邮件报警什么的都太麻烦了,所以直接使用钉钉机器人来提醒,下面是我的记录

创建群聊

首先钉钉机器人只有在群聊之中才可以创建,所以你就需要创建一个钉钉群,首先你创建一个三个人的群聊,创建完成之后把别人踢出去就可以了,这样就是你和钉钉机器人两个人的群聊,之后在电脑上获取钉钉机器人的webhook备用

编写报警脚本

#!/usr/bin/python
# -*- coding: utf-8 -*-
# Author: bboysoul
import requests
import json
import sys
import os headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url = "" def msg(text):
json_text= {
"msgtype": "text",
"at": {
"atMobiles": [
"你的手机号码"
],
"isAtAll": False
},
"text": {
"content": text
}
}
print requests.post(api_url,json.dumps(json_text),headers=headers).content if __name__ == '__main__':
text = sys.argv[1]
msg(text) 复制代码

上面的api_url就是你的钉钉机器人webhook地址,之后把这个脚本放到机器的alertscripts目录下面具体路径为

/usr/lib/zabbix/alertscripts

添加可执行权限

chmod +x dingding.py

因为我是使用docker搭建的,所以上面的操作都要在容器里面操作

docker exec -it zabbix-server /bin/bash

接着安装python-pip和requests库

yum install epel-release

yum install python-pip

pip install requests

创建报警媒介

在下面这个界面创建报警媒介

填入相关信息

点击添加添加成功

配置用户

之后点击管理->用户->选择你要告警的用户,这里我是直接使用admin用户了 选择报警媒介,收件人随便写

配置动作

最后我们配置动作

点击配置-> 动作->创建动作

名称随便写

点击触发器名称选择触发器警示度,之后选择大于等于警告,接着选择添加,点击一起用

选择操作

默认标题填

服务器:{HOST.NAME}发生: {TRIGGER.NAME}故障!

消息内容填

{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}
复制代码

操作细节选择发送消息,群组和用户选择你要发送消息的群组和用户点击添加

之后点击恢复操作

标题写

服务器:{HOST.NAME}: {TRIGGER.NAME}已恢复!

消息内容写

{
告警主机:{HOST.NAME}
告警地址:{HOST.IP}
监控项目:{ITEM.NAME}
监控取值:{ITEM.LASTVALUE}
告警等级:{TRIGGER.SEVERITY}
当前状态:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警时间:{EVENT.DATE} {EVENT.TIME}
恢复时间:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持续时间:{EVENT.AGE}
事件ID:{EVENT.ID}
}
复制代码

操作也是和上面一样点击新的,添加即可

点击更新操作

标题填

服务器:{HOST.NAME}: 报警确认

消息内容写

{
确认人:{USER.FULLNAME}
时间:{ACK.DATE} {ACK.TIME}
确认信息如下:
"{ACK.MESSAGE}"
问题服务器IP:{HOSTNAME1}
问题ID:{EVENT.ID}
当前的问题是: {TRIGGER.NAME}
}
复制代码

测试

最后就是测试环节,停掉监控的任何一个主机的zabbix-agent进程,之后我们看有没有收到报警信息,如果没有,可以登录数据库查看alerts表里面error字段的信息

作者:bboysoul
链接:https://juejin.im/post/5c8708eef265da2dd168a1c1
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

zabbix创建钉钉报警的更多相关文章

  1. 钉钉机器人zabbix报警

    首先在钉钉群聊里添加一个自定义的机器人 并复制webhook的内容 https://oapi.dingtalk.com/robot/send?access_token=37e23308d1b84eb4 ...

  2. zabbix钉钉报警

    我们在钉钉上建立群聊,然后在群聊上添加钉钉机器人: 编写,脚本需要放在zabbix 的alertscripts目录下(如果不知道该目录的位置,可以使用find命令查找) find / -iname a ...

  3. zabbix报警-邮件-钉钉

    安装zabbix的时候已经配置了zabbix_server的脚本目录 AlertScriptsPath=/opt/app/zabbix/script 所以把邮件.钉钉.微信相关的脚本都放在/opt/z ...

  4. (26)zabbix脚本报警介质自定义(钉钉)

    zabbix机器人告警配置 首先在钉钉中创建一个群然后设置群机器人添加自定义机器人(webhook...) 添加后复制其中的webhook地址到报警脚本dingding.py中的webhook=... ...

  5. Zabbix钉钉小机器人报警

    1.下载钉钉所需要的脚本golang-zabbix-robot-64,浏览器访问https://www.appgao.com/files/192.html: 图一    脚本下载 2.将脚本路径添加到 ...

  6. zabbix设置钉钉报警

    1 添加机器人 在钉钉群里面添加一个机器人 会获取到一个URL: 'https://oapi.dingtalk.com/robot/send?access_token=62be1ea97b4653b8 ...

  7. python之钉钉机器人zabbix报警

    转自:https://blog.51cto.com/m51cto/2051945 首先在钉钉群聊里添加一个自定义的机器人 并复制webhook的内容 https://oapi.dingtalk.com ...

  8. zabbix通过钉钉报警

    1.创建报警脚本  vim /usr/local/share/zabbix/alertscripts/dingalert.py #!/usr/bin/env python import json im ...

  9. zabbix的简单操作(查看监控,自定义监控和钉钉监控报警)

    zabbix是一种监控软件,我用的是centos7.5版本 一:我已经添加好主机了,接下来就是看看怎么查看监控内容的 1.打开zabbix服务的web网页 2.检测最新数据,要在最新数据中筛选 3.查 ...

随机推荐

  1. Vue知识整理6:JavaScript表达式

    可在vue中运用js表达式,完成数据的运算(包括三元运算).比较等操作.

  2. RNN系列

    漫谈RNN之梯度消失及梯度爆炸:http://bbs.imefuture.com/article/4405 漫谈RNN之长短期记忆模型LSTM:http://bbs.imefuture.com/art ...

  3. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_08 转换流_6_练习_转换文件编码

  4. Java ——变量类型

    变量声明 int a, b, c; // 声明三个int型整数:a. b.c int d = 3, e = 4, f = 5; // 声明三个整数并赋予初值 byte z = 22; // 声明并初始 ...

  5. JavaScript文件中; !function (win, undefined) {}(window);的意义

    +function (){}-function (){}!function (){}~function (){}(function (){})() 这种写法可以保证匿名函数立即运行且运行一次 传入的 ...

  6. Redis集合的常用操作指令

    Redis集合的常用操作指令 Sets常用操作指令 SADD 将指定的元素添加到集合.如果集合中存在该元素,则忽略. 如果集合不存在,会先创建一个集合然后在添加元素. 127.0.0.1:6379&g ...

  7. [Markdown] 01 简单应用 第一弹

    目录 0. "调用函数前必先声明" 0.1 Table of Content 0.2 分割线 0.3 引用 0.4 标记 0.5 关于 html 0.6 代码块 用法 1 用法 2 ...

  8. python 模块导入import和import from区别

    模块就是一个.py文件,在名字空间下导入模块导入import和import from,那么python 模块导入import和import from区别是什么呢 1,import 导入模块 impor ...

  9. Ionic -v1初始项目结构

    界面  

  10. 提升JAVA代码的好“味道”

    让代码性能更高 需要 Map 的主键和取值时,应该迭代 entrySet() 当循环中只需要 Map 的主键时,迭代 keySet() 是正确的.但是,当需要主键和取值时,迭代 entrySet() ...