alarm-settings.yml 完整配置模板(适用于 SkyWalking 9.x, 支持 钉钉/飞书/企业微信/Webhook 告警)

下面是一份 完整、实用、生产可用的 alarm-settings.yml 配置模板,适用于 SkyWalking 9.x 版本(如 9.7.0),涵盖了服务、实例、端点、数据库等常见监控场景,并支持 钉钉/飞书/企业微信/Webhook 告警


🚨 alarm-settings.yml 完整配置模板(适用于 SkyWalking 9.x)

✅ 说明:此文件应放置在 SkyWalking OAP Server 的 config/ 目录下,OAP 启动时自动加载。

# alarm-settings.yml
# SkyWalking 告警规则配置文件
# 支持服务、服务实例、端点、数据库等维度的指标监控

rules:
  # ========================================================================
  # 1. 服务级别告警
  # ========================================================================

  # 服务响应时间过高(P99 > 1秒 持续10分钟)
  service_resp_time_rule:
    metrics-name: service_resp_time
    op: ">"
    threshold: 1000  # 毫秒
    period: 10      # 统计周期(分钟)
    count: 3        # 连续3个周期触发
    silence-period: 5  # 静默期(分钟),避免重复告警
    message: "⚠️ 服务响应超时\n📌 服务: {name}\n📊 当前P99: {value}ms\n🕒 发生时间: {startTime}"

  # 服务错误率过高(SLA < 95%)
  service_sla_rule:
    metrics-name: service_sla
    op: "<"
    threshold: 95.0  # 成功率低于95%
    period: 10
    count: 3
    silence-period: 5
    message: "❌ 服务错误率过高\n📌 服务: {name}\n📊 成功率: {value}%\n📉 触发阈值: <95%\n🕒 发生时间: {startTime}"

  # 服务吞吐量突降(QPS < 10,且之前有流量)
  service_qps_drop_rule:
    metrics-name: service_cpm  # Calls Per Minute
    op: "<"
    threshold: 10
    period: 10
    count: 3
    silence-period: 10
    message: "📉 服务流量异常下降\n📌 服务: {name}\n📊 当前QPS: {value}\n🕒 发生时间: {startTime}\n💡 可能服务宕机或路由异常"

  # ========================================================================
  # 2. 服务实例级别告警
  # ========================================================================

  # 实例响应时间过高
  instance_resp_time_rule:
    metrics-name: instance_resp_time
    op: ">"
    threshold: 1200
    period: 10
    count: 3
    silence-period: 5
    message: "🔥 实例响应慢\n📌 服务: {name}\n📊 P99: {value}ms\n🕒 发生时间: {startTime}"

  # 实例JVM内存使用率过高(老年代 > 90%)
  instance_jvm_memory_rule:
    metrics-name: jvm_memory_old_usage  # 老年代使用率(百分比)
    op: ">"
    threshold: 90.0
    period: 10
    count: 3
    silence-period: 15
    message: "MemoryWarning! JVM老年代内存过高\n📌 服务: {name}\n📊 使用率: {value}%\n🕒 发生时间: {startTime}\n💡 建议检查内存泄漏"

  # 实例GC频繁(Full GC 次数/分钟 > 5)
  instance_jvm_gc_count_rule:
    metrics-name: jvm_gc_count
    op: ">"
    threshold: 5
    period: 1
    count: 3
    silence-period: 10
    message: "'gc' JVM GC频繁\n📌 服务: {name}\n📊 Full GC次数/分钟: {value}\n🕒 发生时间: {startTime}\n💡 可能存在内存压力"

  # ========================================================================
  # 3. 端点(Endpoint)级别告警
  # ========================================================================

  # 某个关键接口响应时间过高
  endpoint_resp_time_rule:
    metrics-name: endpoint_avg
    op: ">"
    threshold: 2000  # 2秒
    period: 5
    count: 3
    silence-period: 5
    message: "🐌 关键接口超时\n📌 接口: {name}\n📊 平均耗时: {value}ms\n🕒 发生时间: {startTime}"

  # 端点错误率过高
  endpoint_sla_rule:
    metrics-name: endpoint_sla
    op: "<"
    threshold: 90.0
    period: 5
    count: 3
    silence-period: 5
    message: "💥 接口错误率过高\n📌 接口: {name}\n📊 成功率: {value}%\n🕒 发生时间: {startTime}"

  # ========================================================================
  # 4. 数据库相关告警
  # ========================================================================

  # 数据库访问响应时间过高
  database_access_rule:
    metrics-name: database_access_resp_time
    op: ">"
    threshold: 800
    period: 10
    count: 3
    silence-period: 10
    message: "🗄️ 数据库访问变慢\n📌 DB实例: {name}\n📊 响应时间: {value}ms\n🕒 发生时间: {startTime}"

  # 数据库连接池使用率过高
  database_pool_usage_rule:
    metrics-name: database_connection_usage
    op: ">"
    threshold: 90.0
    period: 5
    count: 3
    silence-period: 10
    message: "🔌 数据库连接池紧张\n📌 DB: {name}\n📊 使用率: {value}%\n🕒 发生时间: {startTime}\n💡 建议扩容或优化连接"

