Skip to content

KingBaseES KEM 监控平台介绍 ​

KingBaseES Manager(KEM)是一款专为 KingBaseES 数据库设计的企业级监控管理平台,提供全面的数据库监控、性能分析、告警管理和自动化运维能力。KEM 支持集中管理多个 KingBaseES 实例,实时监控数据库运行状态,帮助运维人员快速定位和解决问题。

核心功能 ​

  • 实时监控:全方位监控数据库性能指标、资源使用情况和运行状态
  • 告警管理:灵活的告警规则配置、多渠道通知和告警自动处理
  • 性能分析:深度分析数据库性能瓶颈,提供优化建议
  • 自动化运维:支持批量操作、自动备份、定期巡检等自动化任务
  • 集中管理:统一管理多个数据库实例,支持集群和分布式环境
  • 可视化报表:丰富的图表和报表,直观展示数据库运行趋势

KEM 架构与组件 ​

架构设计 ​

KEM 采用分层架构设计,主要包含以下组件:

  • 监控服务器:核心组件,负责数据采集、存储和分析
  • 代理节点:部署在数据库服务器上,负责采集本地数据库指标
  • Web 控制台:提供可视化界面,用于配置和查看监控数据
  • 告警引擎:处理告警规则匹配、通知发送和告警升级
  • 数据存储:存储监控历史数据和配置信息

组件交互流程 ​

  1. 代理节点定期采集数据库性能指标
  2. 将采集到的数据发送至监控服务器
  3. 监控服务器对数据进行处理和存储
  4. 告警引擎根据配置的规则进行匹配
  5. 触发告警时,通过多种渠道发送通知
  6. 用户通过 Web 控制台查看监控数据和告警信息

KEM 安装与配置 ​

系统要求 ​

组件最低配置推荐配置
CPU4 核8 核或以上
内存8 GB16 GB 或以上
存储100 GB500 GB 或以上
操作系统CentOS 7.6+/Ubuntu 18.04+CentOS 7.9+/Ubuntu 20.04+
JDK 版本JDK 1.8JDK 11

安装步骤 ​

1. 准备安装包 ​

从 KingBaseES 官方获取 KEM 安装包,解压到指定目录:

bash
tar -zxvf kem-3.0.0.tar.gz -C /opt/kingbase/
cd /opt/kingbase/kem-3.0.0/

2. 配置安装参数 ​

编辑 install.properties 文件,配置安装参数:

properties
# 监控服务器地址
server.ip=192.168.1.100
# 监控服务器端口
server.port=8080
# 数据库连接信息
db.url=jdbc:kingbase8://localhost:54321/kem
db.username=system
db.password=YourPassword123
# 数据存储路径
data.path=/opt/kingbase/kem-data

3. 执行安装脚本 ​

bash
./install.sh

4. 启动服务 ​

bash
# 启动 KEM 服务
systemctl start kem-server
# 设置开机自启
systemctl enable kem-server
# 查看服务状态
systemctl status kem-server

代理节点部署 ​

1. 安装代理 ​

在数据库服务器上执行代理安装:

bash
./agent-install.sh --server-ip=192.168.1.100 --server-port=8080

2. 配置代理 ​

编辑代理配置文件 agent.properties:

properties
# 监控服务器地址
server.ip=192.168.1.100
# 监控服务器端口
server.port=8080
# 代理采集间隔(秒)
collect.interval=30
# 日志级别
log.level=INFO

3. 启动代理服务 ​

bash
systemctl start kem-agent
systemctl enable kem-agent

监控功能与使用 ​

监控指标 ​

KEM 监控的核心指标包括:

  • 性能指标:CPU 使用率、内存使用率、磁盘 I/O、网络流量
  • 数据库指标:连接数、活跃会话数、锁等待、慢查询数
  • SQL 性能:SQL 执行耗时、执行次数、命中率
  • 存储指标:表空间使用率、数据文件大小、索引大小
  • 集群指标:主从延迟、同步状态、节点状态

监控仪表盘 ​

Web 控制台提供多种仪表盘:

  • 概览仪表盘:展示所有实例的关键指标汇总
  • 性能仪表盘:详细展示数据库性能指标
  • 存储仪表盘:监控存储使用情况
  • SQL 仪表盘:分析 SQL 执行性能
  • 集群仪表盘:监控集群运行状态

实时监控示例 ​

查看实例性能 ​

  1. 登录 KEM Web 控制台
  2. 在左侧导航栏选择「实例管理」
  3. 点击目标实例,进入「性能监控」页面
  4. 查看实时性能指标图表

监控慢查询 ​

配置慢查询监控:

sql
-- 在 KingBaseES 中开启慢查询日志
ALTER SYSTEM SET log_min_duration_statement = 1000;
ALTER SYSTEM SET log_statement = 'slow';
SELECT sys_reload_conf();

