2.1、到钉钉官网下载pc版钉钉,安装、注册、登陆:

钉钉下载地址:https://www.dingtalk.com/

2.2、创建群聊和钉钉机器人:

1、创建群聊,把需要收到报警的人员都拉到这个群:

(1)

(2)

(3)

(4)

2、创建钉钉机器人:

(1)

(2)

(3)

(4)

(5)

(6)

(7)

点击“设置说明”可以查看钉钉服务端API说明。

2.3、脚本配置:

1、查看zabbix-server脚本存放的位置:

[root@controlnode ~]# grep ^AlertScriptsPath /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts

2、创建钉钉报警脚本:

[root@controlnode ~]# cd /usr/lib/zabbix/alertscripts/

[root@controlnode alertscripts]# vim dingding.py

#说明:以下脚本只要将webhook改为你自己的webhook值即可,其它的不需要改变。

#!/usr/bin/python

#-*- coding: utf-8 -*-

#zabbix钉钉报警

import requests,json,sys,os,datetime

webhook="https://oapi.dingtalk.com/robot/send?access_token=78eba715496454260d5937aba8582231522f69e93e31d686fbb93551056a5550"

#说明:这里改为自己创建的机器人的webhook的值

user=sys.argv[1]

#发给钉钉群中哪个用户

text=sys.argv[3]

#发送的报警内容

data={

"msgtype": "text",

"text": {

"content": text

},

"at": {

"atMobiles": [

user

],

"isAtAll": False

}

}

#钉钉API固定数据格式

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()

#将发送的告警信息写入本地日志/var/log/zabbix/dingding.log中

3、赋予脚本执行权限和创建日志文件:

(1)脚本赋予可执行权限:

[root@controlnode alertscripts]# chmod +x dingding.py

(2)创建日志文件:

[root@controlnode alertscripts]# touch /var/log/zabbix/dingding.log

[root@controlnode alertscripts]# chown zabbix.zabbix /var/log/zabbix/dingding.log

4、手动测试脚本是否可以正常发送消息:

(1)测试命令:

[root@controlnode alertscripts]# ./dingding.py hyjy2504164765 test "这是条告警测试信息,请忽略"

参数说明:

1)hyjy2504164765:钉钉群中任意一个人员的钉钉号。

如何查看自己的钉钉号:

2)test:这里因脚本中没有设置接收参数,所以无实际意义,仅仅起到变量占位的作用。

3)"这是条告警测试信息,请忽略":这是具体的告警信息,告警信息必须包含“安全设置”

中自己设置的“自定义关键词”,否则无法发送告警信息,我这里设置的告警关键字是"告警"。

注意:该脚本要求至少python2.6.6版本,且具有requests模块,否则会报如下错误:

Traceback (most recent call last):

File "./dingding.py", line 4, in <module>

import requests,json,sys,os,datetime

ImportError: No module named requests

解决办法如下:

yum install python-pip

pip install --upgrade pip

pip install requests

(2)钉钉群收到报警信息:

(3)在ZabbixServer上查看发送消息日志:

[root@controlnode alertscripts]# cat /var/log/zabbix/dingding.log

2.4、zabbix web 界面设置:

触发器触发"动作"——>特定的"报警媒介"——>单个用户的账号或用户组中用户的账号

1、创建报警媒介:

(1)

(2)

脚本参数:

{ALERT.SENDTO}

#对应脚本中的,user=sys.argv[1](发给钉钉群中哪个用户)。

{ALERT.SUBJECT}

#代表发送的信息的标题,在"报表"的"动作日志"中可以看到。

{ALERT.MESSAGE}

#对应脚本中的,text=sys.argv[3](发送的报警内容)。

2、添加报警动作,将报警发送给Admin用户:

(1)

(2)

(3)

(4)

(5)

1)

"主题"对应"钉钉告警"媒介中的:{ALERT.SUBJECT}

"消息"对应"钉钉告警"媒介中的:{ALERT.MESSAGE}

2)

