我想在容器中使用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的访问权限授予主机的网络统计信息?
谢谢!