在 KEM 控制台中,进入「SQL 监控」→「慢查询分析」查看慢查询详情。

告警管理 ​

告警规则配置 ​

1. 创建告警规则 ​

  1. 登录 KEM Web 控制台
  2. 选择「告警管理」→「告警规则」
  3. 点击「新建规则」,配置规则参数:
    • 规则名称:CPU 使用率过高
    • 监控对象:实例
    • 指标:CPU 使用率
    • 阈值:> 80%
    • 持续时间:5 分钟
    • 告警级别:警告

2. 告警通知渠道 ​

支持多种通知渠道:

  • 邮件通知:配置 SMTP 服务器信息
  • 短信通知:集成短信网关
  • 微信通知:通过企业微信或微信公众号发送
  • 钉钉通知:配置钉钉机器人
  • API 回调:触发自定义 API 进行告警处理

3. 告警自动处理 ​

配置告警自动处理规则:

bash
# 示例:当 CPU 使用率持续过高时,自动收集诊断信息
echo "#!/bin/bash" > /opt/kingbase/kem-auto-handle.sh
echo "# 获取告警实例信息" >> /opt/kingbase/kem-auto-handle.sh
echo "INSTANCE_ID=$1" >> /opt/kingbase/kem-auto-handle.sh
echo "# 收集 CPU 使用率详情" >> /opt/kingbase/kem-auto-handle.sh
echo "top -bn 1 > /opt/kingbase/diag/${INSTANCE_ID}_cpu_top.txt" >> /opt/kingbase/kem-auto-handle.sh
echo "# 收集数据库会话信息" >> /opt/kingbase/kem-auto-handle.sh
echo "ksql -U system -d test -c \"SELECT * FROM v\$session WHERE state = 'active' ORDER BY cpu_time DESC;\" > /opt/kingbase/diag/${INSTANCE_ID}_active_sessions.txt" >> /opt/kingbase/kem-auto-handle.sh
chmod +x /opt/kingbase/kem-auto-handle.sh

自动化运维 ​

批量操作 ​

1. 批量添加实例 ​

使用脚本批量添加监控实例:

bash
#!/bin/bash
# 批量添加 KingBaseES 实例到 KEM

# KEM 服务器信息
KEM_SERVER="192.168.1.100"
KEM_PORT="8080"
KEM_USER="admin"
KEM_PASSWORD="admin123"

# 实例列表(IP:PORT:DB:USER:PASSWORD)
INSTANCES=(
  "192.168.1.101:54321:test:system:password123"
  "192.168.1.102:54321:test:system:password123"
  "192.168.1.103:54321:test:system:password123"
)

for INSTANCE in "${INSTANCES[@]}"; do
  IFS=":" read -r IP PORT DB USER PASSWORD <<< "$INSTANCE"
  echo "添加实例:$IP:$PORT"
  curl -X POST "http://$KEM_SERVER:$KEM_PORT/api/v1/instances" \
    -H "Content-Type: application/json" \
    -u "$KEM_USER:$KEM_PASSWORD" \
    -d "{
      \"name\": \"KingBase-$IP\",
      \"ip\": \"$IP\",
      \"port\": $PORT,
      \"database\": \"$DB\",
      \"username\": \"$USER\",
      \"password\": \"$PASSWORD\",
      \"type\": \"kingbase\",
      \"version\": \"V8R6C5\"
    }"
done

定期巡检 ​

配置定期巡检任务:

  1. 选择「自动化运维」→「巡检任务」
  2. 点击「新建任务」
  3. 配置巡检内容:
    • 任务名称:每日数据库巡检
    • 执行频率:每天 00:00
    • 巡检对象:所有实例
    • 巡检项目:性能、存储、连接、SQL 等
  4. 配置巡检报告发送方式

V8 R6 与 V8 R7 版本差异 ​

架构差异 ​

特性V8 R6V8 R7
监控架构集中式支持分布式架构
代理模式仅主动上报主动上报 + 被动拉取
数据存储本地文件支持外部数据库存储

功能差异 ​

功能V8 R6V8 R7
指标采集基础指标支持自定义指标采集
告警规则静态规则支持动态告警规则
自动化运维基础批量操作支持脚本编排和自动化工作流
可视化基础仪表盘支持自定义仪表盘和大屏展示
集群监控有限支持全面支持集群监控和管理
AI 分析无支持 AI 性能分析和预测

配置差异 ​

V8 R7 新增配置项 ​

properties
# 分布式架构配置
distributed.enable=true
# 自定义指标配置
custom.metrics.path=/opt/kingbase/custom-metrics/
# AI 分析开关
ai.analysis.enable=true
# 动态告警规则配置
dynamic.rule.enable=true

