Skip to content

DM 告警配置

告警系统的重要性

  • 及时发现问题:在问题影响业务之前及时发现
  • 快速定位故障:提供准确的故障信息,加速故障定位
  • 减少停机时间:缩短故障响应和恢复时间
  • 预防问题发生:通过趋势分析预防潜在问题
  • 满足合规要求:符合企业IT运维管理规范

1.2 告警系统架构

DM数据库的告警系统由以下组件组成:

  • 告警数据源:数据库实例、系统视图、日志文件等
  • 告警规则引擎:定义和执行告警规则
  • 告警通知机制:邮件、短信、SNMP等
  • 告警存储:告警历史记录存储
  • 告警展示:DM管理工具、DM性能监控工具等

1.3 告警配置原则

  • 全面性:覆盖所有关键监控指标
  • 准确性:减少误告警和漏告警
  • 及时性:确保告警及时送达
  • 可操作性:告警信息应包含明确的处理建议
  • 分级管理:根据严重程度分级处理

告警类型与级别

2.1 告警类型

2.1.1 按告警来源分类

  • 实例告警:实例状态、连接数、资源使用等
  • 性能告警:响应时间、吞吐量、等待事件等
  • 存储告警:表空间使用率、数据文件增长等
  • 安全告警:登录失败、权限变更等
  • 配置告警:参数变更、配置错误等

2.1.2 按告警方式分类

  • 阈值告警:指标超过预设阈值触发
  • 趋势告警:指标变化趋势异常触发
  • 事件告警:特定事件发生时触发
  • 关联告警:多个指标关联分析后触发

2.2 告警级别

级别名称说明处理要求
1紧急(Critical)数据库不可用或核心功能失效立即处理,15分钟内响应
2严重(Major)数据库性能严重下降或重要功能异常尽快处理,1小时内响应
3警告(Warning)数据库存在潜在问题计划处理,24小时内响应
4信息(Info)一般性通知信息无需立即处理,定期 review

2.3 告警级别配置建议

指标类型紧急严重警告信息
实例状态实例宕机--实例重启
连接数达到最大连接数达到最大连接数的90%达到最大连接数的80%-
CPU使用率>95%持续5分钟>90%持续10分钟>80%持续15分钟>70%持续30分钟
内存使用率>98%持续5分钟>95%持续10分钟>90%持续15分钟>85%持续30分钟
表空间使用率>98%>95%>85%>80%
锁等待锁等待时间>300秒锁等待时间>120秒锁等待时间>60秒-
死锁发生死锁---

告警配置方法

3.1 使用 DM 管理工具配置

3.1.1 配置步骤

  1. 登录 DM 管理工具
  2. 选择目标数据库实例
  3. 点击"监控管理" -> "告警配置"
  4. 点击"新建告警规则"
  5. 配置告警规则参数:
    • 告警名称:自定义名称
    • 告警级别:选择告警级别
    • 监控对象:选择监控对象类型
    • 监控指标:选择需要监控的指标
    • 告警条件:设置阈值和触发条件
    • 告警通知:选择通知方式
  6. 点击"保存"完成配置

3.1.2 配置示例

示例:CPU使用率告警

  • 告警名称:CPU使用率过高告警
  • 告警级别:警告
  • 监控对象:数据库实例
  • 监控指标:CPU使用率
  • 告警条件:CPU使用率 > 80% 持续 15 分钟
  • 告警通知:邮件通知

3.2 使用 DM 性能监控工具配置

3.2.1 配置步骤

  1. 启动 DM 性能监控工具
  2. 连接到目标数据库实例
  3. 点击"告警管理" -> "告警规则"
  4. 点击"添加规则"
  5. 配置告警规则:
    • 规则名称:自定义名称
    • 规则类型:选择规则类型
    • 监控指标:选择监控指标
    • 告警阈值:设置阈值
    • 告警级别:选择告警级别
    • 通知方式:选择通知方式
  6. 点击"保存"完成配置

3.2.2 高级配置

  • 关联规则:配置多个指标的关联告警
  • 趋势规则:配置基于趋势分析的告警
  • 抑制规则:配置告警抑制条件,避免告警风暴

3.3 使用 SQL 语句配置

3.3.1 告警相关系统视图

sql
-- 查看告警规则
SELECT * FROM V$ALARM_RULE;

-- 查看告警历史
SELECT * FROM V$ALARM_HISTORY;

-- 查看告警通知配置
SELECT * FROM V$ALARM_NOTIFY_CONFIG;

3.3.2 配置告警规则示例

sql
-- 创建CPU使用率告警规则
CALL SP_ADD_ALARM_RULE(
    'CPU_USAGE_ALARM', -- 规则名称
    'INSTANCE', -- 监控对象类型
    'CPU_USAGE', -- 监控指标
    '>', -- 比较运算符
    '80', -- 阈值
    15, -- 持续时间(分钟)
    3, -- 告警级别(警告)
    'CPU使用率超过80%持续15分钟', -- 告警描述
    1 -- 启用状态
);

