KingbaseES 数据库可观测性最佳实践

    banner.png

    Kingbase 介绍

    KingbaseES(Kingbase Enterprise Server)是由人大金仓自主研发的企业级关系型数据库,基于 PostgreSQL 内核优化,具备高可靠、高安全和高性能特性。

    其兼容 SQL 标准及主流数据库语法(如 Oracle),支持事务与分析混合负载,广泛应用于政务、金融等关键行业,满足信创环境下自主可控要求,并提供完善的高可用与容灾能力。

    在生产环境中,引入可观测能力可及时发现慢查询、锁等待等隐性问题,实现快速定位与预警,降低故障影响,保障业务稳定运行。

    观测云

    观测云是一款专为 IT 工程师打造的全链路可观测产品,集成基础设施监控、应用性能监控(APM)与日志管理,能够为整个技术栈提供实时可观测能力。结合 KingbaseES 数据库使用时,可对数据库关键指标、慢查询、锁等待及调用链进行统一观测与关联分析,实现从应用到数据库的端到端问题定位。

    通过这种一体化可观测能力,工程师不仅可以快速发现性能瓶颈与异常,还能提前预警潜在风险,提升故障处理效率与系统稳定性,进一步保障核心业务在信创环境下的安全与可靠运行。

    安装 KingbaseES

    参考文档:https://docs.kingbase.com.cn/cn/KES-V9R1C10/install/02-docker-install/

    1、使用root用户执行创建数据库持久化存储路径,在宿主机执行如下命令:

    mkdir -p /opt/kingbase
    mkdir -p /opt/kingbase/data
    chmod -R 755 /opt/kingbase/data
    

    2、导入镜像

    下载地址:https://www.kingbase.com.cn/download.html

    docker load -i /opt/kingbase/kingbase.tar
    

    3、运行容器

    docker run -idt --privileged \
      -p 5432:5432 \
      -v /opt/kingbase/data:/home/kingbase/userdata \
      --restart=always \
      -e NEED_START=yes \
      -e DB_USER=root \
      -e DB_PASSWORD=123456 \
      -e DB_MODE=oracle \
      -e ENCODING=UTF8 \
      --name kingbase \
      kingbase_v009r001c010b0004_single_x86:v1 \
      /usr/sbin/init
    

    部署 DataKit

    DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。

    登录观测云控制台,在「集成」 - 「DataKit」 选择对应安装方式,当前采用 Linux 主机部署 DataKit。

    采集器安装方法

    前置条件

    -- 创建监控用户
    CREATE USER datakit with password 'datakit';
    -- 授权(兼容不同版本)
    DO $$
    BEGIN
        BEGIN
            GRANT sys_monitor TO datakit;
            RAISE NOTICE 'granted sys_monitor';
        EXCEPTION WHEN undefined_object THEN
            GRANT pg_monitor TO datakit;
            RAISE NOTICE 'granted pg_monitor';
        END;
    END $$;
    

    采集器配置

    1、进入 DataKit 安装目录下的 conf.d/samples 目录,复制 kingbase.conf.sample 并命名为 kingbase.conf

    2、提取名为 kingbase 的容器的 IP 信息,用于host

    docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' kingbase
    

    [[inputs.kingbase]]
      # host name
      host = "172.17.0.2"
    
      ## port
      port = 54321
    
      ## user name
      user = "datakit"
    
      ## password
      password = "datakit"
    
      ## database name
      database = "kingbase"
    
      ## Slow query threshold in milliseconds, default 1000
      slow_query_threshold = 1000
    
      ## @param connect_timeout - number - optional - default: 10s
      # connect_timeout = "10s"
    
      interval = "10s"
    
      ## Set true to enable election
      election = true
    
      ## Metric name in metric_exclude_list will not be collected.
      #
      metric_exclude_list = [""]
    
      ## Run a custom SQL query and collect corresponding metrics.
      #
      # [[inputs.kingbase.custom_queries]]
      #   sql = "SELECT datname AS db, numbackends AS backends FROM sys_catalog.sys_stat_database"
      #   metric = "kingbase_custom_query"
      #   tags = ["db"]
      #   fields = ["backends"]
      #   interval = "30s"
    
      ## Log collection
      #
      [inputs.kingbase.log]
        # files = []
        # pipeline = "kingbase.p"
        ## The pattern should be a regexp. Note the use of '''this regexp'''
        ## regexp link: https://golang.org/pkg/regexp/syntax/#hdr-Syntax
        multiline_match = '''^\\d{4}-\\d{2}-\\d{2}\\s+\\d{2}:\\d{2}:\\d{2}\\s+\\[.*?\\]'''
    
      [inputs.kingbase.tags]
        # some_tag = "some_value"
        # more_tag = "some_other_value"
    

    场景视图

    登录观测云控制台,点击「场景」-「新建仪表板」,在模板列表中选择 “Kingbase 监控视图”,即可快速创建 KES 数据库的监控仪表板。

    监控器(告警)

    观测云内置了监控器模板,可以选择从模版创建监控器,并开启适合业务的监控器以及时通知相关成员关注问题,触发条件、频率等信息可以依据实际业务进行调整。

    登录 观测云控制台,点击「监控」 -「新建监控器」,输入 “Kingbase”, 选择对应的监控器,点击 “确定” 即可添加

    总结

    将 KES(KingbaseES)数据库接入观测云后,可以围绕数据库运行全生命周期建立统一的可观测体系,对连接、性能、资源消耗及SQL执行情况进行持续跟踪,并与日志、链路数据进行关联分析。这样不仅能够清晰还原问题发生路径,还能显著缩短排查与恢复时间。

    在实际落地中,该方案无需改造业务系统,即可提供可视化分析与智能告警能力,帮助运维团队从“被动处理问题”转向“主动发现风险”,从而提升数据库运行的稳定性与可控性,更好支撑信创环境下核心业务的长期稳定运行。

    联系我们

    加入社区

    微信扫码
    加入官方交流群

    立即体验

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

    立即开始

    选择观测云版本

    代码托管平台