Skip to content

OceanBase 告警阈值配置

核心告警阈值配置

1. 系统资源告警阈值

CPU 使用率告警

告警级别阈值建议监控对象说明
紧急告警> 95% 持续 5 分钟节点 CPU 使用率CPU 使用率过高,可能影响系统性能
重要告警> 85% 持续 10 分钟节点 CPU 使用率CPU 使用率较高,需要关注
一般告警> 75% 持续 15 分钟节点 CPU 使用率CPU 使用率上升,需要监控

配置示例

sql
-- 设置 CPU 使用率告警阈值
ALTER ALARM RULE cpu_usage_high SET threshold = 85, duration = 600, level = 'IMPORTANT';

内存使用率告警

告警级别阈值建议监控对象说明
紧急告警> 95% 持续 5 分钟节点内存使用率内存使用率过高,可能导致 OOM
重要告警> 85% 持续 10 分钟节点内存使用率内存使用率较高,需要关注
一般告警> 75% 持续 15 分钟节点内存使用率内存使用率上升,需要监控

配置示例

sql
-- 设置内存使用率告警阈值
ALTER ALARM RULE mem_usage_high SET threshold = 85, duration = 600, level = 'IMPORTANT';

磁盘 I/O 告警

告警级别阈值建议监控对象说明
紧急告警> 95% 持续 5 分钟磁盘 I/O 使用率磁盘 I/O 饱和,可能影响系统性能
重要告警> 85% 持续 10 分钟磁盘 I/O 使用率磁盘 I/O 使用率较高,需要关注
一般告警> 75% 持续 15 分钟磁盘 I/O 使用率磁盘 I/O 使用率上升,需要监控

配置示例

sql
-- 设置磁盘 I/O 使用率告警阈值
ALTER ALARM RULE disk_io_high SET threshold = 85, duration = 600, level = 'IMPORTANT';

磁盘空间告警

告警级别阈值建议监控对象说明
紧急告警< 5% 可用空间数据盘可用空间磁盘空间不足,可能导致写入失败
重要告警< 10% 可用空间数据盘可用空间磁盘空间紧张,需要扩容
一般告警< 20% 可用空间数据盘可用空间磁盘空间下降,需要监控

配置示例

sql
-- 设置磁盘空间告警阈值
ALTER ALARM RULE disk_space_low SET threshold = 10, duration = 300, level = 'IMPORTANT';

2. 数据库性能告警阈值

QPS/TPS 告警

告警级别阈值建议监控对象说明
紧急告警超过历史峰值 120% 持续 5 分钟租户 QPS/TPS业务量突增,可能导致系统过载
重要告警超过历史峰值 110% 持续 10 分钟租户 QPS/TPS业务量上升,需要关注
一般告警超过历史峰值 100% 持续 15 分钟租户 QPS/TPS业务量接近峰值,需要监控

配置示例

sql
-- 设置 TPS 告警阈值
ALTER ALARM RULE tps_high SET threshold = 10000, duration = 600, level = 'IMPORTANT';

响应时间告警

告警级别阈值建议监控对象说明
紧急告警> 500ms 持续 5 分钟SQL 平均响应时间响应时间过长,影响用户体验
重要告警> 300ms 持续 10 分钟SQL 平均响应时间响应时间较长,需要优化
一般告警> 200ms 持续 15 分钟SQL 平均响应时间响应时间上升,需要监控

配置示例

sql
-- 设置响应时间告警阈值
ALTER ALARM RULE response_time_high SET threshold = 300, duration = 600, level = 'IMPORTANT';

慢查询告警

告警级别阈值建议监控对象说明
紧急告警> 100 条/分钟慢查询数量慢查询数量突增,需要立即优化
重要告警> 50 条/分钟慢查询数量慢查询数量较多,需要优化
一般告警> 20 条/分钟慢查询数量慢查询数量上升,需要监控

配置示例

sql
-- 设置慢查询告警阈值
ALTER ALARM RULE slow_query_high SET threshold = 50, duration = 60, level = 'IMPORTANT';

3. 数据库状态告警阈值

节点状态告警

告警级别阈值建议监控对象说明
紧急告警节点状态为 DOWN节点状态节点宕机,需要立即处理
重要告警节点状态为 UNKNOWN 持续 1 分钟节点状态节点状态异常,需要检查
一般告警节点状态为 DEGRADED 持续 5 分钟节点状态节点性能下降,需要关注

配置示例

sql
-- 设置节点状态告警
ALTER ALARM RULE server_down SET condition = 'status = "DOWN"', level = 'EMERGENCY';

副本状态告警

告警级别阈值建议监控对象说明
紧急告警副本状态为 INACTIVE 持续 1 分钟副本状态副本不可用,影响数据一致性
重要告警副本状态为 SYNCING 持续 5 分钟副本状态副本同步延迟,需要关注
一般告警副本同步延迟 > 30s副本同步延迟副本同步延迟,需要监控

配置示例