-- 配置邮件通知
CALL SP_CONFIG_ALARM_NOTIFY(
    'EMAIL', -- 通知方式
    'smtp.example.com', -- SMTP服务器
    25, -- SMTP端口
    'alarm@example.com', -- 发件人邮箱
    'password', -- 密码
    'admin@example.com' -- 收件人邮箱
);

3.4 第三方监控系统配置

3.4.1 Zabbix 集成

  1. 安装 Zabbix Agent
  2. 配置 Zabbix 模板,添加 DM 数据库监控项
  3. 配置告警规则和通知方式
  4. 关联 DM 数据库主机

3.4.2 Prometheus 集成

  1. 部署 DM 数据库 Exporter
  2. 配置 Prometheus 抓取规则
  3. 配置 Alertmanager 告警规则
  4. 配置告警通知方式

告警通知方式

4.1 邮件通知

4.1.1 配置步骤

  1. 在 DM 管理工具中,点击"监控管理" -> "告警配置" -> "通知配置"
  2. 选择"邮件通知"
  3. 配置 SMTP 服务器信息:
    • SMTP 服务器地址
    • SMTP 端口
    • 发件人邮箱
    • 邮箱密码或授权码
    • 收件人邮箱列表
  4. 点击"测试"验证配置
  5. 点击"保存"完成配置

4.1.2 配置建议

  • 使用专用的告警邮箱
  • 配置多个收件人,确保告警不丢失
  • 定期测试邮件通知功能
  • 配置邮件主题前缀,便于识别

4.2 短信通知

4.2.1 配置步骤

  1. 确保已连接短信网关服务
  2. 在 DM 管理工具中,点击"监控管理" -> "告警配置" -> "通知配置"
  3. 选择"短信通知"
  4. 配置短信网关信息:
    • 网关地址
    • 端口
    • 用户名
    • 密码
    • 接收手机号列表
  5. 点击"测试"验证配置
  6. 点击"保存"完成配置

4.2.2 配置建议

  • 仅用于紧急和严重级别的告警
  • 配置短信内容模板,包含关键信息
  • 定期测试短信通知功能

4.3 SNMP 通知

4.3.1 配置步骤

  1. 确保已部署 SNMP 管理系统
  2. 在 DM 管理工具中,点击"监控管理" -> "告警配置" -> "通知配置"
  3. 选择"SNMP 通知"
  4. 配置 SNMP 信息:
    • SNMP 版本
    • SNMP 团体名
    • SNMP 服务器地址
    • SNMP 端口
  5. 点击"测试"验证配置
  6. 点击"保存"完成配置

4.3.2 配置建议

  • 用于与企业级监控系统集成
  • 配置合适的 SNMP trap OID
  • 确保 SNMP 安全配置

4.4 其他通知方式

  • Webhook:通过 HTTP API 发送告警
  • 微信通知:通过企业微信发送告警
  • 钉钉通知:通过钉钉机器人发送告警
  • 脚本通知:执行自定义脚本进行告警处理

告警规则管理

5.1 告警规则生命周期

5.1.1 创建规则

  • 定义明确的告警目的
  • 选择合适的监控指标
  • 设置合理的阈值和持续时间
  • 配置适当的告警级别
  • 选择合适的通知方式

5.1.2 测试规则

  • 模拟告警场景,验证规则是否触发
  • 检查告警通知是否正常送达
  • 验证告警信息的准确性和完整性

5.1.3 启用规则

  • 逐步启用规则,避免告警风暴
  • 监控规则的触发情况
  • 根据实际情况调整规则

5.1.4 维护规则

  • 定期审查和更新规则
  • 根据业务变化调整规则
  • 移除不再需要的规则

5.2 告警规则优化

5.2.1 减少误告警

  • 调整阈值,避免过于敏感
  • 增加持续时间条件
  • 配置告警抑制规则
  • 优化告警关联规则

5.2.2 避免漏告警

  • 确保覆盖所有关键指标
  • 定期测试告警规则
  • 监控告警系统本身的状态

5.2.3 优化告警信息

  • 包含明确的告警原因
  • 提供处理建议
  • 包含相关指标的上下文信息
  • 包含告警发生的时间和位置

5.3 告警风暴处理

5.3.1 告警风暴原因

  • 数据库实例故障
  • 网络故障
  • 配置错误
  • 大量相似告警同时触发

5.3.2 告警风暴预防

  • 配置告警抑制规则
  • 实现告警聚合
  • 配置告警级别过滤
  • 限制单位时间内的告警数量

