Zabbix5.0钉钉报警(centos7)
  Y7E16PKamNB6 2023年11月02日 35 0

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

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


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

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

(1)

Zabbix5.0钉钉报警(centos7)_nginx


(2)

Zabbix5.0钉钉报警(centos7)_nginx_02


(3)

Zabbix5.0钉钉报警(centos7)_触发器_03


(4)

Zabbix5.0钉钉报警(centos7)_json_04


2、创建钉钉机器人:

(1)

Zabbix5.0钉钉报警(centos7)_nginx_05


(2)

Zabbix5.0钉钉报警(centos7)_触发器_06


(3)

Zabbix5.0钉钉报警(centos7)_json_07


(4)

Zabbix5.0钉钉报警(centos7)_触发器_08


(5)

Zabbix5.0钉钉报警(centos7)_触发器_09


(6)

Zabbix5.0钉钉报警(centos7)_json_10


(7)

Zabbix5.0钉钉报警(centos7)_nginx_11

点击“设置说明”可以查看钉钉服务端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:钉钉群中任意一个人员的钉钉号。

如何查看自己的钉钉号:

Zabbix5.0钉钉报警(centos7)_触发器_12


Zabbix5.0钉钉报警(centos7)_json_13


Zabbix5.0钉钉报警(centos7)_json_14

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

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

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

Zabbix5.0钉钉报警(centos7)_json_15


注意:该脚本要求至少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)钉钉群收到报警信息:

Zabbix5.0钉钉报警(centos7)_触发器_16


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

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

Zabbix5.0钉钉报警(centos7)_json_17


2.4、zabbix web 界面设置:

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

1、创建报警媒介:

(1)

Zabbix5.0钉钉报警(centos7)_触发器_18


(2)

脚本参数:

{ALERT.SENDTO}

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

{ALERT.SUBJECT}

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

{ALERT.MESSAGE}

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

Zabbix5.0钉钉报警(centos7)_触发器_19


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

(1)

Zabbix5.0钉钉报警(centos7)_触发器_20


(2)

Zabbix5.0钉钉报警(centos7)_nginx_21


(3)

Zabbix5.0钉钉报警(centos7)_json_22


(4)

Zabbix5.0钉钉报警(centos7)_json_23


(5)

1)

Zabbix5.0钉钉报警(centos7)_触发器_24

"主题"对应"钉钉告警"媒介中的:{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)

Zabbix5.0钉钉报警(centos7)_触发器_25


(7)

Zabbix5.0钉钉报警(centos7)_json_26

主题:

服务故障恢复告警:{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)

Zabbix5.0钉钉报警(centos7)_json_27


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

(1)

Zabbix5.0钉钉报警(centos7)_json_28


(2)

Zabbix5.0钉钉报警(centos7)_json_29

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

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

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


(3)

Zabbix5.0钉钉报警(centos7)_json_30


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

Zabbix5.0钉钉报警(centos7)_json_31


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

(1)创建web场景:

1)

Zabbix5.0钉钉报警(centos7)_nginx_32

2)

Zabbix5.0钉钉报警(centos7)_触发器_33

3)

Zabbix5.0钉钉报警(centos7)_nginx_34

4)

Zabbix5.0钉钉报警(centos7)_触发器_35


Zabbix5.0钉钉报警(centos7)_json_36

5)

Zabbix5.0钉钉报警(centos7)_nginx_37

6)查看网站监控图形:

Zabbix5.0钉钉报警(centos7)_触发器_38

7)

Zabbix5.0钉钉报警(centos7)_触发器_39

8)

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

Zabbix5.0钉钉报警(centos7)_json_40


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

Zabbix5.0钉钉报警(centos7)_触发器_41

上面第6步操作如下图:

Zabbix5.0钉钉报警(centos7)_触发器_42


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

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

Zabbix5.0钉钉报警(centos7)_nginx_43


Zabbix5.0钉钉报警(centos7)_触发器_44

上面第6步骤选项如下:

Zabbix5.0钉钉报警(centos7)_json_45


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

Zabbix5.0钉钉报警(centos7)_json_46

上面第6步骤选项如下:

Zabbix5.0钉钉报警(centos7)_触发器_47


4、查看触发器状态:

Zabbix5.0钉钉报警(centos7)_json_48


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

[root@controlnode alertscripts]# systemctl stop nginx


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

Zabbix5.0钉钉报警(centos7)_json_49


6、nginx web 服务恢复告警:

(1)启动nginx服务:

[root@controlnode alertscripts]# systemctl start nginx


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

Zabbix5.0钉钉报警(centos7)_json_50






【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

上一篇: GMM和KDE 下一篇: Debian常用操作
  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  sX9JkgY3DY86   2023年11月13日   32   0   0 jsonflutterUser
  4qhjRFG4A5JY   2023年11月13日   31   0   0 json开源组件yum源
  RumN13MdT8PI   2023年11月13日   36   0   0 源码编译nginx
  JDh7sMsPQI0Y   2023年11月13日   25   0   0 jsonSystem字符串
Y7E16PKamNB6