sql
-- 设置副本状态告警
ALTER ALARM RULE replica_inactive SET condition = 'status = "INACTIVE" AND duration > 60', level = 'EMERGENCY';

连接数告警

告警级别阈值建议监控对象说明
紧急告警> 95% 连接数限制租户连接数连接数接近上限,可能导致无法建立新连接
重要告警> 85% 连接数限制租户连接数连接数较高,需要关注
一般告警> 75% 连接数限制租户连接数连接数上升,需要监控

配置示例

sql
-- 设置连接数告警阈值
ALTER ALARM RULE connection_high SET threshold = 85, duration = 600, level = 'IMPORTANT';

告警阈值配置方法

1. OCP 告警配置

登录 OCP 控制台

  • 访问 OCP 管理界面
  • 进入「监控与告警」->「告警规则」
  • 选择要配置的告警规则

调整告警阈值

  • 修改阈值数值
  • 设置持续时间
  • 调整告警级别
  • 保存配置

2. 命令行告警配置

使用 SQL 语句配置

sql
-- 创建告警规则
CREATE ALARM RULE cpu_usage_high
  ON SERVER
  METRIC cpu_usage
  THRESHOLD > 85
  DURATION 600
  LEVEL IMPORTANT
  DESCRIPTION 'CPU 使用率过高';

-- 修改告警规则
ALTER ALARM RULE cpu_usage_high
  SET threshold = 90,
      duration = 300,
      level = 'EMERGENCY';

-- 删除告警规则
DROP ALARM RULE cpu_usage_high;

-- 查看告警规则
SELECT * FROM oceanbase.DBA_OB_ALARM_RULES;

使用系统变量配置

sql
-- 设置慢查询阈值
ALTER SYSTEM SET slow_query_time = 1000000; -- 单位:微秒

-- 设置长事务阈值
ALTER SYSTEM SET long_trans_threshold = 60000000; -- 单位:微秒

-- 设置连接数限制
ALTER TENANT tenant1 SET max_connections = 10000;

3. 第三方监控工具配置

Prometheus + Grafana 配置

  1. 配置 Prometheus 告警规则

    yaml
    groups:
    - name: oceanbase-alerts
      rules:
      - alert: HighCPUUsage
        expr: oceanbase_cpu_usage > 85
        for: 10m
        labels:
          severity: warning
        annotations:
          summary: "High CPU usage on {{ $labels.instance }}"
          description: "CPU usage is above 85% for 10 minutes"
  2. 配置 Grafana 告警

    • 进入 Grafana 界面
    • 选择仪表盘
    • 编辑面板,添加告警
    • 设置阈值和持续时间
    • 配置告警通知

告警阈值优化最佳实践

1. 基于业务场景调整

核心业务与非核心业务

  • 核心业务:阈值更严格,告警级别更高
  • 非核心业务:阈值相对宽松,告警级别较低

不同时间段

  • 业务高峰期:阈值相对宽松
  • 业务低峰期:阈值相对严格

2. 基于历史数据调整

分析历史数据

  • 收集并分析历史监控数据
  • 了解系统正常运行范围
  • 确定合理的告警阈值

使用动态阈值

  • 根据历史数据自动调整阈值
  • 适应业务量变化
  • 减少误告警

3. 避免告警风暴

设置合理的持续时间

  • 避免瞬时峰值触发告警
  • 设置适当的持续时间
  • 减少误告警

告警抑制

  • 高优先级告警触发时,抑制相关低优先级告警
  • 避免同一问题产生多条告警
  • 提高告警有效性

告警聚合

  • 将相关告警聚合为一条告警
  • 减少告警数量
  • 便于问题定位

4. 定期审查和调整

定期审查告警规则

  • 每季度审查一次告警规则
  • 根据业务变化调整阈值
  • 移除不再适用的告警规则

优化告警内容

  • 告警信息要清晰明确
  • 包含必要的上下文信息
  • 提供处理建议

告警阈值配置案例

案例一:核心业务告警阈值配置

业务特点

  • 核心交易系统
  • 要求高可用性
  • 高峰期 QPS 可达 10 万

告警阈值配置建议

监控指标紧急告警重要告警一般告警
CPU 使用率> 95% 持续 3 分钟> 85% 持续 5 分钟> 75% 持续 10 分钟
内存使用率> 95% 持续 3 分钟> 85% 持续 5 分钟> 75% 持续 10 分钟
TPS> 12 万持续 5 分钟> 11 万持续 10 分钟> 10 万持续 15 分钟
响应时间> 500ms 持续 3 分钟> 300ms 持续 5 分钟> 200ms 持续 10 分钟
慢查询> 100 条/分钟> 50 条/分钟> 20 条/分钟
连接数> 90% 限制> 80% 限制> 70% 限制

案例二:非核心业务告警阈值配置

业务特点

  • 数据分析系统
  • 对延迟不敏感
  • 高峰期 QPS 可达 1 万

告警阈值配置建议

