观测云和 Slack 的集成实践

1. 前言

本文将说明如何在观测云上通过 DataFlux Func 和 Slack 做集成,能够把告警信息及时推送到 Slack 中显示告警相关信息。

1.1 关于 Slack

Slack 是一个流行的协作工具,它提供了一个集中的平台,让团队成员能够通过即时消息、文件共享、搜索和集成第三方服务来沟通和协作。以下是 Slack 的一些关键特点:

  • 即时消息:Slack 允许用户发送一对一或群组消息,支持文本、图片、视频和音频消息。
  • 频道:用户可以创建不同的频道来组织讨论,例如按项目、主题或部门分类。
  • 直接消息:用户可以与团队中的其他成员私下交流。
  • 文件共享:Slack 允许用户在对话中共享文件,包括文档、图片和视频。
  • 搜索功能:强大的搜索功能可以帮助用户快速找到过去的对话或文件。
  • 集成:Slack 可以与许多第三方服务集成,如 Google Drive、Trello、GitHub 等,使得工作流程更加无缝。
  • 自动化:通过使用 Slack 的 API 和机器人,用户可以创建自动化工作流程,例如自动发送消息或执行任务。
  • 安全性:Slack 提供了多种安全措施,包括数据加密、双因素认证等。
  • 移动和桌面应用:Slack 提供了 iOS 和 Android 的移动应用,以及适用于 Windows、macOS 和 Linux 的桌面应用。

总体来说,Slack 旨在提高团队的沟通效率,减少电子邮件的使用,并帮助团队成员更好地协作。它适用于各种规模的团队,从小型创业公司到大型企业。

1.2 观测云和 Slack

观测云可以配置和 Slack 的集成告警,当应用程序或服务出现问题时,自动向 Slack 发送通知。使得相关团队能够快速响应和解决问题。

2. 集成步骤说明

2.1 Slack 的配置说明

2.1.1 创建一个通知渠道

2.1.2 为渠道添加 Incoming WebHook 自定义应用

2.1.3 Incoming WebHook 的配置

在 Incoming Webhook 的配置中查看调用 WebHook 的 URL 和示例

创建完成后会看到如下信息

2.2 DataFlux Func 的配置说明

通过DataFlux Func 和 Slack 的通知渠道做集成。说明如下:

2.2.1 相关代码如下

python 复制代码
import requests
import json

events_url = "https://hooks.slack.com/services/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"

@DFF.API('Slack_Webhook_Proxy_API')
def create_slack_message(**event):
    try:
        if event:
            checker_name = event.get("df_monitor_checker_name")
            checker_value = event.get("df_monitor_checker_value")
            severity = event.get("df_status")
            label = event.get("df_label")
            event_link = event.get("df_event_link")
            workspace_name = event.get("df_workspace_name")
            ts = event.get("timestamp")
            headers = {"Content-Type": "application/json"}

            severity_icons = {
                "critical": ":fire:",
                "error": ":no_entry:",
                "warning": ":warning:",
                "ok": ":large_green_circle:"
            }

            color_list = {
                "critical": "#ff0000",
                "error": "#eb9b34",
                "warning": "#e5eb34",
                "ok": "#03fc14"
            }

            icon = severity_icons.get(severity)
            payload_colors = color_list.get(severity)

            severity = severity.upper()

            payload = {
                "attachments": [{
                      "color": f"{payload_colors}",
                      "author_name": f"{icon} {severity}",
                      "title": f"CF Alerts | {workspace_name} workspace",
                      "title_link": f"{event_link}",
                      "text": f"The {checker_name} monitor has triggered a {severity} alert (value: *{checker_value}*) in the {workspace_name} workspace.",
                      "footer": "Time",
                      "ts": f"{ts}"

                }]
            }

            print(payload)
            ## Post to Webhook
            res = requests.post(events_url, headers=headers, data=json.dumps(payload))
            print(res.status_code)

    except Exception as e:
        # 捕获HTTP错误
        print(f"错误发生: {e}")

在 DataFlux Func 中配置同步 API

通过示例查看 API 的调用地址和调用示例:

2.3 观测云上的配置

2.3.1 创建 Webhook 的通知对象

Webhook 的地址为 DataFlux Func 中的 API 调用地址。

2.3.2 创建告警策略

2.3.3 监控器设置

在告警策略中选择前面创建的 slack 策略。

3. 效果展示

当达到告警器阈值后,我们将在 Slack 中及时收到如下的告警信息:

同时,点击如下的链接后,会自动跳转到观测云的事件中查看告警详情。

至此,我们初步完成了观测云通过 DataFlux Func 和 Slack 的集成配置。

相关推荐
EasyNVR4 天前
NVR批量管理软件/平台EasyNVR多个NVR同时管理支持对接阿里云、腾讯云、天翼云、亚马逊S3云存储
大数据·音视频·监控·视频监控
LNTON羚通5 天前
摄像机视频分析软件下载LiteAIServer视频智能分析平台中的噪声监测算法及其应用场景
大数据·人工智能·目标检测·音视频·监控
LNTON羚通6 天前
利用摄像机实时接入分析平台LiteAIServer视频智能分析软件进行视频监控:过亮过暗检测算法详解
人工智能·算法·目标检测·音视频·监控
EasyNVR6 天前
NVR小程序接入平台/设备EasyNVR多个NVR同时管理视频监控新选择
大数据·网络·音视频·监控·视频监控
EasyNVR7 天前
NVR批量管理软件/平台EasyNVR多个NVR同时管理支持视频投放在电视墙上
大数据·网络·音视频·监控·视频监控
EasyNVR8 天前
NVR小程序接入平台/设备EasyNVR多个NVR同时管理多平台级联与上下级对接的高效应用
大数据·小程序·音视频·监控·视频监控
LNTON羚通8 天前
算法定制LiteAIServer视频智能分析平台裸土检测技术实现、应用场景与优势概览
大数据·算法·目标检测·音视频·监控
可观测性用观测云9 天前
通过观测云对接企业消息中心,实现定制化告警通知
监控
可观测性用观测云14 天前
Next Stack技术联盟成立:打造新一代基础软件技术栈
数据库·监控
EasyNVR18 天前
NVR批量管理软件/平台EasyNVR多个NVR同时管理级联到上级平台通道数量为什么显示不正确?
网络·音视频·监控·安防监控