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. 检查网络连通性:使用 pingtelnet 测试服务器可达性
  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,可以有效提高数据库运维效率,及时发现和解决问题,保障数据库系统的稳定运行。

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