Skip to content

GaussDB 告警规则

告警级别

GaussDB 告警规则分为四个级别,从高到低依次为:

  • 紧急(Critical):数据库出现严重故障,可能导致业务中断,需要立即处理
  • 严重(Major):数据库出现重要故障,可能影响业务运行,需要尽快处理
  • 警告(Warning):数据库出现异常情况,可能影响系统性能,需要关注
  • 提示(Info):数据库运行状态的正常提示信息

告警指标分类

1. 可用性指标

  • 数据库实例状态

    • 告警条件:数据库实例状态异常
    • 告警级别:紧急
    • 处理建议:立即检查数据库进程状态,重启故障实例
  • 主备复制状态

    • 告警条件:主备复制中断或延迟超过阈值
    • 告警级别:严重
    • 处理建议:检查主备连接,修复复制故障
  • 连接状态

    • 告警条件:数据库连接数接近或达到最大值
    • 告警级别:警告
    • 处理建议:检查连接使用情况,优化应用连接管理

2. 性能指标

  • CPU 使用率

    • 告警条件:CPU 使用率超过阈值(如 80%)
    • 告警级别:警告
    • 处理建议:分析 CPU 高使用率原因,优化 SQL 或增加 CPU 资源
  • 内存使用率

    • 告警条件:内存使用率超过阈值(如 85%)
    • 告警级别:警告
    • 处理建议:检查内存使用情况,优化内存参数或增加内存资源
  • 磁盘使用率

    • 告警条件:磁盘使用率超过阈值(如 90%)
    • 告警级别:严重
    • 处理建议:清理磁盘空间,扩展存储容量
  • IO 使用率

    • 告警条件:IO 使用率超过阈值(如 80%)
    • 告警级别:警告
    • 处理建议:分析 IO 密集型操作,优化存储或 SQL

3. 资源指标

  • 会话数

    • 告警条件:会话数超过阈值(如最大会话数的 80%)
    • 告警级别:警告
    • 处理建议:检查会话使用情况,关闭空闲会话
  • 锁等待时间

    • 告警条件:锁等待时间超过阈值(如 10 秒)
    • 告警级别:警告
    • 处理建议:分析锁等待原因,优化 SQL 或调整事务隔离级别
  • 慢查询数

    • 告警条件:慢查询数超过阈值(如每分钟 10 个)
    • 告警级别:警告
    • 处理建议:分析慢查询,优化 SQL 语句

4. 安全指标

  • 登录失败次数

    • 告警条件:登录失败次数超过阈值(如每分钟 5 次)
    • 告警级别:严重
    • 处理建议:检查是否存在暴力破解,加强安全措施
  • 权限变更

    • 告警条件:数据库权限发生变更
    • 告警级别:提示
    • 处理建议:确认权限变更是否合法,记录变更日志

告警规则配置

1. 使用内置监控工具配置

  • 登录 GaussDB 管理控制台

    • 进入 "监控与告警" 页面
    • 选择 "告警规则" 标签页
    • 点击 "创建告警规则"
  • 配置告警规则

    • 选择告警对象:数据库实例
    • 选择告警指标:如 CPU 使用率、内存使用率等
    • 设置告警阈值:根据业务需求设置合适的阈值
    • 设置告警级别:根据影响程度选择告警级别
    • 设置告警通知:配置邮件、短信或其他通知方式

2. 使用命令行工具配置

  • 使用 gs_om 工具配置告警

    bash
    # 配置 CPU 使用率告警
    gs_om -t alarm -o set -n cpu_usage -l warning -t "80" -u "%" -d "CPU 使用率超过 80%"
    
    # 配置内存使用率告警
    gs_om -t alarm -o set -n memory_usage -l warning -t "85" -u "%" -d "内存使用率超过 85%"
    
    # 配置磁盘使用率告警
    gs_om -t alarm -o set -n disk_usage -l major -t "90" -u "%" -d "磁盘使用率超过 90%"
  • 查看告警规则

    bash
    gs_om -t alarm -o show
  • 修改告警规则

    bash
    gs_om -t alarm -o modify -n cpu_usage -l major -t "90" -u "%" -d "CPU 使用率超过 90%"
  • 删除告警规则

    bash
    gs_om -t alarm -o delete -n cpu_usage

