Flashduty Docs
中文EnglishRoadmapAPI官网控制台
中文EnglishRoadmapAPI官网控制台
  1. 告警集成
  • 快速开始
    • 入门介绍
    • 快速开始
    • 常见问题
    • 产品对比
  • 故障管理
    • 什么是故障
    • 检索与查看故障
    • 处理与更新故障
    • 升级与分派故障
    • 自定义字段
    • 自定义操作
    • 了解降噪过程
    • 了解历史故障
    • 了解新奇故障
  • 配置Flashduty
    • 协作空间管理
    • 多种方式接入告警
    • 配置路由规则
    • 配置标签增强
    • 配置告警降噪
    • 配置分派策略
    • 故障静默与抑制
    • 配置值班规则
    • 配置通知模板
    • 配置服务日历
    • 配置个人信息
    • 配置过滤条件
    • 通知机器人
    • 告警处理 pipeline
  • 平台功能
    • 团队和成员
    • 了解权限设计
    • 配置单点登录
    • 分析数据
  • 高级功能
    • 引用变量
    • 动态分派
  • 集成引导
    • 告警集成
      • 邮件 Email 集成指引
      • 夜莺 Flashcat 集成指引
      • Prometheus 集成指引
      • 标准告警事件集成指引
      • Grafana 集成指引
      • Zabbix 集成指引
      • Uptime Kuma 集成指引
      • 阿里云 ARMS 集成指引
      • 阿里云监控 CM 事件集成指引
      • 阿里云监控 CM 指标集成指引
      • 阿里云 SLS 集成指引
      • AWS CloudWatch 集成指引
      • Azure Monitor 集成指引
      • 百度云监控 BCM 集成指引
      • 华为云监控 CES 集成指引
      • 腾讯云 CLS 集成指引
      • 腾讯云监控 CM 集成指引
      • 腾讯云 Event Bridge 集成指引
      • Influxdata 集成指引
      • Open Falcon 集成指引
      • Pagerduty 集成指引
      • 蓝鲸智云集成指引
      • OceanBase 集成指引
      • Graylog 集成指引
      • Skywalking 集成指引
      • Sentry 集成指引
      • 监控宝告警集成指引
      • AWS EventBridge 集成指引
      • Dynatrace 集成指引
      • 华为云 LTS 集成指引
      • GoogleCloud 集成指引
      • Splunk 集成指引
      • AppDynamics 集成指引
      • SolarWinds 集成指引
      • 火山引擎CM 指标集成指引
      • 火山引擎CM 事件集成指引
      • 火山引擎日志服务 TLS 集成指引
      • Opmanager 告警事件
      • Meraki 告警事件
      • 天翼云告警集成
      • 观测云告警事件
      • zilliz 告警事件
      • 华为云 APM 告警事件
      • zstack 告警事件
      • Keep 告警集成指引
      • ElastAlert2 告警集成
    • 即时消息
      • 飞书 Lark 集成指引
      • 钉钉 Dingtalk 集成指引
      • 企业微信 Wecom 集成指引
      • Slack 集成指引
      • Microsoft Teams 集成指引
    • 单点登录
      • Authing 集成指引
      • Keycloak 集成指引
      • OpenLDAP 集成指引
    • Webhooks
      • 告警 webhook
      • 故障 webhook
      • 自定义操作
    • 变更集成
      • 标准变更事件集成指引
  • 服务协议
    • 服务条款
    • 用户协议/隐私政策
    • SLA承诺
    • 数据安全
  1. 告警集成

OceanBase 集成指引

通过 webhook 的方式同步OceanBase告警事件到 Flashduty,实现告警事件自动化降噪处理

在 Flashduty#


您可通过以下2种方式,获取一个集成推送地址,任选其一即可。

使用专属集成#

当您不需要将告警事件路由到不同的协作空间,优先选择此方式,更简单。
展开
1.
进入 Flashduty 控制台,选择 协作空间,进入某个空间的详情页面
2.
选择 集成数据 tab,点击 添加一个集成,进入添加集成页面
3.
选择 OceanBase 集成,点击 保存,生成卡片。
4.
点击生成的卡片,可以查看到 推送地址,复制备用,完成。

使用共享集成#

当您需要根据告警事件的 Payload 信息,将告警路由到不同的协作空间,优先选择此方式。
展开
1.
进入 Flashduty 控制台,选择 集成中心=>告警事件,进入集成选择页面。
2.
选择 OceanBase 集成:
集成名称:为当前集成定义一个名称。
3.
配置默认路由,并选择对应的协作空间(集成创建后可以前往 路由 进行更多路由规则的配置)。
4.
点击 保存 后,复制当前页面的新生成的 推送地址 备用。
5.
完成。

在 OceanBase#


一、OceanBase告警推送配置#

步骤1:配置告警通道#

1.
登录您的OceanBase控制台,选择告警中心。
2.
进入告警通道 ,单击新建通道按钮,开始新建。
3.
通道类型选择 自定义脚本 。
4.
基本配置内容,如下图所示:
drawing
5.
配置通道中复制以下脚本内容,同时请将脚本中的 integration_key 参数补充上 FlashDuty 推送地址中的 integration_key 值。
#!/usr/bin/env bash

