TimeScaleDB与MinIO数据监控搭建(Grafana+Prometheus+Alertmanager+Docker)
一、基础资源搭建过程
- 上传本地搭建基础资源
通过可视化工具(如MabaXterm)登录公司内网服务器192.168.15.149,输入账号:*****,密码:******进入。
切换进######路径下:cd ######
然后另打开本地的搭建基础资源文件所在目录db-monitoring,选中顶层文件夹,直接拖动到MabaXterm界面中的当前界面左侧(因为MabaXterm不支持直接上传文件夹,所以直接拖动):

拖动完成后,确认搭建文件夹db-monitoring已整体完成上传:

2. 确认待监控的timescaledb服务以及minio服务所在网络,并以此修改监控compose.yaml文件的网络部分配置代码
执行命令:sudo docker network ls,查询timescaledb服务网络和minio网络:

进入到monitoring-compose.yaml文件,修改文件内网络部分配置,和查询出的结果保持一致:


3. 核实内网服务器timescaledb和minio的服务是否都已正常启动,端口号多少等
执行命令:sudo dockers ps (可辅助查看各自搭建的compose.yaml等)

4. 进入到数据库监控离线镜像所在路径,执行镜像加载
(1)切换到离线本地的镜像存储文件夹
cd /home/zncp02/db-monitoring/docker_images/

(2)依次执行所需镜像的安装
docker load -i prometheus-v2.47.0.tar
docker load -i grafana-10.1.0.tar
docker load -i alertmanager-v0.26.0.tar
docker load -i postgres-exporter-v0.15.0.tar
docker load -i node-exporter-v1.6.1.tar
docker load -i haproxy-exporter-v0.15.0.tar

5. 进入到数据库监控compose.yaml所在路径,执行服务安装
cd /home/zncp02/db-monitoring/
sudo docker-compose -f monitoring-compose.yaml up -d

6. 验证监控服务是否搭建成功
(1)检查容器服务状态,查看STATUS列是否都已UP
docker ps

(2)访问prometheus监控节点状态页,观察各节点状态是否都正常
访问:192.168.15.149:9090/targets?search=


发现两类节点有问题:
问题1:minio监控节点有问题;
问题2:postgres-exporter监控节点有问题
问题1的原因分析与解决步骤
原因分析:minio从2018版本之后内置了prometheus的指标查询,不再需要第三方的工具(如exporter等),但是他需要minio再搭建容器服务的时候,就要追加一句认证语句,缺少这一句就会报如上图片的错误。
解决步骤:
(1)回到minio搭建compose文件所在文件夹,执行容器服务关闭
cd /home/zncp02/itf_minio/
sudo docker-compose -f monitoring-compose.yaml down
(2)双击打开docker-compose.yml文件,追加认证语句(每个节点都要追加)

- MINIO_PROMETHEUS_AUTH_TYPE=public
(3)重启容器服务,并查看服务状态
sudo docker-compose -f monitoring-compose.yaml up -d
sudo docker ps
(4)重新访问prometheus监控节点状态页,观察各节点状态是否都正常
访问:192.168.15.149:9090/targets?search=

问题2的原因分析与解决步骤
原因分析:postgres-exporter容器启动时会关联queries.yaml配置,里面的语法编写错误或格式错误,都会导致监控节点状态异常
解决步骤:
(1)因为queries.yaml内部定义的是自定义数据指标查询,只有当用户进行自定义监控面板、个性化数据图表配置时才会需要。因为我们所使用的监控面板都是grafana官方提供的面板,所使用的指标数据源是exporter(各导出器)默认内置查询,所以直接将queries.yaml内部配置代码清掉即可!
(2)重新访问prometheus监控节点状态页,观察各节点状态是否都正常
访问:192.168.15.149:9090/targets?search=

二、监控面板配置过程
(1)登录访问grafana(用户名:admin 密码:admin123)
访问网址:http://192.168.15.149:3000/login
用户名:admin 密码:admin123

(2) 确认监控数据源是否已正确加载

该页面显示已正确加载数据源。
如果没有正确加载,需去服务器的datasources.yaml文件查看格式和内容是否有效:

(3)配置数据库监控Dashboards
方式一:通过grafana官网查到的Dashboard ID导入
以Minio的集群监测为例:
访问grafana官网:https://grafana.com/grafana/dashboards,查询minio 公开的面板案例,并选中一款,记录其id

访问自己搭建的grafana地址,在主页点击右上角的“+”号,点击“Import dashboard”

在新页面输入刚刚官网查询到的id,点击“Load”按钮

新页面会自动生成该面板的名称、存储文件夹,用户需手动确认、选择Prometheus数据源(我们搭建的时候配置文件配置的数据源会自动显示在这里,如果没有任何一个数据源,页面也会引导手动在线创建一个数据源),并点击“Import”按钮

配置成功后,会自动跳转显示监控面板:

所有已配置的面板在Home---Dashboards----General处都会显示

方式二:通过导入json格式文件生成Dashboard
以minio的各节点监控为例:
访问minio的github开源网址,进入监控相关文件层级,找到节点监控面板json:
https://github.com/minio/minio/blob/master/docs/metrics/prometheus/grafana/node/minio-node.json

复制其内部的json,保存到本地,并自定义命名(如minio-node.json)。
访问自己搭建的grafana地址,在主页点击右上角的“+”号,点击“Import dashboard”

进入导入面板页面,点击页面顶部区域的“Upload dashboard JSON file”,将刚刚本地创建的minio-node.json导入


上传json文件成功后,新页面会自动生成该面板的名称、存储文件夹

点击“import”按钮,进入面板展示页面,在顶部的筛选区域依次选定:监控数据源、监控job、minio节点,自动展示图表信息

三、附录:监控面板一览表
(1)PostgreSQL Database
面板名称:PostgreSQL Database
Grafana Dashboard ID: 9628
访问地址:
http://192.168.15.149:3000/d/000000039/postgresql-database?orgId=1&refresh=10s&from=now-6h&to=now


(2)MinIO Dashboard
面板名称:MinIO Dashboard
Grafana Dashboard ID: 13502
访问地址:
http://192.168.15.149:3000/d/TgmJnqnnk/minio-dashboard?orgId=1&var-scrape_jobs=minio-cluster



(3)MinIO Node Dashboard
面板名称:MinIO Node Dashboard
Grafana Dashboard ID: 15306
访问地址:
http://192.168.15.149:3000/d/TgmJnnqn2k/minio-node-dashboard?orgId=1&var-DS_PROMETHEUS=DS_PROMETHEUS&var-scrape_jobs=minio-node&var-server=minio1:9000

(4)MinIO Bucket Dashboard
面板名称:MinIO Bucket Dashboard
Grafana Dashboard ID:19237
访问地址:
http://192.168.15.149:3000/d/TgmJnqnnk2/minio-bucket-dashboard?orgId=1&var-scrape_jobs=minio-bucket


(5)Node Exporter Full
面板名称:Node Exporter Full
Grafana Dashboard ID: 1860
访问地址:



浙公网安备 33010602011771号