Prometheus は Docker コンテナ内からホストのネットワーク トラフィックを監視します。

Prometheus は Docker コンテナ内からホストのネットワーク トラフィックを監視します。

コンテナを使用して Docker ホストのネットワーク トラフィックを監視することは可能ですか、または意図されてprom/node-exporterいますか? 私のセットアップでは、すべてのホスト インターフェイスが表示されますがnode_network_iface_idnode_network_iface_idコンテナのインターフェイスの時系列のみが表示されます。

私のはdocker-compose.ymlこんな感じです:

networks:
    backend:
        driver: bridge
        internal: true
    outside:
        external: true

node-exporter:
        image: prom/node-exporter
        volumes:
           - /proc:/host/proc:ro
           - /sys:/host/sys:ro
           - /:/host:ro
        command:
           - '--web.listen-address=:9100'
           - '--path.procfs=/host/proc'
           - '--path.sysfs=/host/sys'
           - '--path.rootfs=/host'
           - --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)($$|/)"
        restart: always
        networks:
           - backend

...

答え1

質問が少し前にされたものなので、これが node_exporter の更新であるかどうかはわかりませんが、node_network_transmit_bytes_total以下の完全なクエリを使用してこれを監視しており、うまく機能しています。

rate(node_network_transmit_bytes_total {device=~"eth.",host=~"$Host"}  [1m]) * 8

当然同等の受信値も存在します。

関連情報