kes监控组件安装
- 环境准备
- 创建监控用户
useradd -m -s /bin/bash -d /home/kmonitor kmonitor
passwd k_monitor
usermod –a –G kingbase kmonitor
- 检查java版本
java –version
[kmonitor@kingbase node_exporter]$ java -version
java version "1.8.0_341"
Java(TM) SE Runtime Environment (build 1.8.0_341-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.341-b10, mixed mode)
- 端口检查
PROMETHEUS_PORT:9091
KINGBASE_EXPORTER_PORT:1234
NODE_EXPORTER_PORT:9200
Kmonitor:3000
- 时间同步
查看监控浏览器的主机时间和监控服务器时间一致
# 服务器时区调整命令
timedatectl set-timezone Asia/Shanghai
# 服务器调整时间命令
date -s "yyyy-MM-dd HH:mm:ss"
- 安装
在主节点安装kingbase_export用于收集数据库监控数据(连接数、数据语句等),在每一个集群节点安装node_export用于收集节点主机监控数据(cpu利用率、内存、I/O等)
部署架构:
- 上传监控介质:
解压后形成monitor目录,结构如下:
其中:
kingbase_exporter:负责采集数据库信息,一个集群只需要安装一个
node_exporter:负责采集主机信息,集群每个节点都需要安装
prometheus:收集两个exporter采集的信息,并安装时间序列存储
kmonitor:相当于grafna,以图像化方式显示prometheus收集的监控信息
scripts:监控工具脚本
针对不同的数据库类型生成监控元数据
- 为被监控的数据库创建用户
/opt/Kingbase/ES/V8/Server/bin/ksql test system -f kingbase_exporter/init_sql/kmonitor_user.sql
- 配置kmonitor.properties文件(参数解释见附件)
# kmonitor server ("kmonitor" "prometheus" "consul" "kingbase_exporter" "node_exporter" "kingbase_alarm")
KMONITOR_SERVER=("kmonitor" "prometheus" "kingbase_exporter" "node_exporter")
KMONITOR_SERVER_ADDRESS="192.168.85.139"
KMONITOR_DATA_PATH=""
# start as TLS, enable(1) disable(0)
ENABLE_TLS=0
# kmonitor config
KMONITOR_PORT=3000
# prometheus config, type: consul, json.
PROMETHEUS_PORT=9091
PROMETHEUS_CONFIG_TYPE=json
# kingbase_exporter config
KINGBASE_EXPORTER_PORT=1234
# node_exporter config
NODE_EXPORTER_PORT=9200
# consul config
CONSUL_SERVER_PORT=8300
CONSUL_SERF_LAN_PORT=8301
CONSUL_SERF_WAN_PORT=8202
CONSUL_HTTP_PORT=8500
CONSUL_HTTPS_PORT=8501
CONSUL_DNS_PORT=8600
CONSUL_ACL_TOKEN=""
# kingbase config
KINGBASE_ADDRESS="192.168.85.139"
KINGBASE_PORT=54321
KINGBASE_DB="test"
KINGBASE_USER="kmonitor"
KINGBASE_PASSWD="ENC(xzTKCBNRPxyDtxzpDyqUfnMetWgQ3ZUF)"
# kingbase_alarm config
KINGBASE_ALARM_PORT=54545
# register config, clusterName_exporterIp_exporterPort
REGISTER_KINGBASE_LIST=("KingbaseCluster_192.168.85.139_1234")
REGISTER_NODE_LIST=("KingbaseCluster_192.168.85.139_9200")
# deregister config, clusterName_exporterIp_exporterPort
#DEREGISTER_LIST=("KingbaseCluster_0.0.0.0_1234")
# cron config
CRON_NAME=""
- 使用脚本部署监控组件
[kmonitor@kingbase monitor]$ ./kmonitor.sh start
[INFO] >> ############################################################
[INFO] >> KMonitor监控工具
[INFO] >> ############################################################
[INFO] >> kingbase_exporter 初始化完成
[INFO] >> kingbase_exporter 启动成功
[INFO] >> node_exporter 初始化完成
[INFO] >> node_exporter 启动成功
[INFO] >> kingbase_prometheus 初始化完成
[INFO] >> kingbase_prometheus 启动成功
[INFO] >> kmonitor 初始化完成
[INFO] >> kmonitor 启动成功
[INFO] >> ############################################################
日志在同路径下的:kmonitor.log
[kmonitor@kingbase monitor]$ ./kmonitor.sh register
[INFO] >> ############################################################
[INFO] >> KMonitor监控工具
[INFO] >> ############################################################
[INFO] >> KingbaseCluster - 192.168.85.139:1234 服务已提交注册!
[INFO] >> KingbaseCluster - 192.168.85.139:9200 服务已提交注册!
[INFO] >> ############################################################
- 查看监控状态
[kmonitor@kingbase monitor]$ ./kmonitor.sh status
[INFO] >> ############################################################
[INFO] >> KMonitor监控工具
[INFO] >> ############################################################
[INFO] >> kmonitor 服务正在运行
[INFO] >> kingbase_prometheus 服务正在运行
[INFO] >> kingbase_exporter 服务正在运行
[INFO] >> kingbase_node_exporter 服务正在运行
[INFO] >> ############################################################
- 浏览器查看监控数据
访问:kmonitor所在主机的ip:3000端口
默认用户名/密码:admin/K1ngb@se
- 附件参考
kmonitor.properties监控配置文件
参数名 | 默认值 | 注释 |
KMONITOR_SERVER | ("kmonitor" "prometheus" "consul" "kingbase_exporter" "node_exporter") | 必填,部署监控工具组件名 称,包括kmonitor、prometheus、consul、kingbase_exporter、node_exporter |
KMONITOR_SERVER_ADDRESS | “” | 监控服务器IP地址,脚本无法正确获取地址时手动填入 |
KMONITOR_DATA_PATH | “” | 监控服务采集数据和服务数 据存储路径 |
ENABLE_TLS | 0 | 是否开启HTTPS加密协议,关闭(0)开启(1) |
KMONITOR_PORT | 3000 | 必填,kmonitor可视化服务 端口号(grafna端口) |
PROMETHEUS_PORT | 9091 | 必填,prometheus采集及存储服务端口号 |
KINGBASE_EXPORTER_P ORT | 1234 | 必填,kingbase_exporter端口号 |
NODE_EXPORTER_PORT | 9200 | 必填,node_exporter端口号 |
CONSUL_SERVER_PORT | 8300 | 必填,consul内部服务端口 号 |
CONSUL_SERF_LAN_PORT | 8301 | |
CONSUL_SERF_WAN_PORT | 8202 | |
CONSUL_DNS_PORT | 8600 | |
CONSUL_HTTP_PORT | 8500 | 必填,consul http 端口号 |
CONSUL_HTTPS_PORT | 8501 | consul https 端口号, ENABLE_TLS参数开启时必 须配置 |
CONSUL_ACL_TOKEN | consul服务注册token | |
KINGBASE_ADDRESS | “0.0.0.0“ | 必填,数据库IP地址,填写数据库对外部应用开放的网络地址 |
KINGBASE_PORT | “54321” | 必填,数据库端口号 |
KINGBASE_DB | "test" | 必填,数据库名称 |
以下参数对应文件:kingbase_exporter/application.yml | ||
KINGBASE_USER | "kmonitor" | 必填,数据库监控用户名称 |
KINGBASE_PASSWD | "ENC(xzTKCBNRPxyDtxzp DyqUfnMetWgQ3ZUF)" | 必填,数据库监控用户密 码,默认为K1ngb@se#2024加密密码,可直接填入明文密码 |
REGISTER_KINGBASE_LIST | ("KingbaseCluster_0.0.0.0_1 234") | 必填,数据库探针服务地址以下划线为分隔符前面为集群名称后面为IP地址,可填同时填写多个集群信息,多个服务逗号分隔,e.g.:(“cluster1_node11_1234““cluster1_node12_1234““cluster2_node21_1234“) |
结束 | ||
以下node_export信息,在prometheus配置里面:prometheus/prometheus_consul.yaml | ||
REGISTER_NODE_LIST | ("KingbaseCluster_0.0.0.0_9200") | 必填,服务器探针服务地址,使用方式同REGISTER_KINGBASE_LIST |
DEREGISTER_LIST | 需要注销的服务信息,使用方式同REGISTER_KINGBASE_LIST | |
CRON_NAME | 操作系统crontab命令 |
passwd_kmonitor.sh
修改数据库kmonitor用户密码,自动替换kmonitor.properties中密码参数,禁止直接传入明文密码时使用passwd_kmonitor_en.sh脚本可支持传入base64加密密码,使用方法一致
# 使用方法:
bash monitor/scripts/passwd_kmonitor.sh "明文密码"
# 加密脚本使用方法:
bash monitor/scripts/passwd_kmonitor_en.sh "base64密码"