22

Zabbix 对接飞书实现带图片的报警通知

 4 years ago
source link: https://mp.weixin.qq.com/s/fV4R2jKy9Q35MvK0AkKsKg
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

作者简介

7JZVreB.jpg!web

Wanger,Zabbix运维工程师,熟悉Zabbix开源监控系统的架构,乐于分享Zabbix运维经验,个人公众号“没有故事的陈师傅”

擅长领域:Zabbix基础设施运维以及Zabbix图形化展示

飞书提供了丰富的api来实现消息的通知,包括文本消息、图片消息、富文本消息,本次介 绍使用飞书api发送富文本消息,以下是实现思路。

飞书API地址:

https://open.feishu.cn/document/ukTMukTMukTM/uITNz4iM1MjLyUzM 

实现思路

1.根据正则获取监控项id,需要在动作中定义报警信息

2.根据获取的监控项id构造请求获取图片地址,并下载到本地

3.获取认证凭证,需要获取三个授权凭证

  • app_access_token :访问App资源相关接口。

  • tenant_access_token :访问企业资源相关接口。

  • user_access_token :访问用户资源相关接口。

4.根据zabbix报警的收信人手机号获取user_id,用于后面在群里@相关负责人,或者直接发给某个责任人

5.chat_id用于发送给指定的群,这里我提供两种方法获取chat_id,后面会介绍

6.上传本地图片到飞书,并获取image_key,image_key用于发送图片信息

7.传入zabbix报警消息,并艾特相关负责人发送到飞书群里或者个人

获取itemID

利用正则匹配报警信息中的itemID

RBbm6vb.png!web

获取报警图片地址

根据传入的itemID,构造请求下载报警图片,并保存到本地

JNzaMbB.png!web

rIjq22M.png!web

22eEB3J.png!web

获取授权凭证

1.获取 App ID 和 App Secret

登录开发者后台,在“我的应用”页面创建企业自建应用。进入企业自建应用详情页,获取 App ID和App Secret。

BNvYru2.png!web

2.获取 tenant_access_token 

一种方法是通过企业自建应用方式获取,另一种是通过应用商店应用获取,这里我使用第一 种方法,直接创建应用即可

2INNj2A.png!web

3.创建完应用后可根据APP ID和 App Secret构造请求获取 

6zuANnm.png!web

获取user_id 

user_id可以根据注册的手机号或邮箱获取,可以在zabbix中定义用户的手机号,然后传入 参数获取user_id

vqYNrij.png!web

获取chat_id 

这里我提供两种方法获取chat_id,一种是将机器人加入到群里,获取群信息中的chat_id;另一种是通过机器人创建群聊获取群信息,当然还有其他的方法,这里我就不过多介绍了, 我将使用第一种方法来获取chat_id

首先将机器人加入到群聊

yuIvMrm.png!web

构造请求获取chat_id 

neaMvmy.png!web

通过api向飞书上传报警图片

通过上传报警图片,会获取到一个image_key,用于发送富文本消息的图片信息

qMFjU3Z.png!web

JjMnumA.png!web

向飞书群里或者飞书用户发送消息 

这里需要四个参数,分别是user_id、chat_id、tenant_access_token和image_key,并传 入报警信息即可发送

URFB7vj.png!web

EbiIrmm.png!web

在ZABBIX上配置报警动作及接收人 

配置报警媒介类型 

注意参数顺序不能乱

r26Rz2n.png!web

配置用户的接收信息 

也就是用户注册飞书的手机号

iiaqieN.png!web

配置动作

f6zmqaE.png!web

报警测试

这里我禁掉了其中一台windows的agent进行测试

zyeIbqI.jpg!web

完整代码可访问

https://github.com/sunsharing-note/zabbix/blob/master/feishu_img.py

U32InaF.png!web

欢迎投稿

内容

与运维、Zabbix相关即可

方式

私信小Z(微信&电话 17502189550)

关于投稿专栏

主要为大家提供一个展现自己的平台,作者观点不等同社区观点, 欢迎读者在评论区留言讨论

奖励制度

投稿可以获得Z积分*2

每月评选,阅读量TOP3可获得积分9/6/3分

ps:公众号回复【积分】,有惊喜

2QJFbuv.png!web

联系我们

电话:17502189550(微信同号)

邮箱:[email protected]

网站:www.zabbix.com/cn  www.grandage.cn

一键关注

关注公众号

加入社区群

2AveuiF.jpg!web

YVZz2ev.jpg!web

Zabbix社区,因你而更美好


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK