Docker 授予节点导出器容器从主机访问网络统计信息的权限
我想在一个容器中使用普罗米修斯的node_exporter,但也可以访问主机网络的统计数据。 由于我在容器中使用prometheus和其他模块,如alertmanager或mysql exporter,我不想简单地使用主机网络,因为这样我就无法以一致的方式轻松地将prometheus连接到节点导出器,因为prometheus也是作为容器部署的。我想使用docker逻辑(通过名称识别服务)。 这是docker compose的相关部分:Docker 授予节点导出器容器从主机访问网络统计信息的权限,docker,networking,prometheus-node-exporter,Docker,Networking,Prometheus Node Exporter,我想在一个容器中使用普罗米修斯的node_exporter,但也可以访问主机网络的统计数据。 由于我在容器中使用prometheus和其他模块,如alertmanager或mysql exporter,我不想简单地使用主机网络,因为这样我就无法以一致的方式轻松地将prometheus连接到节点导出器,因为prometheus也是作为容器部署的。我想使用docker逻辑(通过名称识别服务)。 这是docker compose的相关部分: node_exporter:
node_exporter:
build: "/root/prometheus-stack/node_exporter"
image: node_exporter:v0.18.1
volumes:
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /:/rootfs:ro
command:
- '--log.level=debug'
- '--path.procfs=/host/proc'
- '--path.sysfs=/host/sys'
- '--collector.filesystem.ignored-mount-points'
- '^/(sys|proc|dev|host|etc|rootfs/var/lib/docker/containers|rootfs/var/lib/docker/overlay2|rootfs/run/docker/netns|rootfs/var/lib/docker/aufs)($$|/)'
networks:
- back-tier
restart: always
正如您所看到的,我正在挂载/proc伪文件系统,但不幸的是,我看到的统计数据仅限于容器的统计数据,而不是主机的统计数据。例如,我将一直看到eth0,从内部看,它是容器的接口。
我有没有办法绕过这个问题,让我有一个完全集装箱化的普罗米修斯堆?
另一个解决方案是cadvisor,它使用docker的socket,我可以通过它获得服务器主网络接口的网络统计信息。但这不是很好
在服务器上,我也有容器化的反向代理,因此直接在主机上安装普罗米修斯及其模块会更加困难
那么,我如何才能顺利地让node exporter访问主机的网络统计数据呢
谢谢大家!