コンテナーで prometheus の node_exporter を使用したいのですが、ホスト ネットワークの統計にもアクセスしたいと考えています。プロメテウスと、alertmanager や mysql-exporter などの他のモジュールもコンテナーで使用しているため、単純にホスト ネットワークを使用したくありません。プロメテウスをノード エクスポーターに簡単に接続できないからです。プロメテウスもコンテナとしてデプロイされていることを考えると、一貫した方法で。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 を常に確認します。完全にコンテナ化されたプロメテウス スタックを持つように、これを回避する方法はありますか? もう 1 つのソリューションは、docker のソケットを使用する cadvisor です。これにより、たとえば、サーバーのメイン ネットワーク インターフェイスのネットワーク統計を取得できます。しかし、それは本当にいいことではありません。
サーバーにはコンテナ化されたリバースプロキシもあるため、プロメテウスとそのモジュールをホストに直接インストールするのはさらに難しくなります。
node-exporter にホストのネットワーク統計へのアクセスをスムーズに与える方法はありますか?
ありがとうございました!