金仓数据库KMonitor使用指南--3. 部署

目录

3.1. 部署要求

3.1.1. 操作系统

3.1.2. 芯片架构

3.1.3. 部署路径

3.1.4. 网络权限

3.1.5. 执行权限

3.1.6. 浏览器版本

3.1.7. 时间同步

3.2. 部署架构

3.3. 服务部署

3.3.1. 安装包结构

3.3.2. 解压安装包

3.3.3. 权限管理

3.3.4. 脚本配置

3.3.5. 使用监控系统

3.3.6. 启用邮箱告警

3.3.7. 可视化配置告警规则


KMonitor 通过在数据库服务中部署探针,实现各种指标检测,并提供邮件、短信告警功能,本章节主要介绍 KMonitor 的部署。

3.1. 部署要求

3.1.1. 操作系统

KMonitor仅支持常规的或国产的Linux操作系统部署,比如常规的CentOS、RedHat或者UOS、麒麟等国产系统。

3.1.2. 芯片架构

KMonitor支持基于Linux的AMD64、ARM64、MIPS64LE、LOONG64、保密专用机等平台部署,在部署时,请根据相关平台选择安装介质。

3.1.3. 部署路径

在进行KMonitor监控系统部署时,请将各服务的部署路径固定为“/opt/kingbase/monitor/”目录下,以确保整体一致性(安装包请在/opt/kingbase下解压),在进行问题排查时,方便协查人员进行相关信息的检索,如有特殊原因切换至其他路径时,请在需求技术支持时,提前告知。

3.1.4. 网络权限

在进行KMonitor监控部署时,请确保各服务器之间网络通畅,防止出现网络问题导致的安装失败,使用以下命令检查端口号。

telnet $IP $PORT

报错Connection refused说明端口未被占用。

3.1.5. 执行权限

在进行KMonitor监控部署时,请确保安装包解压后的执行程序具有可执行权限,如果权限不足执行对应报错程序的授权命令(执行授权命令时,确保执行命令用户具有授权权限)。

chmod 755 /opt/Kingbase/monitor/prometheus/kingbase_prometheus
chmod 755 /opt/Kingbase/monitor/prometheus/consul/kingbase_consul
chmod 755 /opt/Kingbase/monitor/node_exporter/kingbase_node_exporter
chmod 755 /opt/Kingbase/monitor/kmonitor/bin/kmonitor
chmod 755 /opt/Kingbase/monitor/alertmanager/kingbase_alertmanager

3.1.6. 浏览器版本

支持常见的浏览器,比如火狐浏览器、360浏览器、IE浏览器以及Chrome(75版本及以上)浏览器。

3.1.7. 时间同步

在启动KMonitor监控系统前,请确保集群内部时间同步,以及客户端与服务端时间差小于5分钟。

3.2. 部署架构

监控系统建议部署架构:

3.3. 服务部署

本章节主要对KMonitor部署进行详细说明。

3.3.1. 安装包结构

3.3.2. 解压安装包

tar xzf KMonitor_v2.1.1_V8R*_*.tar.gz && cd monitor

3.3.3. 权限管理

3.3.3.1. 扩展管理

  • 加载插件,在使用之前将sys_kwr、sys_stat_statements添加至kingbase.conf配置文件的shared_preload_libraries选项中,并重启KingbaseES 数据库,如果数据库不支持sys_kwr扩展仅开启sys_stat_statements以及配置common以及相关参数配置。

shared_preload_libraries = ' sys_kwr, sys_stat_statements'

  • 参数配置,要想使用KWR的全部报告功能,建议在kingbase.conf中添加以下参数:

# common
track_io_timing = on # 开启IO计时统计功能,默认为off
track_functions = 'all' # 开启函数统计功能
# sys_kwr
track_sql = on # 开启统计 sql 时间,等待事件,IO
track_wait_timing = on # 开启累积式等待事件记录等待时间的功能,默认为off
sys_kwr.enable = on # 自动对收集到的数据生成快照并保存到kwr库
# sys_stat_statements
sys_stat_statements.track = 'top' # 跟踪统计SQL语句的访问,推荐用 'top',默认为'none'

  • 创建插件,进入kingbase数据库中创建插件:

create extension sys_kwr;
create extension sys_stat_statements

  • 如果不启用插件(默认启用),需要修改插件对应参数KINGBASE_ENABLE_SYS_STAT_STATEMENTS或 KINGBASE_ENABLE_SYS_KWR为false,参考3.3.4.1小节。

KINGBASE_ENABLE_SYS_STAT_STATEMENTS=false
KINGBASE_ENABLE_SYS_KWR=false

