欣欣闹天下

古有洛离感青天,乾坤泣血憾无言。时光无情终逝去,唯留玲珑血玉兰。

导航

Prometheus+Grafana监控cmdb

前言

Prometheus是从云原生计算基金会(CNCF)毕业的项目。是由前google员工2015年正式发布的开源监控系统,采用Go语言开发。整套系统由监控服务、告警服务、时序数据库等几个部分,及周边生态的各种指标收集器(Exporter)组成,是在当下主流的监控告警系统。

exporter:广义上向prometheus提供监控数据的程序都可以成为一个exporter的,一个exporter的实例称为target, exporter来源主要2个方面,一个是社区提供的,一种是用户自定义的。

Grafana 是一款采用 go 语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。

一、实验环境

软件 版本
磐维主 (PanWeiDB(openGauss) 1.0.0 build 9a7e96bc)
磐维备1 (PanWeiDB(openGauss) 1.0.0 build 9a7e96bc)
磐维备2 (PanWeiDB(openGauss) 1.0.0 build 9a7e96bc)
Prometheus prometheus-2.49.0-rc.0.linux-amd64
Grafana grafana-enterprise-8.5.27-1.x86_64
cmdb_exporter v1.1

二、基于 Prometheus + Grafana 的监控解决方案

整体思想:exporter为部署在服务器的探针;prometheus远程收集exporter的数据,存在时序数据库中;grafana从prometheus获取数据并展现,实现监控数据的可视化。
image.png

三、实施步骤

3.1 获取安装包

安装包文件名为:cmdb_exporter.v1.1.tar.gz

3.2 数据库安装用户部署安装包

数据库安装的系统用户,登录到主机。上传安装包到$HOME目录下
解压 tar -zxf cmdb_exporter.v1.1.tar.gz 会得到 exporter 目录。
里面的文件,见1.2节的内容。

3.3 启动文件修改

主要是修改run_cmdb_exporter 启动文件。
最重要的,是输出日志改向。因为日志内容较多,可以输出到空间大的数据盘,在正常运行后可以输出到 /dev/null.
修改语句为第32行:
export DATA_SOURCE_NAME="host=192.168.1.51 user=cmdb_exporter password=cmdbExportrt@1234 port=17800 dbname=ogexporter sslmode=disable"
修改第42行的nohup改向操作
nohup $HOME/exporter/cmdb_exporter --config=$ConFile --log.level=debug &

3.4 示例

#!/bin/bash

source ~/.bash_profile

#检测进程是否存在,已经存在时,就退出不执行
Num=`ps -ef | grep cmdb_exporter | wc -l`
echo Num=$Num

# 假设原来有1个进程,加上本身的进程,就是2个以上,所以判断大于1
if [ $Num -gt 2 ]; then
          exit 0
  fi
# 配置文件
ConFile=/home/omm/enmo/exporter/cmdb_query.yaml

# 连接参数, 注意修改IP地址,端口等
DATA_SOURCE_NAME="host=192.168.1.51 user=cmdb_exporter password=xxxxx port=17700 dbname=postgres sslmode=disable"

# 日志文件, 注意要修改
LogFile=/home/omm/enmo/exporter/cmd_export.log

# 启动程序
nohup /home/omm/enmo/exporter/PanWeiDB_exporter_linux_amd64 --config=$ConFile --parallel=1 --log.level=debug --url="$DATA_SOURCE_NAME" > $LogFile 2>&1  &

3.5 增加crontab

每1分钟检测一次进程是否在,在就退出
*/1 * * * * ~/exporter/run_cmdb_exporter >/dev/null 2>&1

3.6 部署检测

查看进程是否在
ps -ef | grep cmdb_exporter
提取数据:
http://192.168.1.51:9187/metrics

3.7 安装prometheus

(1)下载

https://github.com/prometheus/prometheus/releases/download/prometheus-2.49.0-rc.0.linux-amd64.tar.gz

(2)解压

tar -xzvf prometheus-2.49.0-rc.0.linux-amd64.tar.gz

(3)启动

进入解压目录,执行 ./prometheus --config.file=prometheus.yaml &

3.8 安装 grafana

[root@localhost ~]# yum install -y grafana-enterprise-8.5.27-1.x86_64.rpm
[root@localhost ~]#
[root@localhost ~]# systemctl start  grafana-server
[root@localhost ~]# systemctl enable grafana-server
[root@localhost ~]# systemctl status grafana-server

3.9 修改数据库参数

Last login: Thu Jan  4 14:16:46 2024 from 133.96.123.50
[omm@panweidb2 ~]$ gs_guc reload -I all -N all -c "password_encryption_type=1"
The gs_guc run with the following arguments: [gs_guc -I all -N all -c password_encryption_type=1 reload ].
Begin to perform the total nodes: 3.
Popen count is 3, Popen success count is 3, Popen failure count is 0.
Begin to perform gs_guc for datanodes.
Command count is 3, Command success count is 3, Command failure count is 0.

Total instances: 3. Failed instances: 0.
ALL: Success to perform gs_guc!


[omm@panweidb2 ~]$ 
[omm@panweidb2 ~]$ 
[omm@panweidb2 ~]$ gsql -r
 select * from pg_node_env; 
gsql ((PanWeiDB(openGauss) 1.0.0 build 9a7e96bc) compiled at 2022-11-08 20:51:50 commit 0 last mr  )
NOTICE : The password has been expired, please change the password. 
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

PanWeiDB=#  select * from pg_node_env; 
     node_name     |          host           | process | port  |    installpath    |         datapath          |            log_directory             
-------------------+-------------------------+---------+-------+-------------------+---------------------------+--------------------------------------
 dn_6001_6002_6003 | localhost,133.96.123.51 |    6949 | 17700 | /opt/panweidb/app | /opt/panweidb/cmdata/data | /opt/panweidb/log/omm/pg_log/dn_6002
(1 row)

PanWeiDB=# show password_encryption_type;
 password_encryption_type 
--------------------------
 1
(1 row)

PanWeiDB=# CREATE USER cmdb_exporter WITH PASSWORD 'Bcv_1308' MONADMIN;
NOTICE:  The encrypted password contains MD5 ciphertext, which is not secure.
CREATE ROLE
PanWeiDB=# grant usage on schema dbe_perf to cmdb_exporter;
grant select on pg_stat_replication to cmdb_exporter;
GRANT
PanWeiDB=# grant select on pg_stat_replication to cmdb_exporter;
GRANT
PanWeiDB=# grant ALL PRIVILEGE to cmdb_exporter;
ALTER ROLE
PanWeiDB=# 

四、 导入json 文件到Grafana
image.png
最后展示结果
image.png

posted on 2024-02-19 21:06  欣欣闹天下  阅读(96)  评论(1编辑  收藏  举报