# ========================================================================
# 通知渠道配置
# ========================================================================

# Webhook(支持钉钉、飞书、企业微信等)
webhooks:
  # 钉钉机器人(需设置安全令牌)
  - https://oapi.dingtalk.com/robot/send?access_token=your-dingtalk-token-here

  # 飞书机器人
  - https://open.feishu.cn/open-apis/bot/v2/hook/your-feishu-token

  # 企业微信机器人
  - https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=your-wechat-work-key

  # 自定义告警中心(如 Prometheus Alertmanager)
  # - http://alert-center.internal/api/v1/alerts

# ========================================================================
# Email 告警(可选)
# 需要启用 email 插件
# ========================================================================
# email:
#   smtp-host: smtp.example.com
#   smtp-port: 587
#   username: alert@example.com
#   password: your-app-password
#   from: alert@example.com
#   to: devops@example.com, team-leader@example.com
#   cc: sre-team@example.com

# ========================================================================
# gRPC 告警(高级用法,用于对接自定义系统)
# ========================================================================
# grpc:
#   target: alarm-receiver.internal:9876
#   authority: alarm-receiver.internal

📌 配置说明与最佳实践

1. 常用指标名称(metrics-name)

指标说明
service_resp_time服务P99响应时间(ms)
service_sla服务成功率(%)
service_cpm每分钟调用次数
instance_resp_time实例P99响应时间
jvm_memory_old_usageJVM老年代使用率(%)
jvm_gc_countFull GC次数/分钟
endpoint_avg端点平均响应时间
database_access_resp_time数据库访问P99耗时
database_connection_usage数据库连接池使用率

🔍 查看所有可用指标:进入 SkyWalking UI → Metrics Browser


2. 关键参数解释

参数说明
op比较操作符:>, <, =
threshold阈值(数值)
period统计周期(单位:分钟)
count连续多少个周期满足条件才触发告警
silence-period告警触发后,相同问题的静默时间(分钟)
message支持的变量:{name}, {value}, {startTime}, {endpoint}

3. Webhook 消息格式(以钉钉为例)

SkyWalking 会自动发送 JSON 到 Webhook:

{
  "msgtype": "text",
  "text": {
    "content": "⚠️ 服务响应超时\n📌 服务: order-service\n📊 当前P99: 1250ms\n🕒 发生时间: 2025-04-05 14:30:00"
  }
}

✅ 钉钉机器人需设置“自定义关键词”或“加签”安全策略。


4. 生产环境建议

项目建议
🎯 告警分级CRITICAL / WARN,不同等级通知不同人
🔕 静默期设置合理静默期,避免刷屏
📊 分环境配置dev / test / prod 使用不同阈值或关闭部分告警
🧩 结合运维流程告警 → 工单系统 → 自动升级机制
📅 定期回顾每月 review 无效告警,优化规则

✅ 如何验证告警是否生效?

  1. 启动 OAP Server
  2. 查看日志:logs/skywalking-oap.log
    • 应看到:Alarm rules loaded 加载成功
  3. 制造异常:
    • 写一个接口 Thread.sleep(2000)
    • 调用多次触发 endpoint_resp_time_rule
  4. 检查是否收到钉钉/飞书消息

📦 文件保存路径

skywalking-oap-server/
├── config/
│   └── alarm-settings.yml   ← 放在这里
├── bin/
└── libs/

⚠️ 修改后需重启 OAP Server 生效(v9.x 不支持热加载)


🎁 附件:钉钉机器人配置指南

  1. 在群聊中添加“自定义机器人”
  2. 设置安全策略:加签(推荐)
  3. 复制 Webhook 地址:
    https://oapi.dingtalk.com/robot/send?access_token=xxx&timestamp=xxx&sign=xxx
    
  4. 填入 webhooks 列表
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值