达梦数据库监控观测最佳实践

    banner.png

    概述

    达梦企业管理器简称 DEM,架构如下:

    概略来说,每个数据库主机安装代理程序 DMAgent,在监控方面,它将指标发送至 DEM 服务端,用户可访问 DEM 控制台查看数据主机和实例的监控指标,在 DEM 进行配置后可通过 http://<dem-server>:8080/dem/metrics 端点暴露主机和数据库的 Prometheus 指标,观测云 DataKit 可从此端点采集指标完成达梦数据库集成。

    前提条件

    • 监控目标可通过 DMAgent 上报指标至 DEM。

    配置 DEM 暴露监控指标

    请按照以下步骤操作:

    1、访问 DEM,点击“监控-数据库监控”,点击“+”,添加需要监控的数据库实例。

    2、点击“系统-系统配置”,在第七项“其他功能”中修改 prometheus_metric_mf_nodes 和 prometheus_metric_db_nodes,分别添加主机和数据库节点,以暴露 Prometheus 指标,修改后点击保存。

    3、请求 http://<dem-server>:8080/dem/metrics 端点,如果有 Prometheus 指标输出则配置成功,指标中有以下重要标签:

    • instance,DEM 实例;
    • db,数据库实例名;
    • mf,主机。

    观测云

    观测云采集器 DataKit 支持 Prometheus 指标采集插件,能够从指标端点自动拉取指标,并在指标上报时附加由用户定义的标签。

    部署 DataKit

    登录观测云控制台,点击「集成」-「DataKit」-「Linux」,复制安装命令在服务器执行即可,推荐安装在 DEM 所在服务器。

    开启 Promv2 插件

    按照以下步骤操作:

    1、开启插件:

    # 进入 Prometheus 采集器配置文件目录
    cd /usr/local/datakit/conf.d/prom
    # 创建插件配置文件
    cp promv2.conf.sample promv2_dem.conf
    

    2、修改插件配置,以下是一份完整的配置示例:

    # {"version": "1.75.1", "desc": "do NOT edit this line"}
    
    [[inputs.promv2]]
      ## Collector alias.
      # 此项将作为 datakit monitor 命令中采集器的名称,设置为指定值便于区分
      source = "prom_dem"
    
      # Prometheus 指标端点
      url = "http://192.168.195.55:8080/dem/metrics"
    
      ## (Optional) Collect interval: (defaults to "30s").
      # 采集频率
      interval = "30s"
    
      ## Measurement name.
      ## If measurement_name is empty, split metric name by '_', the first field after split as measurement set name, the rest as current metric name.
      ## If measurement_name is not empty, using this as measurement set name.
      # 上报至观测云时的指标集名称
      measurement_name = "prom_dem"
    
      ## Keep Exist Metric Name
      ## If the keep_exist_metric_name is true, keep the raw value for field names.
      
    
      ## The bearer_token_file specifies the token file, and the Authorization header is added automatically.
      # bearer_token_file = ""
      ## TLS config
      # insecure_skip_verify = true
      ## Following ca_certs/cert/cert_key are optional, if insecure_skip_verify = true.
      # ca_certs = ["/opt/tls/ca.crt"]
      # cert     = "/opt/tls/client.root.crt"
      # cert_key = "/opt/tls/client.root.key"
    
      ## Set to 'true' to enable election.
      election = true
    
      ## Add HTTP headers to data pulling (Example basic authentication).
      # [inputs.promv2.http_headers]
      # Authorization = ""
    
      [inputs.promv2.tags]
      # some_tag = "some_value"
      # more_tag = "some_other_value"
    

    3、执行命令 datakit service -R 重启 DataKit,启用采集器,可执行命令 datakit monitor 查看采集器运行情况,稍后,可在观测云「指标」-「指标管理」页面搜索指标集 prome_dem 查看指标。

    需要注意的是,DEM 的导出指标并没有其控制台丰富。

    场景视图

    登录观测云控制台,点击「场景」 -「新建仪表板」,输入“达梦”, 选择 “达梦数据库监控视图” ,点击 “确定” 即可添加视图。视图包含数据库与主机的基本指标。

    关键指标

    指标名 类型 单位 描述
    dm_global_status_tps Gauge - 每秒事务数
    dm_global_status_qps Gauge - 每秒查询数
    dm_global_status_nio_ips Gauge B/s 每秒网络接收字节数
    dm_global_status_nio_ops Gauge B/s 每秒网络发送字节数
    dm_global_status_fio_ips Gauge B/s 每秒磁盘写入字节数
    dm_global_status_fio_ops Gauge B/s 每秒磁盘读取字节数
    dm_global_status_cpu_use_rate Gauge - 数据库 CPU 使用率
    dm_global_status_mem_used Gauge B 数据库内存用量
    dm_global_status_sessions Gauge - 会话数
    dm_global_status_avg_wait_time Gauge ms 任务平均等待时间

    监控器

    观测云已内置部分监控器,在「监控」-「监控器」页面启用 达梦数据库检测库

    监控器名称 告警提示
    达梦数据库会话总数百分比高 会话监控主要监控数据库中的活动会话,总会话以及其占最大连接数( max_sessions=10000 )的百分比,当前活动会话连接数量太大,则说明数据库当前可能存在业务繁忙、存在慢 SQL、应用重连机制存在缺陷,当前非活动会话连接数量太大,说明数据库可能存在系统当前处于会话空闲期、接池会话上线设置过高、应用释放连接机制存在异常
    达梦数据库产生等待任务 产生等待任务意味着线程池耗尽,应检查造成此现象的原因,避免任务堆积或异常
    达梦数据库主机磁盘使用率高 磁盘空间不足将导致数据库无法使用,需及时治理和扩容
    达梦数据库主机内存使用率高 内存使用率过高应检查占用内存的具体进程,对数据库资源进行扩容或者移除影响数据库资源的进程
    达梦数据库主机 CPU 使用率高 CPU 使用率过高应检查占用 CPU 的具体进程,对数据库资源进行扩容或者移除影响数据库资源的进程

    总结

    达梦数据库通过自有组件 DEM 导出 Promethues 协议的指标,方便接入到观测云平台。观测云采集这些指标并结合业务形态进行全面可观测,为用户提供良好的产品体验。

    联系我们

    加入社区

    微信扫码
    加入官方交流群

    立即体验

    在线开通,按量计费,真正的云服务!

    立即开始

    选择观测云版本

    代码托管平台