5.3.3 告警风暴处理流程

  1. 识别告警风暴的来源
  2. 临时调整告警规则,减少告警数量
  3. 优先处理核心告警
  4. 恢复系统正常运行
  5. 分析告警风暴原因,优化告警配置

告警处理流程

6.1 告警接收与确认

  1. 告警通知送达相关人员
  2. 接收人确认告警
  3. 记录告警接收时间

6.2 告警分析与定位

  1. 查看告警详细信息
  2. 分析相关监控指标
  3. 定位故障原因
  4. 评估影响范围

6.3 告警处理与恢复

  1. 执行故障修复操作
  2. 验证修复效果
  3. 关闭告警

6.4 告警复盘与优化

  1. 分析告警产生的根本原因
  2. 评估告警处理过程
  3. 提出优化建议
  4. 更新告警规则和处理流程

6.5 告警处理示例

示例:表空间使用率告警处理流程

  1. 接收到表空间使用率超过90%的告警
  2. 登录DM管理工具,查看表空间详细信息
  3. 分析表空间增长趋势
  4. 确定处理方案:
    • 扩展数据文件
    • 清理无用数据
    • 迁移数据到其他表空间
  5. 执行处理方案
  6. 验证表空间使用率是否下降
  7. 关闭告警
  8. 记录处理过程,优化告警规则

告警存储与分析

7.1 告警存储

7.1.1 存储方式

  • 内存存储:实时告警信息
  • 数据库存储:告警历史记录
  • 文件存储:告警日志文件

7.1.2 存储策略

  • 实时告警:保留7天
  • 历史告警:保留3-12个月
  • 重要告警:长期保留

7.2 告警分析

7.2.1 告警统计分析

  • 按告警级别统计
  • 按告警类型统计
  • 按时间分布统计
  • 按实例统计

7.2.2 告警趋势分析

  • 分析告警数量的变化趋势
  • 识别周期性告警
  • 预测未来可能的告警情况

7.2.3 告警关联分析

  • 分析不同告警之间的关联关系
  • 识别根因告警
  • 优化告警规则

7.3 告警报告

7.3.1 日报

  • 当天告警数量和级别分布
  • 主要告警类型
  • 告警处理情况
  • 突出问题

7.3.2 周报

  • 本周告警统计
  • 告警趋势分析
  • 典型告警案例
  • 优化建议

7.3.3 月报

  • 本月告警总体情况
  • 重点问题分析
  • 告警处理效率评估
  • 长期趋势分析
  • 下月改进计划

告警配置最佳实践

8.1 告警阈值设置

8.1.1 基于历史数据

  1. 收集2-4周的历史性能数据
  2. 计算指标的平均值和标准差
  3. 设置阈值为平均值±2-3倍标准差
  4. 根据业务需求调整

8.1.2 基于业务需求

  • 核心业务系统:阈值设置更为严格
  • 非核心业务系统:阈值可以适当放宽
  • 考虑系统的峰值负载

8.1.3 基于行业标准

  • 参考数据库厂商的建议
  • 参考行业最佳实践
  • 参考同行业其他企业的配置

8.2 告警通知配置

8.2.1 通知对象

  • 紧急告警:DBA团队所有成员
  • 严重告警:DBA团队负责人
  • 警告:DBA团队成员
  • 信息:DBA团队定期 review

8.2.2 通知时间

  • 工作时间:所有告警通过邮件和即时通讯工具发送
  • 非工作时间:仅紧急和严重告警通过短信发送

8.2.3 通知内容

  • 告警级别和类型
  • 告警发生时间和位置
  • 告警详细描述
  • 相关指标数据
  • 处理建议

8.3 告警系统监控

8.3.1 监控告警系统本身

  • 检查告警系统的运行状态
  • 验证告警通知是否正常
  • 监控告警存储的使用情况

8.3.2 定期测试告警系统

  • 每月至少进行一次告警测试
  • 测试不同级别的告警
  • 测试不同的通知方式
  • 测试告警处理流程

8.4 告警与自动化结合

8.4.1 自动化告警处理

  • 对于常见告警,配置自动处理脚本
  • 实现告警触发自动修复
  • 减少人工干预

8.4.2 告警与事件管理系统集成

  • 将告警导入事件管理系统
  • 实现告警的跟踪和闭环管理
  • 生成事件报告和统计分析

版本差异说明

9.1 DM 7 与 DM 8 的差异

特性DM 7DM 8
告警系统基础告警功能增强型告警系统
告警类型基本阈值告警支持阈值、趋势、事件、关联告警
通知方式邮件、短信支持邮件、短信、SNMP、Webhook等
告警规则简单规则配置支持复杂规则配置和关联分析
告警存储有限的告警历史存储更完善的告警历史存储和分析
第三方集成有限支持全面支持主流监控系统集成

