华为云 WeLink 是华为推出的全场景数字化协同办公平台,旨在帮助企业实现高效、安全的在线协作。观测云则是专为 IT 工程师打造的全链路可观测性平台,具备完善的异常监测体系,能够对基础设施、应用程序及日志等各类数据进行实时监控,并在发现异常时自动触发告警。本文主要介绍如何将观测云的告警信息推送至 WeLink 的实现方式。
前置条件
配置 Webhook 机器人
点击群右上角的齿轮图表,弹出讨论组,在“讨论组管理”下面点击“群助手”。
点击“添加群助手”,再点击“创建”。
点击“去创建”。
输入名称后,点击“添加”。
保存 Webhook 后,点击“保存。
配置 Func
编写脚本
登录 Func,点击“开发”->“脚本库”->“新建脚本集”,输入 “webhook”,鼠标移到 webhook 上,点击“新建脚本”,输入“welink_prod”,编辑脚本,输入如下内容,最后点击“发布”。
import requestsimport jsonimport timeimport uuid
@DFF.API('自定义发送 weLink')def send_welink(**kwargs): token = _DFF_HTTP_REQUEST.get('query').get('token') title = kwargs.get('df_title','事件告警') messageJson = [kwargs.get('df_message','告警')] status = kwargs.get('df_status','info') msgStr = messageJson[0] url = kwargs.get('df_event_link') jumpHtml = url webhook_url = "https://open.welink.huaweicloud.com/api/werobot/v1/webhook/send" params = { "token": token, "channel": "standard" } # 请求头(Headers) headers = { "Content-Type": "application/json", # 必须指定 JSON 格式 "Accept": "application/json" }
# 请求体(Body),发送的消息内容 payload = { "messageType": "text", "content": { "text": msgStr + "\n\n" + jumpHtml # 消息内容 }, "timeStamp": int(time.time() * 1000), # 毫秒时间戳 "uuid": uuid.uuid4().hex # 32 位十六进制字符串 }
# 发送 POST 请求 response = requests.post( webhook_url, params=params, # URL 参数(token 和 channel) headers=headers, data=json.dumps(payload) # 将字典转为 JSON 字符串 ) # 打印响应 print("Status Code:", response.status_code) print("Response:", response.json())
复制代码
配置截图
配置函数
依次进入 Func 界面的“管理”->“函数 API”,点击“新建”,运行函数选择上步编写的脚本,点击“保存”。
在函数 API 界面,刚创建的函数行后面有个“示例”,点击后,复制“POST 简化形式(JSON)”里面的 url。
创建监控器
新建通知对象
登录观测云,进入“监控”->“通知对象管理”->“新建通知对象”,选择“webhook”,Webhook 地址中粘贴上步复制的 url,最后点击“确认”。
新建告警策略管理
进入“监控”->“告警策略管理”->“新建告警策略”,通知配置中按下图配置,最后点击“保存”。
进入“监控”->“监控器”->“从模版新建”,选择一个监控器,在告警配置中选择上步创建的告警策略。
效果展示
当监控器达到触发条件后,WeLink 收到告警。
总结
观测云借助 Func 功能,能够将告警信息实时推送至 WeLink,帮助用户第一时间掌握系统运行状态。该功能有效避免了因系统故障未能及时发现而可能引发的更大损失,进一步提升了运维效率与系统可靠性。
评论