授予node_exporter容器访问主机网络统计信息的权限

时间:2020-01-13 19:17:36

标签: docker networking prometheus-node-exporter

我想在容器中使用prometheus的node_exporter,但也可以访问主机网络的统计信息。 当我在容器中使用prometheus以及其他模块(例如alertmanager或mysql-exporter)时,我不想简单地使用主机网络,因为那样我将无法轻松地将prometheus连接到节点导出器考虑到普罗米修斯也被部署为一个容器,以一致的方式。我想使用docker逻辑(按名称标识服务)。 这是docker-compose的相关部分:

             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的套接字,通过它我可以获得有关服务器主网络接口的网络统计信息。但这不是很好。

在服务器上,我还具有容器化的反向代理,因此,将prometheus及其模块直接安装在主机上会变得更加困难。

那么有什么想法可以让我顺利地将node-exporter的访问权限授予主机的网络统计信息?

谢谢!

0 个答案:

没有答案