磐维数据库,简称"PanWeiDB"。是中国移动信息技术中心首个基于中国本土开源数据库打造的面向ICT基础设施的自研数据库产品。其产品内核能力基于华为openGauss开源软件,并进一步提升了系统稳定性。
本文将指导如何快速准确部署磐维数据库PanWeiDB的监控包。
1. 工具简介
- opengauss_exporter:适配opengauss的数据采集工具,配合当前最受欢迎的监控报警框架prometheus + grafana组合实时展示数据库信息,为数据库的平稳运行保驾护航。opengauss_exporter同openGauss数据库一样是开源的,源码地址:https://gitee.com/enmotech/opengauss_exporter
- cmdb_exporter:基于opengauss_exporter开发的用于采集磐维数据库相关指标的工具之一
- node_exporter:是用于暴露 *NIX 主机指标的Exporter,比如采集CPU、内存、磁盘等信息。采用Go语言编写,不存在任何第三方依赖,下载后解压即可运行
2. 工具获取
2.1. cmdb_exporter
2.2. node_exporter
如果服务器可直接访问外网,也可以直接通过wget下载:
# x86架构
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-amd64.tar.gz
# arm架构
wget https://github.com/prometheus/node_exporter/releases/download/v1.7.0/node_exporter-1.7.0.linux-arm64.tar.gz
3. 数据库部署
3.1 部署规划
参考:磐维数据库2.0系列:om及ptk安装 搭建测试单机:
环境:centos7
用户:omm(属组dbgrp)
安装路径:/database/panweidb
安装方式:ptk
数据库版本:2.0
运行端口:17700(保留17701-17710)

注意:安装前需要确保操作系统适配磐维,内存、磁盘等物理资源充足,安装后如果出现开库失败,可以根据提示减少相关内存参数的配置以及连接数等影响预分配内存的数量。
3.2 数据库开机自启
由于单机缺少高可用组件CM,无法实现开机自启,但可通过自定义服务实现。
[root@panwei2 /]# cat>/lib/systemd/system/panwei2.service<<EOF [Unit] Description=PanWei2.0 server After=network.target [Service] ExecStart=/root/database_start.sh [Install] WantedBy=multi-user.target EOF
[root@panwei2 /]# cat>/root/database_start.sh<<EOF
#!/bin/bash
su - omm -c "gs_om -t start"
EOF
[root@panwei2 /]# chmod +x /root/database_start.sh
[root@panwei2 /]# systemctl daemon-reload [root@panwei2 /]# systemctl enable panwei2.service [root@panwei2 /]# systemctl start panwei2.service
4. exporter部署
4.1 解压、授权
[root@panwei2 /]# unzip -d /database/panweidb/ exporter.zip [root@panwei2 /]# chmod 750 -R /database/panweidb/exporter [root@panwei2 /]# chown omm: -R /database/panweidb/exporter
4.2 生成集群配置文件(OM安装忽略)
[root@panwei2 /]# su - omm [omm@panwei2 ~]$ cd /database/panweidb/ [omm@panwei2 panweidb]$ /database/panweidb/ptk/ptk gen-om-xml -f /database/panweidb/ptk/config.yaml -o cmdb1m2s_cm.xml
该操作会在/database/panweidb下生成cmdb1m2s_cm.xml
4.3 新建监控库与用户
[omm@panwei2 panweidb]$ gsql -d postgres -p 17700 postgres=# create database ogexporter ENCODING = 'UTF8' LC_COLLATE = 'C' LC_CTYPE = 'C'; postgres=# CREATE USER pwdb_exporter WITH PASSWORD 'Panwei@123' MONADMIN; postgres=# \c ogexporter postgres=# grant usage on schema dbe_perf to pwdb_exporter; postgres=# grant select on pg_stat_replication to pwdb_exporter; postgres=# grant create on tablespace pg_global to pwdb_exporter;
4.4 修改启动文件
[omm@panwei2 panweidb]$ vi /database/panweidb/exporter/run_exporter

注意:ip需要修改为本机对应ip,数据库账号密码也要输入正确,特别是启动程序的选择,如果是amd架构,选PanWeiDB_exporter_linux_amd64,arm架构的选PanWeiDB_exporter_linux_arm64。
4.5 添加定时任务
[omm@panwei2 panweidb]$ crontab -e */1 * * * * source /home/omm/.bashrc; sh /database/panweidb/exporter/run_exporter >/dev/null 2>&1 &
定时任务会在每分钟的第一秒触发,如果已经启动exporter,定时任务脚本自动退出,反之启动(从另外一个角度来看是间接实现了开机自启,但是需要注意omm用户密码不能过期,系统日志目录/var不能爆满,否则定时任务调度会停止)。
4.6 启动验证
可以通过curl来抓取采集到的信息,如果本地有浏览器也可使用浏览器查看(注意网络连通)
curl 192.168.206.129:9187/metrics

5. node_exporter部署
5.1 解压
[root@panwei2 /]# tar -zxvf node_exporter-1.7.0.linux-amd64.tar.gz -C /database/panweidb [root@panwei2 /]# cd /database/panweidb [root@panwei2 panweidb]# mv node_exporter-1.7.0.linux-amd64 node_exporter [root@panwei2 panweidb]# nohup node_exporter/node_exporter &
5.2 开机自启
[root@panwei2 panweidb]# cat>/etc/systemd/system/node_exporter.service<<EOF [Unit] Description=node_export Documentation=https://github.com/prometheus/node_exporter [Service] ExecStart=/database/panweidb/node_exporter/node_exporter Restart=on-failure [Install] WantedBy=multi-user.target EOF
[root@panwei2 panweidb]# systemctl daemon-reload [root@panwei2 panweidb]# systemctl enable node_exporter.service [root@panwei2 panweidb]# systemctl start node_exporter.service
5.3 启动验证
node_exporter默认运行端口9100(可通过参数–web.listen-address=:port来指定),使用curl来抓取采集到的信息,如果本地有浏览器也可使用浏览器查看(注意网络连通)
curl 192.168.206.129:9100/metrics

Helps:node_exporter默认功能查阅
上面就是关于搭建监控工具的全部指导内容,但工具采集的数据只是基于某一个时间点的,所以无法回溯过去一段时间的数据变化情况,后续会介绍如何对接普罗米修斯存储采集到的数据,通过加入时间维度集成时序数据库,监控平台的加入可帮助运维人员更好地了解掌握数据库(或主机)当前与过去一段时间的运行态,对于发掘可能存在的问题、了解数据库性能等方便有重大的意义!