9.2 不同版本的注意事项

  • DM 7.6 之前的版本告警功能相对简单
  • DM 8.0 开始支持更丰富的告警类型和通知方式
  • 升级数据库版本后,建议重新配置告警规则
  • 不同版本的告警系统视图可能有所不同

常见问题与解决方案

10.1 告警配置问题

10.1.1 问题:告警规则不触发

解决方案

  • 检查告警规则是否已启用
  • 验证监控指标是否达到阈值
  • 检查告警系统是否正常运行
  • 查看告警日志,确认是否有错误

10.1.2 问题:告警通知不送达

解决方案

  • 检查通知配置是否正确
  • 验证通知服务是否正常
  • 检查网络连接是否正常
  • 查看通知日志,确认是否有错误

10.1.3 问题:误告警过多

解决方案

  • 调整告警阈值,避免过于敏感
  • 增加持续时间条件
  • 配置告警抑制规则
  • 优化告警关联规则

10.2 告警处理问题

10.2.1 问题:告警处理不及时

解决方案

  • 明确告警处理责任人和流程
  • 配置适当的告警级别和通知方式
  • 实现告警的自动升级机制
  • 定期培训和演练告警处理流程

10.2.2 问题:告警处理后问题复发

解决方案

  • 深入分析问题的根本原因
  • 采取彻底的修复措施
  • 加强监控,防止问题复发
  • 更新告警规则,提高告警的预见性

10.3 告警系统性能问题

10.3.1 问题:告警系统响应缓慢

解决方案

  • 优化告警规则,减少规则数量
  • 增加告警系统的资源
  • 优化告警存储和查询
  • 实现告警的异步处理

10.3.2 问题:告警存储占用过多空间

解决方案

  • 配置合理的告警保留策略
  • 定期清理过期告警
  • 优化告警存储结构
  • 考虑使用外部存储系统

常见问题(FAQ)

Q1: 如何设置合理的告警阈值?

A1: 可以通过以下方法设置:

  1. 基于历史性能数据,设置阈值为平均值±2-3倍标准差
  2. 参考数据库厂商的建议和行业标准
  3. 根据业务需求和系统重要性调整
  4. 从小阈值开始,逐步优化

Q2: 如何减少误告警?

A2: 可以通过以下方法减少误告警:

  1. 调整阈值,避免过于敏感
  2. 增加持续时间条件
  3. 配置告警抑制规则
  4. 优化告警关联规则
  5. 实现告警聚合,避免大量相似告警

Q3: 如何避免漏告警?

A3: 可以通过以下方法避免漏告警:

  1. 确保覆盖所有关键监控指标
  2. 定期测试告警规则
  3. 监控告警系统本身的状态
  4. 配置多级告警机制
  5. 实现告警的冗余通知

Q4: 如何处理告警风暴?

A4: 告警风暴处理流程:

  1. 识别告警风暴的来源
  2. 临时调整告警规则,减少告警数量
  3. 优先处理核心告警,恢复系统正常运行
  4. 分析告警风暴原因,优化告警配置
  5. 配置告警抑制和聚合规则,预防告警风暴

Q5: 如何集成DM数据库告警到第三方监控系统?

A5: 可以通过以下方法集成:

  1. 使用SNMP协议集成到企业级监控系统
  2. 部署专用的Exporter(如Prometheus Exporter)
  3. 开发自定义脚本,将告警导入第三方系统
  4. 使用DM数据库提供的告警API

Q6: 如何监控告警系统本身?

A6: 可以通过以下方法:

  1. 监控告警系统的运行状态和资源使用
  2. 定期测试告警通知是否正常
  3. 监控告警存储的使用情况
  4. 配置告警系统本身的告警规则

Q7: 如何优化告警处理流程?

A7: 可以通过以下方法优化:

  1. 明确告警处理责任人和流程
  2. 实现告警的分级处理
  3. 提供明确的告警处理建议
  4. 实现告警的自动化处理
  5. 定期复盘和优化告警处理流程

Q8: 如何配置告警的自动处理?

A8: 可以通过以下方法:

  1. 编写自定义脚本,处理常见告警
  2. 配置告警触发脚本执行
  3. 实现告警的自动修复
  4. 验证修复效果,关闭告警
  5. 记录自动处理的结果

Q9: 如何生成有效的告警报告?

A9: 告警报告应包含:

  1. 告警统计信息(数量、级别、类型)
  2. 告警趋势分析
  3. 典型告警案例分析
  4. 告警处理情况统计
  5. 优化建议

Q10: 如何根据业务变化调整告警配置?

A10: 可以通过以下方法:

  1. 定期审查和更新告警规则
  2. 根据业务增长调整阈值
  3. 当系统架构变化时,重新评估告警配置
  4. 结合业务反馈调整告警规则
  5. 定期测试和优化告警配置