3.3.3.2. 用户管理

使用system用户登陆监控目标数据库,执行scripts/UserInit.sql中语句,创建kmonitor用户并进行授权。

-- 创建监控用户
CREATEUSER kmonitor with password 'kmonitor';
-- 添加用户标注
COMMENTON ROLE kmonitor IS'kingbase KMonitor user';
-- 授权监控用户
-- V8R3或其他版本提示权限不足问题,使用SYSTEM用户登录,或者赋予对应权限
GRANT pg_monitor TO kmonitor;-- V008R006
-- 授权监控用户使用kwr扩展
-- 未开启kwr插件或不支持kwr插件版本请执行scripts/FunctionInit.sql中对应版本创建语句
GRANT USAGE ON SCHEMA perf TO kmonitor;

3.3.4. 脚本配置

进入monitor目录下对脚本中参数进行修改。

3.3.4.1. kmonitor.sh

kmonitor端口号:默认3000端口

# kmonitor config
KMONITOR_PORT=3000

prometheus配置:默认9090端口、存储位置prometheus/data、存储日期15天、存储块最大为512MB。

# prometheus config
PROMETHEUS_PORT=9090
STORAGE_TSDB_PATH="data"
STORAGE_TSDB_RETENTION_TIME="15d"
STORAGE_TSDB_RETENTION_SIZE="512MB"

kingabse_exporter端口号:默认1234端口。

# kingbase_exporter config
KINGBASE_EXPORTER_PORT=1234

node_exporter端口号:默认9100端口。

# node_exporter config
NODE_EXPORTER_PORT=9100

consul端口号:默认8501端口、其余为内部通信端口号无特殊情况无需修改。

# 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_DATA="consul_data"

数据库连接信息:默认端口54321、数据库test、用户kmonitor、密码kmonitor。

# kingbase config
KINGBASE_ADDRESS=127.0.0.1
KINGBASE_PORT=54321
KINGBASE_DB="test"
KINGBASE_USER=kmonitor
KINGBASE_PASSWD=kmonitor

是否启用插件对应指标:默认启用,如果不启用修改为false。

KINGBASE_ENABLE_SYS_STAT_STATEMENTS=true
KINGBASE_ENABLE_SYS_KWR=true

alertmanager端口号:默认9093端口。

# alertmanager config
ALERTMANAGER_PORT=9093

是否在本地启动kingbase_exporter、node_exporter、alertmanager:默认不启动。

# local install enable(1) disable(0)
KINGBASE_EXPORTER_LOCAL_INSTALL=0
NODE_EXPORTER_LOCAL_INSTALL=0
ALERTMANAGER_LOCAL_INSTALL=0

提示

  1. 默认kingbase_exporter和node_exporter选为不启动,将会生成对应服务tar压缩包,可以复制到数据库服务器解压运行,此操作不可逆如果已经生成tar包后又改为启动状态,需要手动解压tar包至当前目录下。

# 复制命令
scp ./kingabse_exporter.tar.gz $USER@$IP:/opt/kingbase/monitor
scp ./node_exporter.tar.gz $USER@$IP:/opt/kingbase/monitor
# 解压命令在数据库服务器执行
cd /opt/kingbase/monitor
tar xzf ./kingabse_exporter.tar.gz
tar xzf ./node_exporter.tar.gz
# 启动命令(启动脚本在组件目录下)
bash start.sh
# 停止命令(停止脚本在组件目录下)仅为说明,使用监控系统保持运行状态
bash stop.sh

  1. 要想使用kmonitor.sh查看alertmanager状态,需要在配置好alertmanager服务后将此处启动状态改为1。

过滤进程关键字列表:默认为空,使用情况参考3.3.5.2提示3。

# excluded application
EXCLUDED_PROCESS=("")

3.3.4.2. scripts/register.sh

提示

此注册服务脚本每次只能注册单个集群内信息,多套集群环境请重复编辑后多次执行,或复制为多个脚本执行。

数据库名称:数据库标识字段,可替换为数据库业务系统名称,单套数据库可不修改,多套数据库时必须修改,否则无法区分集群节点。

# register config
CLUSTER="Kingbase数据库"

集群所属监控用户:区别于数据库用户,该用户为kmonitor登陆用户,无特殊情况禁止修改(默认用户为kingbase情况时,kmonitor仅kingbase用户登陆时可显示监控数据)。

USER="kingbase"

consul端口号:与kmonitor.sh中"CONSUL_HTTPS_PORT"变量一致。

CONSUL_HTTPS_PORT=8501

