Skip to content

TDSQL 告警规则设置

告警规则设计原则

针对性原则

  • 告警规则应针对具体的业务场景和需求
  • 避免设置过于笼统的告警规则
  • 告警信息应包含明确的问题描述和定位信息

准确性原则

  • 告警规则应准确反映系统状态
  • 避免误告警和漏告警
  • 告警阈值应基于实际业务数据调整

分级原则

  • 根据问题的严重程度设置不同的告警级别
  • 不同级别的告警采用不同的通知方式
  • 建立清晰的告警升级机制

可操作原则

  • 告警信息应包含可操作的建议
  • 提供问题定位和解决的指导
  • 包含相关的监控数据和日志

告警规则类型

资源告警

CPU告警

  • 告警名称:CPU使用率过高
  • 监控指标:CPU使用率
  • 告警阈值:>90% 持续5分钟
  • 告警级别:严重(P1)
  • 告警描述:实例CPU使用率超过90%,已持续5分钟
  • 处理建议:检查是否有异常查询或高负载业务,考虑优化查询或扩容

内存告警

  • 告警名称:内存使用率过高
  • 监控指标:内存使用率
  • 告警阈值:>85% 持续5分钟
  • 告警级别:严重(P1)
  • 告警描述:实例内存使用率超过85%,已持续5分钟
  • 处理建议:检查内存使用情况,优化缓存配置或扩容

磁盘告警

  • 告警名称:磁盘使用率过高
  • 监控指标:磁盘使用率
  • 告警阈值:>80% 持续10分钟
  • 告警级别:重要(P2)
  • 告警描述:实例磁盘使用率超过80%,已持续10分钟
  • 处理建议:清理无用数据,考虑扩容或调整存储策略

性能告警

连接数告警

  • 告警名称:数据库连接数过高
  • 监控指标:活跃连接数
  • 告警阈值:>最大连接数的80% 持续5分钟
  • 告警级别:重要(P2)
  • 告警描述:数据库活跃连接数超过最大连接数的80%,已持续5分钟
  • 处理建议:检查连接泄露,优化连接池配置

慢查询告警

  • 告警名称:慢查询数量过多
  • 监控指标:慢查询数
  • 告警阈值:>100个/分钟 持续5分钟
  • 告警级别:重要(P2)
  • 告警描述:每分钟慢查询数量超过100个,已持续5分钟
  • 处理建议:分析慢查询日志,优化查询语句和索引

QPS/TPS告警

  • 告警名称:QPS突增
  • 监控指标:QPS
  • 告警阈值:>基线值的200% 持续5分钟
  • 告警级别:重要(P2)
  • 告警描述:QPS超过基线值的200%,已持续5分钟
  • 处理建议:检查是否有异常流量,考虑扩容

数据告警

复制延迟告警

  • 告警名称:主从复制延迟过大
  • 监控指标:复制延迟
  • 告警阈值:>300秒 持续5分钟
  • 告警级别:严重(P1)
  • 告警描述:主从复制延迟超过300秒,已持续5分钟
  • 处理建议:检查网络连接,优化复制配置

备份失败告警

  • 告警名称:备份失败
  • 监控指标:备份状态
  • 告警阈值:备份失败
  • 告警级别:严重(P1)
  • 告警描述:数据库备份失败
  • 处理建议:检查备份配置和存储状态,重新执行备份

数据不一致告警

  • 告警名称:主从数据不一致
  • 监控指标:数据一致性状态
  • 告警阈值:数据不一致
  • 告警级别:紧急(P0)
  • 告警描述:主从节点数据不一致
  • 处理建议:立即停止写入,重新同步数据

安全告警

登录失败告警

  • 告警名称:登录失败次数过多
  • 监控指标:登录失败次数
  • 告警阈值:>50次/分钟 持续5分钟
  • 告警级别:严重(P1)
  • 告警描述:每分钟登录失败次数超过50次,已持续5分钟
  • 处理建议:检查是否有暴力破解尝试,加强安全措施

权限变更告警

  • 告警名称:权限变更通知
  • 监控指标:权限变更事件
  • 告警阈值:发生权限变更
  • 告警级别:重要(P2)
  • 告警描述:数据库权限发生变更
  • 处理建议:确认权限变更是否合法,检查变更日志

告警规则设置方法

使用TDSQL管理控制台设置

1. 登录管理控制台

  • 访问TDSQL管理控制台
  • 输入用户名和密码登录

2. 选择目标实例

  • 在实例列表中选择需要设置告警的实例
  • 进入实例详情页

3. 进入告警设置页面

  • 点击左侧导航栏中的"告警设置"
  • 进入告警规则设置页面

4. 创建告警规则

  • 点击"创建告警规则"
  • 选择告警类型和指标
  • 设置告警阈值和持续时间
  • 选择告警级别
  • 配置告警通知方式
  • 点击"确定"保存告警规则

使用API设置

bash
# 创建告警规则API示例
curl -X POST \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{
    "instance_id": "tdsql-123456",
    "rule_name": "CPU使用率过高",
    "metric_name": "cpu_usage",
    "threshold": 90,
    "comparison_operator": ">",
    "duration": 300,
    "alarm_level": "P1",
    "notification_channels": ["email", "sms", "wechat"]
  }' \
  https://tdsql-api.example.com/v1/alarm-rules

