Я хотел бы использовать prometheus's node_exporter в контейнере, но также иметь доступ к статистике сети хоста. Поскольку я использую Prometheus и другие модули, такие как alertmanager или mysql -exporter, также в контейнерах, я не хочу просто использовать сеть хоста, потому что тогда я не смог бы легко подключить Prometheus к узлу -экспортер в согласованном порядке, учитывая, что прометей также развернут в качестве контейнера. Я хотел бы использовать docker logi c (идентификация сервисов по именам). Это релевантная часть docker -композиции:
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
Как видите, я монтирую псевдофайловую систему / pro c, но, к сожалению, статистика, которую я вижу, ограничена те из контейнера, а не хозяина. Так что я всегда буду видеть eth0, например, интерфейс контейнера, видимый изнутри. Можно ли как-то обойти это так, чтобы у меня был полностью упакованный стек прометея? Другим решением является cadvisor, который использует сокет docker, и я могу, например, получить сетевую статистику для основного сетевого интерфейса сервера. Но это не очень хорошо.
На сервере у меня также есть контейнерные обратные прокси-серверы, поэтому было бы еще труднее установить prometheus и его модули непосредственно на хост.
Так что любые идеи как я могу плавно дать доступ узлу-экспортеру к статистике сети хоста?
Спасибо!