生产环境最佳实践 ​

部署最佳实践 ​

  1. 监控服务器高可用:

    • 部署主备监控服务器,避免单点故障
    • 使用负载均衡分发代理请求
  2. 代理配置优化:

    • 根据数据库规模调整采集间隔
    • 对关键指标设置更短的采集间隔
    • 非关键指标设置更长的采集间隔,减少资源消耗
  3. 数据存储优化:

    • 定期清理历史数据,保留 3-6 个月的监控数据
    • 对重要指标进行长期归档
    • 使用 SSD 存储提高查询性能

监控策略最佳实践 ​

  1. 分层监控:

    • 基础监控:CPU、内存、磁盘、网络
    • 数据库监控:连接数、锁、慢查询
    • 业务监控:关键业务 SQL 性能
  2. 告警分级:

    • 紧急:直接影响业务运行的问题(如实例宕机)
    • 警告:可能影响业务的问题(如 CPU 使用率过高)
    • 提示:需要关注的问题(如表空间使用率增长过快)
  3. 告警抑制:

    • 避免同一问题产生大量重复告警
    • 设置告警冷却时间
    • 配置告警依赖关系

安全最佳实践 ​

  1. 访问控制:

    • 为不同用户分配不同权限
    • 启用 MFA 认证
    • 定期更换密码
  2. 数据加密:

    • 加密传输数据
    • 加密存储敏感信息
  3. 审计日志:

    • 启用操作审计
    • 定期查看审计日志

常见问题(FAQ) ​

安装与配置 ​

Q1:KEM 安装失败,如何排查? ​

A1:查看安装日志文件 /opt/kingbase/kem-3.0.0/logs/install.log,检查错误信息。常见问题包括:

  • Java 环境配置错误:确保 JDK 版本符合要求
  • 数据库连接失败:检查数据库地址、端口、用户名和密码是否正确
  • 端口被占用:使用 netstat -tuln 检查端口占用情况

Q2:代理无法连接到监控服务器,怎么办? ​

A2:

  1. 检查代理配置文件中的服务器地址和端口是否正确
  2. 检查网络连通性:使用 ping 和 telnet 测试服务器可达性
  3. 检查防火墙设置:确保代理服务器可以访问监控服务器端口
  4. 查看代理日志:/opt/kingbase/kem-agent/logs/agent.log

监控与告警 ​

Q3:监控数据延迟严重,如何解决? ​

A3:

  1. 检查代理采集间隔设置,适当调整采集频率
  2. 检查监控服务器资源使用情况,如 CPU、内存使用率过高,考虑升级硬件
  3. 检查网络传输情况,确保网络带宽充足
  4. 对于大规模部署,考虑使用分布式架构

Q4:告警通知不及时,是什么原因? ​

A4:

  1. 检查告警规则配置,确认持续时间设置是否合理
  2. 检查通知渠道配置,如邮件 SMTP 服务器是否正常
  3. 检查告警引擎运行状态
  4. 查看告警日志,检查是否有处理延迟

性能与优化 ​

Q5:KEM 占用资源过高,如何优化? ​

A5:

  1. 调整代理采集间隔,减少采集频率
  2. 减少监控指标数量,只保留关键指标
  3. 定期清理历史数据,避免数据量过大
  4. 优化监控服务器硬件配置

Q6:如何监控 KingBaseES 集群? ​

A6:

  1. 在 KEM 中添加集群实例
  2. 配置集群监控指标,如主从延迟、同步状态
  3. 创建集群专属告警规则
  4. 使用集群仪表盘查看集群状态

版本升级 ​

Q7:如何从 V8 R6 升级到 V8 R7? ​

A7:

  1. 备份现有 KEM 配置和数据
  2. 安装 V8 R7 版本的 KEM 服务器
  3. 迁移配置和数据
  4. 升级代理节点到 V8 R7 版本
  5. 验证监控功能正常

Q8:V8 R7 新增的 AI 分析功能如何使用? ​

A8:

  1. 在 KEM 配置文件中开启 AI 分析:ai.analysis.enable=true
  2. 登录 Web 控制台,进入「AI 分析」页面
  3. 查看 AI 生成的性能分析报告和优化建议
  4. 根据建议进行数据库优化

总结 ​

KingBaseES KEM 监控平台是一款功能强大的数据库监控工具,支持全方位的性能监控、灵活的告警管理和自动化运维。通过合理配置和使用 KEM,可以有效提高数据库运维效率,及时发现和解决问题,保障数据库系统的稳定运行。

在生产环境中,建议遵循最佳实践,根据实际需求配置监控策略和告警规则,定期进行系统维护和优化。同时,关注版本更新,及时升级到最新版本以享受新功能和性能提升。