外观
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 配置
配置 Prometheus 告警规则:
yamlgroups: - 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"配置 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: 确定合适告警阈值的方法:
- 分析历史监控数据
- 了解系统正常运行范围
- 考虑业务需求和SLA
- 参考行业最佳实践
- 进行测试和调整
Q2: 告警阈值设置过高或过低有什么影响?
A2: 告警阈值设置过高会导致漏告警,无法及时发现问题;设置过低会导致误告警,产生告警风暴,影响运维效率。
Q3: 如何避免告警风暴?
A3: 避免告警风暴的方法:
- 设置合理的持续时间
- 配置告警抑制和聚合
- 调整告警阈值
- 优化监控策略
- 分级处理告警
Q4: 告警阈值需要定期调整吗?
A4: 是的,告警阈值需要定期调整。随着业务变化、系统升级和硬件更换,原有的告警阈值可能不再适用,需要根据实际情况进行调整。
Q5: 如何验证告警阈值的有效性?
A5: 验证告警阈值有效性的方法:
- 模拟故障场景,测试告警是否触发
- 分析历史告警数据,检查告警准确性
- 收集运维人员反馈,优化告警规则
- 定期进行告警演练
Q6: 动态告警阈值和静态告警阈值有什么区别?
A6: 静态告警阈值是固定的数值,不随时间变化;动态告警阈值根据历史数据自动调整,适应业务量变化。动态阈值可以减少误告警,但配置相对复杂。
Q7: 不同业务场景的告警阈值有什么差异?
A7: 核心业务的告警阈值通常更严格,告警级别更高;非核心业务的告警阈值相对宽松,告警级别较低。不同时间段的告警阈值也可能不同,高峰期阈值相对宽松,低峰期相对严格。
Q8: 如何配置告警通知方式?
A8: 配置告警通知方式的方法:
- 在 OCP 或监控系统中配置告警通知
- 支持邮件、短信、电话、即时通讯工具等
- 根据告警级别配置不同的通知方式
- 建立告警接收责任制