主题:

服务故障告警:{TRIGGER.STATUS}: {TRIGGER.NAME}

消息:

服务故障告警:{TRIGGER.STATUS}: {TRIGGER.NAME}

告警主机:{HOST.NAME}

主机IP: {HOST.IP}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息:{TRIGGER.NAME}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID: {EVENT.ID}

(6)

(7)

主题:

服务故障恢复告警:{TRIGGER.STATUS}: {TRIGGER.NAME}

消息:

服务故障恢复告警:{TRIGGER.STATUS}: {TRIGGER.NAME}

告警主机:{HOST.NAME}

主机IP: {HOST.IP}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息:{TRIGGER.NAME}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID: {EVENT.ID}

(8)

3、给用户添加报警媒介:

(1)

(2)

"收件人"对应"钉钉告警"中的:{ALERT.SENDTO}

特别注意:这里只需要添加钉钉群里的任何一个成员的钉钉账号即可,即添加一个收件人,这样在机器人群里成员都能看到告警信息.

如果添加多个收件人,则机器人群里就会发送多个告警信息,一个收件人发一条信息.

(3)

2.5、报警测试(在zabbixServer服务器上进行测试):

1、监控nginx web服务:

(1)安装nginx:

[root@controlnode alertscripts]# yum install nginx -y

(2)修改端nginx端口号为8080(不然会和httpd的8080端口号重复):

[root@controlnode alertscripts]# vim /etc/nginx/nginx.conf

listen 8080 default_server;

listen [::]:8080 default_server;

(3)启动nginx并加入开机自启动:

[root@controlnode alertscripts]# systemctl start nginx

[root@controlnode alertscripts]# systemctl enable nginx

[root@controlnode alertscripts]# netstat -tunlp | grep 8080

2、创建web场景及web状态触发器:

(1)创建web场景:

1)

2)

3)

4)

5)

6)查看网站监控图形:

7)

8)

#网站的下载速度和网站的响应速度:

(2)添加web状态触发器:

上面第6步操作如下图:

3、创建tcp连接端口监控项及触发器:

(1)创建tcp连接端口监控项:

上面第6步骤选项如下:

(2)创建tcp连接端口监控项的触发器:

上面第6步骤选项如下:

4、查看触发器状态:

5、nginx web 服务停止告警:
(1)停止nginx服务:

[root@controlnode alertscripts]# systemctl stop nginx

(2)服务故障告警信息:

6、nginx web 服务恢复告警:

(1)启动nginx服务:

[root@controlnode alertscripts]# systemctl start nginx

(2)服务恢复告警信息:

Zabbix5.0钉钉报警(centos7)的更多相关文章

  1. linux(centos8):zabbix配置邮件报警(监控错误日志)(zabbix5.0)

    一,zabbix5.0发邮件报警的准备工作: zabbix5.0在linux平台上的安装:参见这一篇: https://www.cnblogs.com/architectforest/p/129125 ...

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

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

  3. Zabbix-4.0-设置钉钉报警脚本

    问题:当服务器发生报错时,有一个信息能实现自动发送到我的手机或者应用上,以达到对服务器的实时的监控与处理.邮件与短信不能满足实时性,于是想到了钉钉的通知. 思路:在钉钉里面建一个群,群里面拉个机器人. ...

  4. Zabbix5.0微信报警

    3.1.注测企业微信: 3.2.企业微信注册成功后进入后台管理: 3.3.添加一个部门,并记住部门id: #我这里添加的子部门ID为2 3.4.添加一个用户到上面创建的部门里面(这里采取直接将管理员添 ...

  5. 远见而明察近观若明火|Centos7.6环境基于Prometheus和Grafana结合钉钉机器人打造全时监控(预警)Docker容器服务系统

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_181 我们知道,奉行长期主义的网络公司,势必应在软件开发流程管理体系上具备规范意识,即代码提交有CR(CodeReview),功能 ...

  6. elk报警监控之sentinl 钉钉+邮件告警

    注:我的elk sentinl版本都是6.5.1 前期知识 es的查询语法.es watcher使用方法. https://www.cnblogs.com/pilihaotian/p/5830754. ...

  7. aws cloudwatch监控怎么通过钉钉机器人报警

    最近在完善海外业务在aws服务的CloudWatchh监控,发现CloudWatch报警通知要通过aws的sns服务,直接支持的通道有短信和邮件,但是我们想推到钉钉群里面的群机器人里面这个就要借助aw ...

  8. prometheus报警消息钉钉通知

    设置prometheus 的web hook 为对应服务: 报警的配置如下,设置了web hook url,报警就会把消息发给web hookurl,但是这里的数据格式和钉钉要求的格式不一样,所以后面 ...

  9. 使用python对mysql主从进行监控,并调用钉钉发送报警信息

    1.编写python的监控脚本 A.通过获取mysql库中的状态值来判断这个mysql主从状态是否正常 B.进行两个状态值的判断 C.进行调取钉钉机器人,发送消息 2.设置定时任务进行脚本运行 cro ...

