是否可以运行 Prometheus 和 Grafana docker 容器但使用安装在主机中的 node-exporter?

Posted

技术标签:

【中文标题】是否可以运行 Prometheus 和 Grafana docker 容器但使用安装在主机中的 node-exporter?【英文标题】:Is it possible to run Prometheus and Grafana docker containers but use node-exporter installed in the host machine? 【发布时间】:2021-11-01 00:01:09 【问题描述】:

我正在尝试使用 Prometheus、Grafana 和节点导出器构建监控系统。我有一个 docker-compose 文件,它可以启动 Prometheus 和 Grafana 容器,但不能启动 node-exporter。根据Node exporter GitHub documentation的说法,不建议将node-exporter部署为容器,因为它需要访问宿主系统。

是否可以在我的 docker-compose 旁边使用安装在主机中的节点导出器?如果是,我需要添加哪些额外的配置?

【问题讨论】:

【参考方案1】:

有一个很好的指南是here。需要注意的一点是node_exporter 是为 linux/bsd 构建的。如果您在 Windows 上运行撰写文件,则需要运行 windows_exporter。下面的过程会有所不同,但在理论上是相似的。

总结指南,下载特定/最新版本并运行应用程序:

wget https://github.com/prometheus/node_exporter/releases/download/v*/node_exporter-*.*-amd64.tar.gz 
tar xvfz node_exporter-*.*-amd64.tar.gz 
cd node_exporter-*.*-amd64 
./node_exporter

你应该可以通过端口9100访问它

curl http://localhost:9100/metrics

然后设置您的prometheus.yml 文件(您已备份到您的 docker 映像中,或者通过 docker-compose 绑定安装),例如:

global:
  scrape_interval: 15s

scrape_configs:
- job_name: node
  static_configs:
  - targets: ['localhost:9100']

当您运行node_exporter 脚本时,您可以向它传递您想要启用/禁用的collectors 列表。当您调整监控系统时,您会发现您想要跟踪的指标以及一些无用的指标。您可以通过删除您的监控系统不会使用的收集器来节省一些开销。

【讨论】:

以上是关于是否可以运行 Prometheus 和 Grafana docker 容器但使用安装在主机中的 node-exporter?的主要内容,如果未能解决你的问题,请参考以下文章

一招搞定 Spring Boot 可视化监控!

搞定Prometheus普罗米修斯监控系统的部署

一篇文章搞定Prometheus普罗米修斯监控系统的部署

使用其他属性更新 helm 图表

Prometheus 查询以获取 kubernetes pod 中的 CPU 和内存使用情况

如何在我的本地网络上为 IoT 运行 Prometheus?