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. 定期测试和优化告警配置