node_exporter注册列表:需要严格按照格式添加元素(必须使用IPv4地址),如果为一主一备需要两个节点都部署node_exporter并注册。

REGISTER_NODE_LIST=("127.0.0.1_9100" "127.0.0.1_9100")

kingbase_exporter注册列表:需要严格按照格式添加元素(必须使用IPv4地址),一套数据库只需部署一个kingbase_exporter连接master节点并注册。

REGISTER_KINGBASE_LIST=("127.0.0.1_1234")

注销列表:需要严格按照格式添加元素(必须使用IPv4地址),如果注册服务时填写错误,需要在此处填写错误服务进行注销。

# deregister config
DEREGISTER_LIST=()

3.3.5. 使用监控系统

3.3.5.1. 初始化

在monitor目录下执行下面命令初始化KMonitor监控系统,此命令只配置监控系统不启动服务,如果直接执行启动命令会自动进行初始化。

bash kmonitor.sh init

3.3.5.2. 启动

在monitor目录下执行下面命令启动KMonitor监控系统(注意:启动命令仅为提交启动命令,应用程序真实启动状态需要查看stats参数或查看详细启动日志)。

bash kmonitor.sh start

提示

  1. 脚本中判断端口是否被占用依赖于netstat命令,如果服务器没有此命令请下载对应包进行安装。

  2. alertmanager需要手动配置后才可以启动。

  3. 执行脚本时报错已有相关进程正在运行,为其他不相关同名进程时,在脚本中 EXCLUDED_PROCESS 列表变量中添加关键字进行过滤(可为进程名称或进程号),添加关键字后,使用 status 参数查看进程状态同样会过滤。

ps -ef

3.3.5.3. 状态

在monitor目录下执行下面命令查看KMonitor监控系统组件状态(注意:查看状态为本机应用程序的进程存活状态)。

bash kmonitor.sh status

3.3.5.4. 停止

在monitor目录下执行下面命令停止KMonitor监控系统组件状态(注意:停止服务依赖于各个应用程序下的pid文件)提示:此小节仅为说明,继续安装需要监控系统运行状态。 提示:此小节仅为说明,继续安装需要监控系统运行状态。

bash kmonitor.sh stop

3.3.5.5. 探针服务注册

在monitor目录下执行下面命令进行服务注册与注销,重复提交注册信息会覆盖历史信息,所以填写正确的全量信息即可,不用每次修改增量信息。 提示:探针服务必须注册正确,如果有错误信息会影响监控显示。

bash scripts/register.sh

3.3.5.6. 探针服务注销

访问https://$IP:$PROMETHEUS_PORT/targets(可忽略探针状态,仅查看是否注册正确)或者执行命令查看正在采集探针信息。

curl -k https://$IP:$PROMETHEUS_PORT/api/v1/targets|python -m json.tool|grep"__address__"

如果结果中有注册错误探针信息,将IP和端口号在register.sh文件中进行填写然后执行脚本进行注销。

3.3.5.7. 登录

浏览器访问https://$IP:$KMONITOR_PORT(默认3000)进行用户登陆,admin用户具有增删改查权限(默认密码K1ngb@se),kingbase用户仅查看权限(默认密码kingbase)。

3.3.6. 启用邮箱告警

3.3.6.1. 配置邮箱服务

修改monitor/alertmanager/alertmanager.yaml:

  • 邮箱发送服务:smpt服务端口、发送名称、邮箱用户名、邮箱密码

    smtp_smarthost: ''
    smtp_from: '******@mail.com'
    smtp_auth_username: '******@mail.com'
    smtp_auth_password: '******'
    

  • 邮箱接收服务:第18行,告警邮件接收地址

    to: '******@mail.com'
    

3.3.6.2. 启动alertmanager

cd monitor/alertmanager && bash start.sh

3.3.6.3. 停止alertmanager

cd monitor/alertmanager && bash stop.sh

3.3.7. 可视化配置告警规则

3.3.7.1. 添加通知渠道

使用admin用户登陆或者其他有编辑权限的用户:

  • 点击左侧导航栏“告警”按钮 > 通知渠道

  • 点击“添加渠道”

  • 选择“Kingbase Alertmanager”后,填写名称以及alertmanager服务地址,点击“保存”按钮

3.3.7.2. 添加面板

可视化告警配置可以在新建仪表板和已有仪表板中配置,仅支持指定查询不支持变量查询:

  • 添加面板

  • 输入想要配置的告警查询规则

  • 点击告警选项⻚,点击创建告警

  • 填写告警名称,评估规则,告警规则

  • 选择告警渠道,可根据实际需求追加信息和标签

  • 保存仪表板

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值