3. 使用 SQL 语句配置

  • 配置慢查询告警

    sql
    -- 设置慢查询阈值(单位:毫秒)
    ALTER SYSTEM SET log_min_duration_statement = 1000;
    
    -- 启用慢查询日志
    ALTER SYSTEM SET logging_collector = on;
  • 配置连接数告警

    sql
    -- 设置最大连接数
    ALTER SYSTEM SET max_connections = 1000;
    
    -- 设置连接数告警阈值
    ALTER SYSTEM SET connection_limit_warning = 800;

告警通知配置

1. 邮件通知

  • 配置邮件服务器

    yaml
    # 数据库配置文件
    smtp_server = 'smtp.example.com'
    smtp_port = 587
    smtp_user = 'alarm@example.com'
    smtp_password = 'password'
    smtp_ssl = on
  • 配置告警邮件接收人

    bash
    gs_om -t alarm -o set -n email_recipients -v "admin1@example.com,admin2@example.com"

2. 短信通知

  • 配置短信服务
    • 登录 GaussDB 管理控制台
    • 进入 "告警通知" 页面
    • 配置短信服务提供商信息
    • 添加短信接收人

3. 第三方系统集成

  • 配置 Webhook

    bash
    gs_om -t alarm -o set -n webhook_url -v "https://monitoring.example.com/api/alerts"
  • 配置 SNMP

    yaml
    # 数据库配置文件
    snmp_enable = on
    snmp_community = 'public'
    snmp_trap_host = '192.168.1.100'
    snmp_trap_port = 162

告警管理

1. 告警查看

  • 查看当前告警

    bash
    gs_om -t alarm -o list
  • 查看历史告警

    bash
    gs_om -t alarm -o history

2. 告警处理

  • 确认告警

    bash
    gs_om -t alarm -o acknowledge -i alarm_id
  • 清除告警

    bash
    gs_om -t alarm -o clear -i alarm_id
  • 静默告警

    bash
    gs_om -t alarm -o silence -i alarm_id -d 3600

3. 告警分析

  • 告警聚合分析

    • 按告警级别聚合:分析不同级别告警的分布情况
    • 按告警类型聚合:分析不同类型告警的发生频率
    • 按时间维度聚合:分析告警的时间分布规律
  • 告警关联分析

    • 关联相关告警:找出可能存在因果关系的告警
    • 分析告警根因:定位导致多个告警的根本原因
    • 优化告警规则:减少误报和重复告警

告警规则最佳实践

  • 根据业务需求调整阈值:不同业务场景对告警阈值的要求不同,应根据实际情况调整
  • 避免告警风暴:合理设置告警规则,避免因单个故障导致大量告警
  • 定期审查告警规则:定期检查告警规则的有效性,调整不再适用的规则
  • 建立告警处理流程:明确告警处理责任人和流程,确保告警得到及时处理
  • 结合监控数据进行分析:告警只是表象,应结合详细的监控数据进行深入分析

常见问题(FAQ)

Q1: 如何避免告警风暴?

A1: 可以通过以下方法避免告警风暴:1)合理设置告警阈值,避免过于敏感;2)设置告警抑制规则,同一问题只触发一次告警;3)设置告警分组,将相关告警合并处理;4)定期审查和优化告警规则。

Q2: 如何处理频繁出现的告警?

A2: 对于频繁出现的告警,应首先分析告警原因,从根本上解决问题。如果是正常业务导致的,可以考虑调整告警阈值或告警级别;如果是系统问题,应及时优化系统配置或升级硬件资源。

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

A3: 可以通过以下方法验证告警规则的有效性:1)在测试环境中模拟告警场景,检查是否能正常触发告警;2)定期审查告警历史,分析告警的准确性和及时性;3)收集运维人员的反馈,调整告警规则。

Q4: 如何配置告警通知?

A4: 可以通过 GaussDB 管理控制台或命令行工具配置告警通知,支持邮件、短信和 Webhook 等多种方式。需要配置相应的服务提供商信息和接收人信息。

Q5: 如何优化告警规则?

A5: 优化告警规则可以从以下几个方面入手:1)减少误报:调整阈值和告警条件,避免不必要的告警;2)减少漏报:确保重要指标都有相应的告警规则;3)提高告警准确性:使用更精确的告警条件和指标;4)优化告警级别:根据实际影响程度设置合适的告警级别;5)定期更新:根据业务变化和系统调整更新告警规则。