问题描述
该笔记将记录:通过 prometheus-pve-exporter + Prometheus + Grafana Dashboard 监控 PVE Cluster 的方法,以及相关问题的解决办法。
解决方案
prometheus-pve-exporter + Prometheus + Grafana Dashboard
GitHub/prometheus-pve/prometheus-pve-exporter
Hetzner Online Community/Gather metrics of your Proxmox server with Prometheus
Grafana Dashboard
https://grafana.com/grafana/dashboards/10347-proxmox-via-prometheus/
第一步、prometheus-pve-exporter
Prometheus-pve-exporter Helm Chart | Datree
prompve/prometheus-pve-exporter Tags | Docker Hub
GitHub/prometheus-pve/prometheus-pve-exporter
# 10/22/2022 当前最新为 v2.2.4 版本;
helm repo add stenic https://charts.stenic.io/ helm repo update helm pull stenic/prometheus-pve-exporter # prometheus-pve-exporter-0.1.1.tgz helm show values ./prometheus-pve-exporter-0.1.1.tgz > prometheus-pve-exporter-0.1.1.helm-values.yaml vim prometheus-pve-exporter-0.1.1.helm-values.yaml ...(1)修改 image.tag: "2.2.4" 参数;(尽管该 Chart 是针对于 pve-exporter 2.0.1 版本) ...(2)修改 pve.user pve.password pve.verify_ssl 参数; helm install --namespace observing-system --create-namespace \ mon-exp-pve ./prometheus-pve-exporter-0.1.1.tgz -f prometheus-pve-exporter-0.1.1.helm-values.yaml
第二步、Prometheus Server
我们的 Promethues 是通过 Helm Chart 部署的,所以修改 values.yaml 文件:
... extraScrapeConfigs: | - job_name: 'pve' static_configs: - targets: # 任意 Target 便能够完成采集 # 多个 Target 用于实现高可用 - 172.31.253.254 # Proxmox VE node with PVE exporter. metrics_path: /pve params: module: [default] relabel_configs: - source_labels: [__address__] target_label: __param_target - source_labels: [__param_target] target_label: instance - target_label: __address__ replacement: mon-exp-pve-prometheus-pve-exporter:9221 # PVE exporter. ...
关于 targets 参数:
1)任意 PVE Cluster Node 即可,不需要指定所有 PVE Cluser Node;
2)能够指定多个 Node,以在某个 Node 故障后,能够使用其他 Node 继续抓取数据;
3)能够通过 round robin DNS 来简化配置(Monitoring a cluster using round robin DNS)
第三步、Grafana Dashboard
导入 Grafana Labs/Proxmox via Prometheus 面板,以显示数据;
已知问题
无法显示磁盘使用情况
pve_disk_usage_bytes on all qemu guest is null · Issue #77
Proxmox VE API Documentation/#/nodes/{node}/qemu/{vmid}/agent/get-fsinfo
问题描述:在 Disk Usage 中,QEMU 虚拟机的磁盘使用情况为 10%;
原因分析:虽然能够通过 pvesh get /nodes/{node}/qemu/{vmid}/agent/get-fsinfo 获得 Guest 的磁盘使用情况,但是 prometheus-pve-exporter 并未实现该功能,所以 exporter 给到的 pve_disk_usage_bytes 数据为零;
解决方案:
参考文献
prometheus-pve/prometheus-pve-exporter