メインコンテンツまでスキップ
Sumo Logic Japanese

Docker の収集方法

Docker からログとメトリクスを収集する方法について説明します。

このページでは、Docker のログおよびメトリクスを収集するいくつかの方法について説明し、比較します。これらの方法は、自己管理 Docker 環境で使用することも、ECS や Swarm などの管理対象 Docker サービスと一緒に使用できます。

Kubernetes を使用する場合は、「Kubernetes の収集方法」を参照してください。

ログおよびメトリクスのサポート

次のテーブルでは、それぞれの収集方法で収集できるものをまとめています。 

収集方法 ログ メトリクス
Docker ログ ドライバ X  
Docker ホスト上のインストール済みコレクタ

(Docker ログ ソースと Docker Stats ソースを含む)
X X
コンテナとしてのコレクタ

(Docker ログ ソースと Docker Stats ソースを含む)
X X

Docker の収集オプション

Sumo Logic Docker ログ ドライバ

Sumo Logic Docker ログ ドライバとは、Docker コンテナ ログを Sumo に送信するために使用できる Docker プラグインです。ログ データが Sumo に取り込まれたら、Sumo Web アプリケーションを使用して検索して分析できます。このオプションは、コレクタを Docker ホストにインストールしたくない場合に適しています。 

  • メリット
    • エージェントレス、HTTP ソースを使用します。
    • セットアップが容易です。
    • ドライバを使用するためにすべてのコンテナを Docker ホストで設定することも、コンテナを開始するときにログ オプションを Docker コマンドに追加して、選択したコンテナを開始してドライバを使用することもできます。 
  • デメリット
    • HTTP ソースにローカル キャッシングがないため、調整が長期に及ぶ場合にはデータが失われる場合があります。Docker ログ ドライバには基本的な再試行機能と限定的なキャッシングが備わっているため、調整の際のデータ損失を防ぐか、減少することができる可能性もあります。  
    • メトリクスがサポートされません。
    • すべての Docker 環境では機能しない場合があります。Docker バージョン 18.03.0-ce より前の Docker のバージョンでは、新しいプラグイン アーキテクチャがサポートされない場合があります。
    • Sumo Docker アプリケーションをサポートしていない。このアプリケーションでは、Sumo の Docker Stats ソースを使用する必要があります。

Docker ホスト上のインストール済みコレクタ

この方法では、「Docker からのログと統計情報の収集」で説明しているように、各 Docker ホスト マシンでインストール済みコレクタを実行し、Docker 用の Sumo ソースを使用します。Docker ログ ソースは、ホストで実行されているコンテナからログを、Docker デーモンからイベントを収集します。Docker Stats ソースはコンテナ メトリクスを収集します。Chef、Puppet、Ansible などのコレクタを手動でインストールすることも、画像に組み込むこともできます。 

  • メリット
    • 十分に視覚化されています。  この方法を使用すれば、以下のような Docker ホストのすべてを収集できます。 
    • ログがローカルでキャッシュされるため、ソースが Sumo によって調整されたときにデータがドロップされません。  
    • インストール済みコレクタを AMI に組み込み、すべてのホストで一貫したデプロイを行うことができます。
    • メタデータが設定可能です。Docker および Docker ホストから使用可能な変数を使用して、Docker ログ ソースまたは Docker 統計情報の sourceCategory および sourceHost を設定できます。詳細については、「変数を使用した sourceCategory と sourceHost の設定」を参照してください。
  • デメリット
    • プロセスが自動化されていない場合、AMI のメンテナンスが難しくなる場合があるため、状況やリソースによっては、この点がデメリットになる場合があります。 
    • この方法をセットアップしてホスト上で選択したコンテナをモニタリングするのは、すべてのコンテナをモニタリングする場合ほど簡単ではありません。この目標を達成するには、複数のソースを設定する必要がある場合があります。

コンテナとしてのコレクタ

この方法では、ホスト マシン上でコンテナとしてのコレクタを実行し、Docker ログや Docker Stats ソースを使用してデータを収集します。Docker ログ ソースは、ホストで実行されているコンテナからログを、Docker デーモンからイベントを収集します。Docker Stats ソースはコンテナ メトリクスを収集します。 

  • メリット
    • AMI に組み込む必要がありません。Docker 関連の自動化ツールに応じて完全に自動化できます。
    • コレクタがログをコンテナにキャッシュするため、ソースが Sumo によって調整されたときにデータがドロップされません。  十分なスペースを確保するか、永続的なストレージを使用してください。  
    • 簡単にアップグレードできます。コンテナであるため、新しいコンテナをデプロイするだけです。
    • メタデータが設定可能です。Docker および Docker ホストから使用可能な変数を使用して、Docker ログ ソースまたは Docker 統計情報の sourceCategory および sourceHost を設定できます。詳細については、「変数を使用した sourceCategory と sourceHost の設定」を参照してください。
  • デメリット
    • この方法では、Docker ホストからホスト メトリクスを収集できません。ホスト メトリクスを取得するには、コレクタを Docker ホストにインストールする必要があります。コンテナ ログ、コンテナ メトリクス、ホスト ログを収集することはできます。
    • この方法をセットアップしてホスト上で選択したコンテナをモニタリングするのは、すべてのコンテナをモニタリングする場合ほど簡単ではありません。この目標を達成するには、複数のソースを設定する必要がある場合があります。

Docker プラットフォームに関する考慮事項

次のテーブルでは、さまざまな Docker プラットフォームでサポートされる収集方法を示します。

プラットフォーム Docker ホスト上のインストール済みコレクタ コンテナとしてのコレクタ Docker ログ ドライバ
Docker
(非管理対象サービス)
X X X*
ECS X X X*
Docker Swarm X X X*
Rancher (非 Kubernetes) X X X*

Docker 用 Sumo アプリケーション

Sumo では、Docker 用に 2 つのアプリケーションを用意しています。  

  • この記事は役に立ちましたか?