# openGauss-tools-monitor
**Repository Path**: liluyu/openGauss-tools-monitor
## Basic Information
- **Project Name**: openGauss-tools-monitor
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 16
- **Created**: 2022-09-24
- **Last Updated**: 2022-09-26
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
openGauss数据库监控插件生成工具 v1.0.0
基于 Vue/Element UI 和 Python 前后端不分离的快速开发框架
### openGauss数据库监控插件工具简介
不同的客户在使用openGauss数据库过程中,可能会使用不同的监控平台来实现对数据库的监控,为帮助行业客户更放心、更快速使openGauss数据库,因此开发一款通用的监控插件生成工具。
* 可以根据客户自定义的监控SQL来生成Prometheus、Zabbix以及Nagios平台的监控插件。
* 内置50个通用的监控插件指标,可直接部署在已有平台上来实现对openGauss的全链路监控,这50个通用指标覆盖了openGauss的连接数、动态内存、共享内存、TPS、QPS、长连接等常用指标监控
* 为减少不同平台的兼容性,工具所有插件均使用Python语言进行适配。支持在Linux、Windows上运行
* 采用前后端不分离的模式,前端(基于 Vue/Element UI),通过前端页面实现数据库配置、监控平台配置、SQL语句的校验、指标文件生成、插件发布等功能。
### openGauss数据库监控插件工具第一期对Prometheus特性支持如下
* 配置openGauss数据库连接信息
* 支持sql指标生成
* 插件生成,支持自定义采集时间,支持单条sql指标发布,多条sql指标全部发布。
* sql预览,支持查看历史sql详情,修改和删除历史sql
* 发送上报Prometheus平台
* 在Prometheus平台可以查看监控指标。
### openGauss数据库监控插件工具的使用限制
* 用户需要具有数据库的操作权限,权限配置为只读权限,配置正确的数据源信息,数据库支持openGauss。
* sql语句仅限于DQL语句,只支持select查询语句。
* 在Prometheus服务端需要配置exporter的信息。
* 系统支持windows、linux。
### 系统模块
~~~
flaskProject(编译后)
├── static // 前端静态资源
└── css // css文件
│ └── font // 字体文件
│ └── js // javaScript脚本
├── templates // 访问页面 index.html[8000]
├── prometheus_client // Prometheus服务依赖
├── config // 配置文件,生成yml文件
└── add_config.yml
└── check_config.yml
└── db_config.yml
└── re_config.yml
├── opengauss-jdbc-3.0.0.jar // openGauss驱动jar包
js // 前端资源
python
└── exporter.py // 运行脚本
└── registry.py
thirdFile // Prometheus相关依赖
openGauss-3.0.0-JDBC.tar.gz // openGauss驱动压缩包
deploy.bat // windows编译脚本
tart.bat // windows启动脚本
deploy.sh // linux编译脚本
start.sh // linux启动脚本
~~~
### 架构图
### 工具的安装windows
#### 1.安装python
* 在python官网下载python3.0以上版本https://www.python.org/
* 双击运行python-3.9.1-amd64.exe
* 配置环境变量,点级高级系统设置,在系统变量下,点击path,添加python所在的目录如:D:\python\Scripts\
#### 2.安装nodejs V16.16.0
* 官网下载windows版本node安装包:Node.js。下载地址:https://nodejs.org/en/
* 下载node-v16.16.0-x64.msi,安装过程中除更换安装路径,其他均点下一步即可。
* 打开cmd命令执行node -v,结果为v16.16.0。
* 打开cmd命令执行npm -v,结果为8.11.0。
* 更换镜像:打开cmd命令:npm config set registry https://registry.npm.taobao.org
* 执行npm config get registry,结果为https://registry.npm.taobao.org/,更换镜像成功
#### 3.安装jdk
* Oracle官方下载:https://www.oracle.com/java/technologies/downloads/
* 双击打开下载好的jdk,点击下一步,安装完成后进行java环境变量的配置
* 右键我的电脑,点击属性,点击高级系统设置,点击环境变量。
* 在系统变量中新建JAVA_HONE,变量值为java的安装路径
* 在path写入bin所在的路径,如图所示;
* 打开cmd命令执行java -version,结果为java version "java版本号",安装成功。
### 工具的安装linux-Centos7
#### 1.安装python
* python下载地址:https://www.python.org/downloads/source/
#####1.1 linux执行
* yum install -y gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel xz-devel libffi-devel
* [root@192 ~]# cd /opt/
* [root@192 opt]# wget https://www.python.org/ftp/python/3.9.1/Python-3.9.1.tgz
* [root@192 opt]# tar xf Python-3.9.1.tgz
* [root@192 opt]# cd Python-3.9.1/
* [root@192 Python-3.10.0]# ./configure --prefix=/usr/local/python --enable-optimizations
* [root@192 Python-3.10.0]# make && make install
* [root@192 Python-3.10.0]# ln -s /usr/local/bin/python3.9 /usr/bin/pyhton
* [root@192 Python-3.10.0]# ln -s /usr/local/bin/pip3.9 /usr/bin/pip
#####1.2 linux配置python全局环境
* [root@192 ~]# echo 'export PATH=$PATH:/usr/local/python/bin/' >> /etc/profile
* [root@192 ~]# source /etc/profile
* [root@192 ~]# python -V
#### 2.安装node.js
#####2.1下载node-v 16.16.0
* mkdir -p /usr/local/soft/package
* cd /usr/local/soft/package
* wget https://repo.huaweicloud.com/nodejs/latest-v16.x/node-v16.16.0-linux-x64.tar.xz
* tar -xvf node-v16.16.0-linux-x64.tar.xz
* mv node-v16.16.0-linux-x64 ../node
#####2.2创建软连接
* ln -s /usr/local/soft/node/bin/npm /usr/local/bin/npm
* ln -s /usr/local/soft/node/bin/node /usr/local/bin/node
#### 3.安装jdk
* 进入oracle官网下载linux版本jdk8,地址:https://www.oracle.com/java/technologies/downloads/#java8
* cd /usr/local (注:目录自定义);
* mkdir jdk
* 上传jdk到目录/usr/local/jdk
* 执行tar -zxcv jdk-8u341-linux-x64.tar.gz
* 配置成功后,进行环境变量的配置
* vim /etc/profile
* 添加如下命令
* export JAVA_HOME=/usr/local/jdk/jdk1.8.0_341
* export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
* export PATH=$PATH:$JAVA_HOME/bin
* 刷新环境变量:执行source /etc/profile
* 查看java版本:执行java -version
### openGauss数据库监控插件工具使用说明-windows
* 环境的准备,windows系统安装python3.9.1,安装jdk1.8,安装nodejs V16.16.0(参考工具的安装windows)。
* 下载openGauss3.0.0驱动jar包,下载地址:https://www.opengauss.org/zh/download.html。
* 安装python环境之后,导入python第三方件
* 打开cmd命令分别执行以下命令
* pip install jaydebeapi
* pip install flask
* pip install pyyaml
* pip install flask
* pip install datetime
* 将驱动tar.gz包移动至项目所在的目录
* 下载代码,cmd进入到文件目录,执行以下命令
* deploy.bat(注:编译)
* start.bat(注:启动)
* 浏览器访问127.0.0.1:8000
### openGauss数据库监控插件工具使用说明-linux
* 环境的准备,linux安装python3.9.1,安装jdk1.8,安装nodejs V16.16.0(参考工具的安装linux)。
* 下载openGauss3.0.0驱动jar包,下载地址:https://www.opengauss.org/zh/download.html。
* 安装python环境之后,导入python第三方件
* 进入项目所在的路径分别执行以下命令
* pip install jaydebeapi
* pip install flask
* pip install pyyaml
* pip install flask
* pip install datetime
* 下载代码
* 将驱动tar.gz包移动至项目所在的目录
* cd进入到文件目录,执行以下命令
* sh deploy.sh(注:编译)
* sh start.sh(注:启动)
* 浏览器访问:容器Ip:8000
### 演示图