1. Prometheus组件总览
如上图所示,Prometheus监控系统主要由三部分组成:监控数据采集(上图左)、监控数据存储处理(上图中)、监控数据显示上报(上图右)
-
exporters
该工具用于将Prometheus不能识别的指标数据转换为Prometheus能识别的指标数据,它可以将各种应用程序、服务、操作系统等的指标数据暴露为HTTP接口,供Prometheus Server采集。
-
pushgateway
该工具用于将短期任务的指标数据推送到Prometheus Server,它允许应用程序主动将监控指标数据推送到pushgateway,而不用等待Prometheus Server的定期采集。
-
node_exporter
该工具用于收集Linux/Unix系统指标数据,它可以收集CPU、内存、磁盘、网络等系统指标数据,并将其暴露给Prometheus进行监控;它可以通过HTTP或HTTPS协议暴露指标数据,Prometheus可以通过配置文件或者命令行参数来指定node_exporter的地址和端口。
-
opengauss_exporter
该工具用于收集openGauss数据库指标数据的exporter,它可以用于收集openGauss数据库的连接数、查询数、事务数、表空间使用情况等指标数据,并将其暴露给Prometheus进行监控;opengauss_exporter可以通过JDBC协议连接到openGauss数据库,并通过HTTP或HTTPS协议暴露指标数据,Prometheus可以通过配置文件或命令行参数来指定opengauss_exporter的地址和端口。
-
Prometheus Server
负责从上述各种数据源采集指标数据,并将其存储到自带的时间序列数据库(TSDB)中;它可以用内置的查询语言PromQL来查询分析这些数据,以生成有用的警报和图表。
-
altermanager
该组件用于处理和发送警报,它可以与Prometheus Server集成,接收来自Prometheus Server的警报,并根据用户自定义的规则进行处理和发送;它可以将警报发送到各种目标,包括电子邮件、Slack、PagerDuty等。
-
grafana
该工具能对Prometheus的数据进行分析,它可以Prometheus的指标数据转换为各种图表、仪表盘等形式,方便用户进行数据分析和监控。
2. 部署顺序及环境
- 部署顺序
为叙述清晰,本次部署顺序为先部署各组件,再部署Prometheus(实际可按任意顺序部署)。
-
部署环境
(1)Linux: openEuler 20.03, arm64架构,三台
(2)openGauss: 一主二备,端口:15400;监控库:tpcc;主节点:20.20.20.139;备一:20.20.20.141;备二: 20.20.20.143; 版本:6.0.0
2. pushgateway部署
2.1 下载解压
-
下载地址
https://github.com/prometheus/pushgateway/releases/download
-
选择合适版本
根据本次部署环境,选择pushgateway-1.4.3.linux-arm64.tar.gzwget https://github.com/prometheus/pushgateway/releases/download/v1.4.3/pushgateway-1.4.3.linux-arm64.tar.gz tar -zxvf pushgateway-1.4.3.linux-arm64.tar.gz
注意:github下载较慢,若无法下载,请根据自身部署环境选择合适的镜像版本下载
2.2 准备自定义python脚本
进入解压目录,创建监控脚本prome.py,使用python脚本主动将监控指标数据推送到pushgateway,脚本检测项:CPU、系统内存、磁盘、tpmc、new_order、fd、Inode、IO等,可参考:
2.3 启动
-
启动监控脚本
nohup python3 master_prome_collection.py > master_prome_collection.log 2>&1 &
-
启动pushgateway
nohup ./pushgateway > pushgateway.log 2>&1 &
-
查看master_prome_collection.log和pushgateway.log,正常推送且无报错即可
根据以上步骤,给三台主机都部署pushgateway。
3. node_exporter部署
3.1 下载解压
-
下载地址
https://prometheus.io/download/node_exporter/releases/download
-
选择合适版本
根据本次部署环境,选择node_exporter-1.7.0.linux-arm64.tar.gzwget https://github.com/pro