function sendToFlashDuty() {
    URL="${address}/event/push/alert/standard?integration_key=${integration_key}"
    curl -s -X POST ${URL} -H 'Content-Type: application/json' -d '{
        "event_status": "'${alert_level}'",
        "alert_key": "'${alarm_id}'",
        "description": "'"${alarm_description//\"/\\\"}"'",
        "title_rule": "$app_types::$name::$alarm_targets",
        "event_time":'${timestamp}',
        "labels": {
            "app_types":"'${app_type}'",
            "id":"'${alarm_id}'",
            "name":"'${alarm_name}'",
            "alarm_level":"'${alarm_level}'",
            "alarm_status":"'${alarm_status}'",
            "alarm_active_at":"'${alarm_active_at}'",
            "alarm_threshold":"'${alarm_threshold}'",
            "alarm_type":"'${alarm_type}'",
            "alarm_targets":"'${alarm_target}'",
            "ob_cluster_group":"'${ob_cluster_group}'",
            "ob_cluster":"'${ob_cluster}'",
            "hostIP":"'${host_ip}'",
            "app_cluster":"'${app_cluster}'",
            "alarm_description":"'"${alarm_description//\"/\\\"}"'",
            "alarm_url":"'${alarm_url}'"
        }
    }'

    return $?
}

alarm_name=$(echo ${alarm_name} | sed  "s/ /_/g")
alarm_target=$(echo ${alarm_target} | sed  "s/ /_/g")

#使用告警更新时间作为告警产生时间
timestamp=$(TZ=UTC date -d "${alarm_updated_at}" +%s)

#OceanBase告警通知的状态和级别是中文,所以先转Md5,再做判断
levelMd5=$(echo ${alarm_level} | md5sum | awk '{print$1}')
statusMd5=$(echo ${alarm_status} | md5sum | awk '{print$1}')

#状态Md5
active="048d106318302b41372b4292b5696ad4"
Inactive="bf7da164d431439fe9668fbc964110c4"

#告警级别Md5
down="2e1558b0a152fae2dd15884561b1508d"
critical="59b9b38574ca2ee4f5e264b56f49a83f"
alert="723931b03a5d1cec59eac40cf0703580"   
caution="abf4d55ba8926eff32cb44065e634ed3"
info="6aae3f4254789d72aa0cc8ed55b8f11f"

address="https://api.flashcat.cloud"
integration_key=""

#将OceanBase的告警级别定义做转换
if [[ ${statusMd5} == ${Inactive} ]];then
    alert_level="Ok"
    timestamp=$(TZ=UTC date -d "${alarm_resolved_at}" +%s)
elif [[ ${statusMd5} == "${active}" ]];then
    if [[ ${levelMd5} == ${down} || ${levelMd5} == ${critical} ]];then
        alert_level="Critical"
    elif [[ ${levelMd5} == ${alert} ]];then
        alert_level="Warning"
    elif [[ ${levelMd5} == ${caution}  ||  ${levelMd5} == ${info} ]];then
        alert_level="Info"
    fi
fi

#只有状态是告警中或恢复告警才发通知,屏蔽或抑制的不发通知
if [[ ${statusMd5} == ${active} || ${statusMd5} == ${Inactive} ]];then
    sendToFlashDuty
fi
6.
Response 校验信息填写 {} 即可。
7.
消息配置中的告警消息格式选择 Markdown。
8.
告警消息模板 选择简体中文,并填写以下内容并提交。
OCP告警通知-单条告警
- 告警ID: ${alarm_id}
- 名称:${alarm_name}
- 级别:${alarm_level}
- 告警对象:${alarm_target}
- 服务: ${service}
- 概述:${alarm_summary}
- 生成时间:${alarm_active_at}
- 更新时间: ${alarm_updated_at}
- 恢复时间:${alarm_resolved_at}
- 详情:${alarm_description}
- 状态: ${alarm_status}
- 告警类型: ${alarm_type}
- 告警阈值: ${alarm_threshold}
- 集群组: ${ob_cluster_group}
- 集群: ${ob_cluster}
- 主机: ${host_ip}
- 应用集群: ${app_cluster}
- OCP链接:${alarm_url}

步骤2:配置告警推送#

1.
新建推送配置,路径:告警中心=>告警推送=>新建推送配置。
2.
推送类型、指定对象按需配置即可。
drawing
3.
推送语言选择 简体中文。
4.
告警通道选择 FlashDuty 。
5.
开启 恢复通知。
6.
提交。
drawing

二、状态对照#

OceanBaseFlashduty状态
停服Critical严重
严重Warning严重
警告Warning警告
注意Info提醒
提醒Info提醒

状态对照#


OceanBaseFlashduty状态
停服Critical严重
严重Warning严重
警告Warning警告
注意Info提醒
提醒Info提醒
修改于 2025-03-27 07:32:44
上一页
蓝鲸智云集成指引
下一页
Graylog 集成指引
Built with