使用命令行工具设置

bash
# 使用tdsql_cli工具设置告警规则
tdsql_cli alarm create \
  --instance-id tdsql-123456 \
  --rule-name "内存使用率过高" \
  --metric memory_usage \
  --threshold 85 \
  --operator ">" \
  --duration 300 \
  --level P1 \
  --channels email,sms

告警通知配置

通知渠道

  • 邮件通知:发送告警邮件到指定邮箱
  • 短信通知:发送告警短信到指定手机
  • 即时通讯工具:通过企业微信、钉钉等发送告警
  • 电话通知:严重告警可通过电话通知
  • Webhook:将告警信息发送到指定URL

通知模板

邮件通知模板

主题:【TDSQL告警】${alarm_level} - ${rule_name}

告警时间:${alarm_time}
实例ID:${instance_id}
实例名称:${instance_name}
告警规则:${rule_name}
告警指标:${metric_name}
当前值:${current_value}
告警阈值:${threshold}
持续时间:${duration}秒
告警描述:${description}
处理建议:${suggestion}

查看详情:${console_url}

短信通知模板

【TDSQL告警】${instance_name} ${rule_name},当前值${current_value},超过阈值${threshold},请及时处理。

通知策略

  • P0告警:立即通知,多渠道同时发送
  • P1告警:5分钟内通知,至少两种渠道
  • P2告警:10分钟内通知,至少一种渠道
  • P3告警:30分钟内通知,邮件渠道

告警规则管理

规则启用与禁用

  • 根据业务需求启用或禁用告警规则
  • 维护期间可临时禁用告警规则
  • 定期审查和清理无用的告警规则

规则测试

  • 新创建的告警规则应进行测试
  • 验证告警触发条件和通知是否正常
  • 测试告警恢复机制

规则优化

  • 定期分析告警数据
  • 调整告警阈值和持续时间
  • 优化告警规则,减少误告警
  • 合并相似的告警规则

规则版本管理

  • 记录告警规则的变更历史
  • 支持告警规则的回滚
  • 建立告警规则模板库

告警处理流程

告警接收

  • 收到告警通知后,立即确认告警
  • 查看告警详情和相关监控数据
  • 判断告警的严重程度和影响范围

问题定位

  • 根据告警信息定位问题
  • 查看相关日志和监控数据
  • 分析问题原因

问题处理

  • 根据告警建议采取相应措施
  • 记录处理过程和结果
  • 验证问题是否解决

告警关闭

  • 问题解决后,关闭告警
  • 总结告警原因和处理经验
  • 更新告警规则和处理流程

最佳实践

1. 告警规则分级

  • 根据问题影响范围和紧急程度分级
  • 不同级别采用不同的通知方式
  • 建立清晰的升级机制

2. 告警规则精简

  • 避免设置过多的告警规则
  • 关注核心指标和业务关键点
  • 定期清理无用的告警规则

3. 告警规则动态调整

  • 根据业务变化调整告警规则
  • 季节性业务需调整告警阈值
  • 业务高峰期可临时调整告警设置

4. 告警信息丰富

  • 告警信息应包含足够的上下文
  • 提供明确的问题描述和定位信息
  • 包含可操作的建议

5. 告警演练

  • 定期进行告警演练
  • 测试告警触发和通知机制
  • 验证告警处理流程的有效性

常见问题(FAQ)

Q1: 如何减少误告警?

A1: 减少误告警的方法:

  1. 合理设置告警阈值,避免过于敏感
  2. 增加告警持续时间,避免瞬时波动
  3. 结合多个指标进行告警,提高准确性
  4. 定期调整和优化告警规则
  5. 针对不同时段设置不同的告警阈值

Q2: 如何处理告警风暴?

A2: 处理告警风暴的方法:

  1. 立即确认告警风暴的原因
  2. 临时禁用相关告警规则
  3. 优先处理核心业务的告警
  4. 分析告警风暴的根本原因
  5. 优化告警规则,避免类似情况再次发生

Q3: 如何设置有效的告警阈值?

A3: 设置有效告警阈值的建议:

  1. 基于历史数据和业务需求
  2. 考虑正常波动范围
  3. 从小值开始,逐步调整
  4. 参考行业最佳实践
  5. 定期评估和调整阈值

Q4: 告警规则应该包含哪些信息?

A4: 告警规则应包含的信息:

  1. 告警名称和描述
  2. 监控指标和阈值
  3. 告警级别和通知方式
  4. 持续时间和触发条件
  5. 处理建议和联系方式

Q5: 如何验证告警规则的有效性?

A5: 验证告警规则有效性的方法:

  1. 进行模拟测试,触发告警
  2. 检查告警通知是否及时准确
  3. 验证告警信息的完整性
  4. 测试告警恢复机制
  5. 定期审查告警历史和处理结果

Q6: 如何建立完善的告警体系?

A6: 建立完善告警体系的步骤:

  1. 识别关键指标和业务场景
  2. 设计合理的告警规则
  3. 配置有效的通知渠道
  4. 建立清晰的告警处理流程
  5. 定期评估和优化告警体系
  6. 进行告警演练和培训