观测云告警对接华为 WeLink 最佳实践

    华为云 WeLink 是华为推出的全场景数字化协同办公平台,旨在帮助企业实现高效、安全的在线协作。观测云则是专为 IT 工程师打造的全链路可观测性平台,具备完善的异常监测体系,能够对基础设施、应用程序及日志等各类数据进行实时监控,并在发现异常时自动触发告警。本文主要介绍如何将观测云的告警信息推送至 WeLink 的实现方式。

    前置条件

    配置 Webhook 机器人

    点击群右上角的齿轮图表,弹出讨论组,在“讨论组管理”下面点击“群助手”。

    点击“添加群助手”,再点击“创建”。

    点击“去创建”。

    输入名称后,点击“添加”。

    保存 Webhook 后,点击“保存。

    配置 Func

    编写脚本

    登录 Func,点击“开发”->“脚本库”->“新建脚本集”,输入 “webhook”,鼠标移到 webhook 上,点击“新建脚本”,输入“welink_prod”,编辑脚本,输入如下内容,最后点击“发布”。

    import requests
    import json
    import time
    import 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,帮助用户第一时间掌握系统运行状态。该功能有效避免了因系统故障未能及时发现而可能引发的更大损失,进一步提升了运维效率与系统可靠性。

    联系我们

    加入社区

    微信扫码
    加入官方交流群

    立即体验

    在线开通,按量计费,真正的云服务!

    立即开始

    选择观测云版本

    代码托管平台