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

概述

达梦企业管理器简称 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、开启插件:

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

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

shell 复制代码
# {"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 协议的指标,方便接入到观测云平台。观测云采集这些指标并结合业务形态进行全面可观测,为用户提供良好的产品体验。

相关推荐
小光学长1 小时前
基于vue框架的防疫科普网站0838x(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库
极限实验室1 小时前
使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建
数据库·docker·devops
飞翔的佩奇1 小时前
Java项目:基于SSM框架实现的旅游协会管理系统【ssm+B/S架构+源码+数据库+毕业论文】
java·数据库·mysql·毕业设计·ssm·旅游·jsp
float_六七4 小时前
SQL六大核心类别全解析
数据库·sql·oracle
Code季风5 小时前
将 gRPC 服务注册到 Consul:从配置到服务发现的完整实践(上)
数据库·微服务·go·json·服务发现·consul
Boilermaker19925 小时前
【Java EE】SpringIoC
前端·数据库·spring
霸王龙的小胳膊6 小时前
泛微虚拟视图-数据虚拟化集成
数据库
灵犀学长6 小时前
解锁Spring Boot多项目共享Redis:优雅Key命名结构指南
数据库·redis
轩情吖6 小时前
Qt的信号与槽(二)
数据库·c++·qt·信号·connect·信号槽·
ZeroNews内网穿透6 小时前
服装零售企业跨区域运营难题破解方案
java·大数据·运维·服务器·数据库·tcp/ip·零售