此 Python 脚本旨在从 Shelly Shelly Pro 3EM 设备收集指标
并将它们暴露给 Prometheus 进行监控。该脚本使用 Flask 创建一个 Web 服务器,Prometheus 可以从中获取指标,并使用 Prometheus 客户端库来定义和更新指标。
Python 3.6 or higher
Flask
prometheus_client
requests
Install required packages:
pip install flask prometheus_client requests
Run the script:
python shelly_exporter.py
验证脚本是否正在运行:打开 Web 浏览器并导航至 http://<your_server_ip>:8004/metrics。您应该看到 Prometheus 指标被公开。
将以下作业添加到 Prometheus 配置文件 (prometheus.yml) 中:
scrape_configs:
- job_name: 'shelly'
static_configs:
- targets: ['<your_server_ip>:8004']
sudo systemctl restart prometheus
打开 Prometheus 的 Web 界面并导航到“目标”页面 (http://<your_prometheus_ip>:9090/targets)。确保 Shelly 导出器目标已列出并标记为“UP”。
打开 Grafana 并导航到“配置”>“数据源”。单击“添加数据源”并选择“Prometheus”。将 URL 设置为 http://<your_prometheus_ip>:9090 并单击“保存并测试”。
要导入预配置的 Grafana 仪表板以监控您的 Shelly Pro 3EM 设备,请按照以下步骤操作:
确保您的 Grafana 实例已启动并正在运行。应使用来自 Shelly Pro 3EM 导出器的指标在 Grafana 中配置 Prometheus 数据源。
导入仪表板:在左侧菜单中,单击“创建”>“导入”。系统将提示您粘贴仪表板 JSON、上传 JSON 文件或输入 Grafana 仪表板 ID ( 21725 )。选择从本地系统上传 shelly_pro_3em_dashboard.json 文件的选项。
配置数据源:上传后,可能会提示您选择Prometheus数据源。选择为您的 Shelly Pro 3EM 指标配置的正确数据源。
保存并查看仪表板:导入后,单击“保存”以保存仪表板。您现在可以在 Grafana 仪表板上查看来自 Shelly Pro 3EM 设备的实时指标和历史数据。
自定义仪表板 仪表板是完全可定制的。您可以根据需要添加、删除或修改面板。如需其他配置或做出改进,请随时提交拉取请求或提出问题。
单击“保存”并为您的仪表板命名。您现在可以在 Grafana 中监控您的 Shelly 设备指标。
通过执行以下步骤,您可以使用 Prometheus 和 Grafana 监控 Shelly 设备的指标。