外观
KingBaseES KEM 监控平台介绍
KingBaseES Manager(KEM)是一款专为 KingBaseES 数据库设计的企业级监控管理平台,提供全面的数据库监控、性能分析、告警管理和自动化运维能力。KEM 支持集中管理多个 KingBaseES 实例,实时监控数据库运行状态,帮助运维人员快速定位和解决问题。
核心功能
- 实时监控:全方位监控数据库性能指标、资源使用情况和运行状态
- 告警管理:灵活的告警规则配置、多渠道通知和告警自动处理
- 性能分析:深度分析数据库性能瓶颈,提供优化建议
- 自动化运维:支持批量操作、自动备份、定期巡检等自动化任务
- 集中管理:统一管理多个数据库实例,支持集群和分布式环境
- 可视化报表:丰富的图表和报表,直观展示数据库运行趋势
KEM 架构与组件
架构设计
KEM 采用分层架构设计,主要包含以下组件:
- 监控服务器:核心组件,负责数据采集、存储和分析
- 代理节点:部署在数据库服务器上,负责采集本地数据库指标
- Web 控制台:提供可视化界面,用于配置和查看监控数据
- 告警引擎:处理告警规则匹配、通知发送和告警升级
- 数据存储:存储监控历史数据和配置信息
组件交互流程
- 代理节点定期采集数据库性能指标
- 将采集到的数据发送至监控服务器
- 监控服务器对数据进行处理和存储
- 告警引擎根据配置的规则进行匹配
- 触发告警时,通过多种渠道发送通知
- 用户通过 Web 控制台查看监控数据和告警信息
KEM 安装与配置
系统要求
| 组件 | 最低配置 | 推荐配置 |
|---|---|---|
| CPU | 4 核 | 8 核或以上 |
| 内存 | 8 GB | 16 GB 或以上 |
| 存储 | 100 GB | 500 GB 或以上 |
| 操作系统 | CentOS 7.6+/Ubuntu 18.04+ | CentOS 7.9+/Ubuntu 20.04+ |
| JDK 版本 | JDK 1.8 | JDK 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-data3. 执行安装脚本
bash
./install.sh4. 启动服务
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=80802. 配置代理
编辑代理配置文件 agent.properties:
properties
# 监控服务器地址
server.ip=192.168.1.100
# 监控服务器端口
server.port=8080
# 代理采集间隔(秒)
collect.interval=30
# 日志级别
log.level=INFO3. 启动代理服务
bash
systemctl start kem-agent
systemctl enable kem-agent监控功能与使用
监控指标
KEM 监控的核心指标包括:
- 性能指标:CPU 使用率、内存使用率、磁盘 I/O、网络流量
- 数据库指标:连接数、活跃会话数、锁等待、慢查询数
- SQL 性能:SQL 执行耗时、执行次数、命中率
- 存储指标:表空间使用率、数据文件大小、索引大小
- 集群指标:主从延迟、同步状态、节点状态
监控仪表盘
Web 控制台提供多种仪表盘:
- 概览仪表盘:展示所有实例的关键指标汇总
- 性能仪表盘:详细展示数据库性能指标
- 存储仪表盘:监控存储使用情况
- SQL 仪表盘:分析 SQL 执行性能
- 集群仪表盘:监控集群运行状态
实时监控示例
查看实例性能
- 登录 KEM Web 控制台
- 在左侧导航栏选择「实例管理」
- 点击目标实例,进入「性能监控」页面
- 查看实时性能指标图表
监控慢查询
配置慢查询监控:
sql
-- 在 KingBaseES 中开启慢查询日志
ALTER SYSTEM SET log_min_duration_statement = 1000;
ALTER SYSTEM SET log_statement = 'slow';
SELECT sys_reload_conf();在 KEM 控制台中,进入「SQL 监控」→「慢查询分析」查看慢查询详情。
告警管理
告警规则配置
1. 创建告警规则
- 登录 KEM Web 控制台
- 选择「告警管理」→「告警规则」
- 点击「新建规则」,配置规则参数:
- 规则名称: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定期巡检
配置定期巡检任务:
- 选择「自动化运维」→「巡检任务」
- 点击「新建任务」
- 配置巡检内容:
- 任务名称:每日数据库巡检
- 执行频率:每天 00:00
- 巡检对象:所有实例
- 巡检项目:性能、存储、连接、SQL 等
- 配置巡检报告发送方式
V8 R6 与 V8 R7 版本差异
架构差异
| 特性 | V8 R6 | V8 R7 |
|---|---|---|
| 监控架构 | 集中式 | 支持分布式架构 |
| 代理模式 | 仅主动上报 | 主动上报 + 被动拉取 |
| 数据存储 | 本地文件 | 支持外部数据库存储 |
功能差异
| 功能 | V8 R6 | V8 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生产环境最佳实践
部署最佳实践
监控服务器高可用:
- 部署主备监控服务器,避免单点故障
- 使用负载均衡分发代理请求
代理配置优化:
- 根据数据库规模调整采集间隔
- 对关键指标设置更短的采集间隔
- 非关键指标设置更长的采集间隔,减少资源消耗
数据存储优化:
- 定期清理历史数据,保留 3-6 个月的监控数据
- 对重要指标进行长期归档
- 使用 SSD 存储提高查询性能
监控策略最佳实践
分层监控:
- 基础监控:CPU、内存、磁盘、网络
- 数据库监控:连接数、锁、慢查询
- 业务监控:关键业务 SQL 性能
告警分级:
- 紧急:直接影响业务运行的问题(如实例宕机)
- 警告:可能影响业务的问题(如 CPU 使用率过高)
- 提示:需要关注的问题(如表空间使用率增长过快)
告警抑制:
- 避免同一问题产生大量重复告警
- 设置告警冷却时间
- 配置告警依赖关系
安全最佳实践
访问控制:
- 为不同用户分配不同权限
- 启用 MFA 认证
- 定期更换密码
数据加密:
- 加密传输数据
- 加密存储敏感信息
审计日志:
- 启用操作审计
- 定期查看审计日志
常见问题(FAQ)
安装与配置
Q1:KEM 安装失败,如何排查?
A1:查看安装日志文件 /opt/kingbase/kem-3.0.0/logs/install.log,检查错误信息。常见问题包括:
- Java 环境配置错误:确保 JDK 版本符合要求
- 数据库连接失败:检查数据库地址、端口、用户名和密码是否正确
- 端口被占用:使用
netstat -tuln检查端口占用情况
Q2:代理无法连接到监控服务器,怎么办?
A2:
- 检查代理配置文件中的服务器地址和端口是否正确
- 检查网络连通性:使用
ping和telnet测试服务器可达性 - 检查防火墙设置:确保代理服务器可以访问监控服务器端口
- 查看代理日志:
/opt/kingbase/kem-agent/logs/agent.log
监控与告警
Q3:监控数据延迟严重,如何解决?
A3:
- 检查代理采集间隔设置,适当调整采集频率
- 检查监控服务器资源使用情况,如 CPU、内存使用率过高,考虑升级硬件
- 检查网络传输情况,确保网络带宽充足
- 对于大规模部署,考虑使用分布式架构
Q4:告警通知不及时,是什么原因?
A4:
- 检查告警规则配置,确认持续时间设置是否合理
- 检查通知渠道配置,如邮件 SMTP 服务器是否正常
- 检查告警引擎运行状态
- 查看告警日志,检查是否有处理延迟
性能与优化
Q5:KEM 占用资源过高,如何优化?
A5:
- 调整代理采集间隔,减少采集频率
- 减少监控指标数量,只保留关键指标
- 定期清理历史数据,避免数据量过大
- 优化监控服务器硬件配置
Q6:如何监控 KingBaseES 集群?
A6:
- 在 KEM 中添加集群实例
- 配置集群监控指标,如主从延迟、同步状态
- 创建集群专属告警规则
- 使用集群仪表盘查看集群状态
版本升级
Q7:如何从 V8 R6 升级到 V8 R7?
A7:
- 备份现有 KEM 配置和数据
- 安装 V8 R7 版本的 KEM 服务器
- 迁移配置和数据
- 升级代理节点到 V8 R7 版本
- 验证监控功能正常
Q8:V8 R7 新增的 AI 分析功能如何使用?
A8:
- 在 KEM 配置文件中开启 AI 分析:
ai.analysis.enable=true - 登录 Web 控制台,进入「AI 分析」页面
- 查看 AI 生成的性能分析报告和优化建议
- 根据建议进行数据库优化
总结
KingBaseES KEM 监控平台是一款功能强大的数据库监控工具,支持全方位的性能监控、灵活的告警管理和自动化运维。通过合理配置和使用 KEM,可以有效提高数据库运维效率,及时发现和解决问题,保障数据库系统的稳定运行。
在生产环境中,建议遵循最佳实践,根据实际需求配置监控策略和告警规则,定期进行系统维护和优化。同时,关注版本更新,及时升级到最新版本以享受新功能和性能提升。