随机推荐

  1. [bug] Window远程连接hdfs错误:java.lang.UnsatisfiedLinkError: org.apache.hadoop.util.NativeCrc32.nativeComput

    原因 hadoop.dll 版本问题 解决 查询远程主机中hadoop版本,下载相同或稍高版本的hadoop.dll,将下载的 hadoop.dll 复制到windows系统的c:/window/sy ...

  2. zabbix screen 图片以邮件形式发送

    zabbix screen 图片以邮件形式发送 #! /usr/bin/env python #coding=utf-8 # Andy_f import time,os import urllib i ...

  3. 10.12 telnet:远程登录主机

    telnet命令 以前是用于登录远程主机,对远程主机进行管理的.但是因为telnet是采用明文传送报文的,其安全性不好,因此现在很多Linux服务器都不开放telnet服务,而是改用更安全的SSH服务 ...

  4. Prometheus监控软件部署方法

    背景:负责基于区块链的某公正项目的状态上报模块设计编码,基于Prometheus进行二次开发 1.说明Prometheus 是一个开源的服务监控软件,它通过 HTTP 协议从远程机器收集数据并存储在本 ...

  5. 十一、.net core(.NET 6)搭建ElasticSearch(ES)系列之ElasticSearch、head-master、Kibana环境搭建

    搭建ElasticSearch+Kibana环境 前提条件:已经配置好JDK环境以及Nodejs环境.如果还未配置,请查看我的上一篇博客内容,有详细配置教程. 先下载ElasticSearch(以下文 ...

  6. Elasticserch与Elasticsearch_dsl用法

    Elasticserch与Elasticsearch_dsl用法 Elasticsearch_dsl::https://elasticsearch-dsl.readthedocs.io/en/late ...

  7. GO学习-(5) Go语言基础之基本数据类型

    Go语言中有丰富的数据类型,除了基本的整型.浮点型.布尔型.字符串外,还有数组.切片.结构体.函数.map.通道(channel)等.Go 语言的基本类型和其他语言大同小异. 基本数据类型 整型 整型 ...

  8. 如何使用TVM Pass红外线

    如何使用TVM Pass红外线 随着Relay / tir中优化遍数的增加,执行并手动维护其依赖关系变得很棘手.引入了一个基础结构来管理优化过程,将其应用于TVM堆栈中IR的不同层. Relay / ...

  9. TVM安装常用问题

    TVM安装常用问题 如何添加新的硬件后端 如果硬件后端支持LLVM,则可以通过设置正确的目标三元组来直接生成代码target. 如果目标硬件是GPU,请尝试使用cuda,opencl或vulkan后端 ...

  10. 10分钟内基于gpu的目标检测

    10分钟内基于gpu的目标检测 Object Detection on GPUs in 10 Minutes 目标检测仍然是自动驾驶和智能视频分析等应用的主要驱动力.目标检测应用程序需要使用大量数据集 ...