Dockerモニタリング
最終更新日 - 02年2025月XNUMX日
Docker LogicModuleは、Dockerコンテナ内のリソース使用量を監視します。 これを行うには、Dockerサービス内に「cAdvisor」監視コンテナーをインストールする必要があります。
注意: cAdvisor は RHEL 7.6 では機能しません。 詳細については、次を参照してください。 このレポート.
cAdvisorのインストール
cAdvisor をインストールするには、Docker ホストで次のコマンドを実行します。
sudo docker run \
--volume=/:/rootfs:ro \
--volume=/var/run:/var/run:ro \
--volume=/sys:/sys:ro \
--volume=/var/lib/docker/:/var/lib/docker:ro \
--publish=8080:8080 \
--detach=true \
--name=cadvisor \
gcr.io/cadvisor/cadvisor:latestcAdvisorが実行されると、LogicMonitorはインスタンスとしてコンテナを検出し、データの収集を開始します。
詳細については、を参照してください。 https://github.com/google/cadvisor/
RHELとCentosでのcAdvisorの実行
RHELおよびCentosシステムでは、cAdvisorが正しく動作するように、次のインストールオプションを追加する必要があります。
--privileged=true \
--volume=/cgroup:/cgroup:ro \DockerでcAdvisorを実行する
古いバージョンのDocker(<1.2)では、ルートボリュームアクセスオプションを次のように指定する必要がある場合があります。
--volume=//:/rootfs:ro \Docker SwarmでcAdvisorを実行する
cAdvisorをDocker Swarm(通常は global mode(ノードごとに1つのタスク)の場合、ポートを host mode Swarmのイングレスルーティングメッシュをバイパスします。この設定がないと、リクエストがノード間で負荷分散され、データ収集に一貫性がなくなる可能性があります。各cAdvisorエンドポイントはノードローカルであり、そのタスクがホストされているノードで実行されているコンテナのみをレポートします。
次の例は、ホストモードの公開を構成する方法を示しています。 docker-compose.yml:
ports:
- target: 8080
published: 8080
protocol: tcp
mode: hostこの設定により、LogicMonitor Collectorは監視対象ノードに直接接続され、返されるデータは特定のノードで実行されているコンテナを正確に反映します。詳細については、 ルーティングメッシュをバイパスする Dockerから。