监控指标紧急告警重要告警一般告警
CPU 使用率> 98% 持续 5 分钟> 90% 持续 10 分钟> 80% 持续 15 分钟
内存使用率> 98% 持续 5 分钟> 90% 持续 10 分钟> 80% 持续 15 分钟
TPS> 1.5 万持续 10 分钟> 1.2 万持续 15 分钟> 1 万持续 20 分钟
响应时间> 1000ms 持续 5 分钟> 500ms 持续 10 分钟> 300ms 持续 15 分钟
慢查询> 200 条/分钟> 100 条/分钟> 50 条/分钟
连接数> 95% 限制> 85% 限制> 75% 限制

告警阈值管理

1. 告警阈值生命周期管理

告警阈值创建

  • 根据业务需求创建告警规则
  • 设置合理的阈值和持续时间
  • 配置适当的告警级别

告警阈值运行

  • 监控告警触发情况
  • 分析告警有效性
  • 调整阈值和持续时间

告警阈值优化

  • 根据业务变化优化告警规则
  • 移除不再适用的告警规则
  • 新增必要的告警规则

2. 告警阈值文档化

建立告警阈值文档

  • 记录所有告警规则
  • 说明告警阈值的设置原因
  • 提供处理建议

定期更新文档

  • 当告警规则变更时,及时更新文档
  • 确保文档与实际配置一致
  • 便于新运维人员了解

3. 告警响应流程

告警接收

  • 配置多种告警通知方式
  • 确保告警及时送达
  • 建立告警接收责任制

告警处理

  • 制定告警处理 SOP
  • 明确不同级别告警的处理流程
  • 记录告警处理过程

告警复盘

  • 定期对告警进行复盘
  • 分析告警原因和处理效果
  • 优化告警规则和处理流程

常见告警阈值问题及解决方案

1. 告警风暴问题

问题描述

  • 短时间内产生大量告警
  • 运维人员无法及时处理
  • 可能导致重要告警被忽略

解决方案

  • 设置合理的持续时间
  • 配置告警抑制和聚合
  • 调整告警阈值
  • 优化监控策略

2. 误告警问题

问题描述

  • 正常情况下触发告警
  • 告警频繁,但实际无问题
  • 导致运维人员对告警失去敏感性

解决方案

  • 分析历史数据,调整阈值
  • 设置适当的持续时间
  • 使用动态阈值
  • 优化告警规则

3. 漏告警问题

问题描述

  • 系统出现问题,但未触发告警
  • 告警阈值设置过高
  • 监控指标不全面

解决方案

  • 降低告警阈值
  • 增加监控指标
  • 优化告警规则
  • 定期测试告警功能

4. 告警信息不明确问题

问题描述

  • 告警信息模糊
  • 缺少必要的上下文
  • 难以定位问题

解决方案

  • 优化告警信息,包含必要的上下文
  • 提供处理建议
  • 关联相关监控指标
  • 配置告警分级

常见问题(FAQ)

Q1: 如何确定合适的告警阈值?

A1: 确定合适告警阈值的方法:

  1. 分析历史监控数据
  2. 了解系统正常运行范围
  3. 考虑业务需求和SLA
  4. 参考行业最佳实践
  5. 进行测试和调整

Q2: 告警阈值设置过高或过低有什么影响?

A2: 告警阈值设置过高会导致漏告警,无法及时发现问题;设置过低会导致误告警,产生告警风暴,影响运维效率。

Q3: 如何避免告警风暴?

A3: 避免告警风暴的方法:

  1. 设置合理的持续时间
  2. 配置告警抑制和聚合
  3. 调整告警阈值
  4. 优化监控策略
  5. 分级处理告警

Q4: 告警阈值需要定期调整吗?

A4: 是的,告警阈值需要定期调整。随着业务变化、系统升级和硬件更换,原有的告警阈值可能不再适用,需要根据实际情况进行调整。

Q5: 如何验证告警阈值的有效性?

A5: 验证告警阈值有效性的方法:

  1. 模拟故障场景,测试告警是否触发
  2. 分析历史告警数据,检查告警准确性
  3. 收集运维人员反馈,优化告警规则
  4. 定期进行告警演练

Q6: 动态告警阈值和静态告警阈值有什么区别?

A6: 静态告警阈值是固定的数值,不随时间变化;动态告警阈值根据历史数据自动调整,适应业务量变化。动态阈值可以减少误告警,但配置相对复杂。

Q7: 不同业务场景的告警阈值有什么差异?

A7: 核心业务的告警阈值通常更严格,告警级别更高;非核心业务的告警阈值相对宽松,告警级别较低。不同时间段的告警阈值也可能不同,高峰期阈值相对宽松,低峰期相对严格。

Q8: 如何配置告警通知方式?

A8: 配置告警通知方式的方法:

  1. 在 OCP 或监控系统中配置告警通知
  2. 支持邮件、短信、电话、即时通讯工具等
  3. 根据告警级别配置不同的通知方式
  4. 建立告警接收责任制