一
概述
告警通知对企业至关重要,直接影响网络稳定性。借助飞书集成平台,可以轻松将Zabbix与飞书进行对接,灵活地配置各种告警通知。
在日常工作中,IT 运维人员需要及时收到和处理各种 IT 系统的告警信息,以保证系统稳定运行。在 Zabbix 监控系统中,用户可以通过配置将告警信息发送到飞书群中,以便快速处理。在本文中,我们将介绍如何将 Zabbix 告警信息处理成消息卡片,并发送到聊天消息中。
这个流程有如下步骤
01
Zabbix触发器:接收Zabbix的回调信息,触发工作流运行。
02
解析回调信息:解析Zabbix回调的信息,包括转换数据格式、信息拼接等。
03
分支:判断当前消息的类型。
04
组装告警卡片:组装发送消息卡片的数据。
05
发送告警消息:发送告警消息卡片到指定的群中。
06
组装恢复卡片:组装发送消息卡片的数据。
07
发送恢复消息:发送恢复消息卡片到指定的群中。
二
操作步骤
前置准备
一、在Zabbix系统中配置飞书媒介类型并关联用户与动作
1.下载飞书的Zabbix媒介类型
下载地址:zbx_export_mediatype_feishu.xml
2. 在Zabbix中导入该媒介类型
在Zabbix控制台,选择管理 > 报警媒介,然后导入该媒介类型。导入规则选择“更新现有的”和“创建新的”。
3.配置支持飞书媒介类型的用户
在Zabbix系统中每个用户支持的媒介类型需要单独配置,因此必须要配置支持飞书媒介类型的用户。我们建议每一个接收告警信息的群都和Zabbix系统中的用户一一对应。
在管理 》 用户页面, 选择已有用户编辑或者新建用户页面,选择报警媒介页面,类型选择“Feishu”,收件人填入飞书的回调地址。
注意:所选用户必须有告警主机的权限, 否则告警信息是无法发送给该用户的。权限可以在用户群组中进行管理。
回调地址可以点击工作流中的 Zabbix 节点,在右侧 设置 页面可见回调地址。
4.修改Action配置
在配置 》 动作中选择需要发送给目标群的action进行修改,选择action,在操作页面添加发送对象(操作、恢复操作、更新操作都可以配置,可以按照实际情况及需求进行配置)。发送的用户选择上一步创建的用户,“仅送到” 选择飞书。
注意:动作需要是启用状态且条件不能为空。
注意:zabbix 版本需要是5.0及以上 才支持导入媒介类型。
二、在群聊中添加发送消息的机器人
前往待发送同步信息的飞书群,添加自建机器人应用(如果还没有创建机器人,则可以完成下面的“逐步细分”后再进行此步骤操作),并在群管理设置中“谁可以在此群发言”设置为“所有群成员”(需群管理员权限)。
逐步细分
一、配置Zabbix应用凭证
点击工作流中的 Zabbix 节点,在右侧 凭证 页面配置新建/选择已有的“Zabbix应用授权”凭证,下文以“新建”为例:
新建应用凭证时,填入必填项后,点击 创建并连接。
注意:如果仅使用该模版,ApiToken和Zabbix域名可以设置为任意值并创建连接都可以生效。
其中ApiToken是在Zabbix控制台 》用户设置》 API Token创建,如下图:
Zabbix域名填入的是不需要携带页面路径参数,且 公网可以访问 的URL地址。例如仪表盘地址为https://example.com/zabbix/zabbix.php?action=dashboard.view,那么填入的地址为: https://example.com/zabbix/
二、配置Zabbix URL
点击 解析回调信息 节点右侧的 入参 ,在zabbix_url 中填入Zabbix系统基础的URL,具体获取方法见上一步的描述。
三、配置飞书系应用的凭证
点击 发送告警信息 节点右侧的 凭证,新建/选择已有的“飞书应用授权”凭证,下文以“新建”为例:
a. 点击 新建应用凭证,并在凭证创建页面点击 新建飞书应用。
注:通过集成平台创建的飞书应用会自动提交发布申请,应用发布审核未通过时工作流运行会报错。
b.将创建的“飞书应用授权”凭证,批量更新到剩余的“飞书系”连接器节点。
c. 选择好凭证后,如果该凭证需要额外申请权限,可在下提示信息中点击 配置应用凭证 ,一键提交配置申请。
四、配置飞书群ID
分别点击 发送告警信息/发送恢复消息 节点右侧的 入参,在 接收者id 字段填入需要接收信息的群id(群id的获取方式参考群 ID 说明 - 服务端 API - 开发文档 - 飞书开放平台)。
五、发布集成流
完成工作流编辑后,点击 发布,该工作流则变为生效状态。
常见问题
一、如何将不同的告警发送到不同的飞书群中?
方式一:在飞书集成平台创建多个集成流, 每个集成流的回调地址都不同。然后在Zabbix系统中创建多个用户,每个用户指定一个不同的回调地址即可。
方式二:在飞书集成平台中引入判断逻辑,通过入参不同进行判断,发送到不同的消息群中。
二、如何在消息卡片中增加交互式操作?
如果需要增加交互式操作,首先需要新建一个交互式卡片,并增加交互操作(卡片介绍参考 消息卡片概述 - 开发指南 - 开发文档 - 飞书开放平台及交互模块 - 开发指南 - 开发文档 - 飞书开放平台)。
完成交互卡片开发后,把当前工作流中的消息卡片替换掉。
三、如何把消息卡片中的操作记录到多维表格中?
可以参考模版 消息卡片交互触发更新卡片内容 处理消息卡片的回调逻辑并做适当的调整。
四、如何定制告警卡片中的告警信息内容?
方式一:当前告警卡片中的告警信息取自Zabbix预置的宏{ALTER.MESSAGE},该信息支持用户在Zabbix的媒介及Action中进行定制。
在Feishu的媒介类型进入Message templates中编辑消息内容,如下图所示。
在action配置中选择具体的配置,选定操作,在操作细节中选择自定义消息内容,可以按照需求进行定制。
方式二:通过工作流中的JavaScript脚本能力进行定制化处理,可以在工作流中选择 解析回调信息 节点,在入参页面,选择 编辑JavaScript Code进入编辑,按照自己的逻辑进行处理。
五、为什么告警消息没有发送到飞书
首先可以在zabbix的控制台的报表》动作日志中查看是否有相关发送给飞书的日志(如下图)。
如果没有任何相关的日志,则大概率是配置不正确。首先检查告警的人员或者群组是否有对应的主机和主机组的权限、其次按照上面的步骤再检查一遍。
如果存在日志,并显示错误则可以按照错误提示原因进行排查,常见的问题有:Zabbix主机无法访问公网等。
如果存在日志并且日志为已送达,则可以在Anycross的运行日志中进行排查,常见的问题有:应用凭证配置错误、群ID配置错误等。如何处理可以参考前面的步骤检查一遍。
六、如何修改通知卡片的标题
进入工作流的编辑模式,在 组装报警卡片 和 组装恢复卡片 找到event_name参数,对该参数进行调整即可。