Blue Medora を使用したオンプレミス リソースのロギング

このソリューションは、Cloud LoggingCloud Monitoring を拡張してオンプレミスのインフラストラクチャとアプリを含める方法に関する、2 部構成シリーズの 1 つです。

  • ロギング(このソリューション): Logging でオンプレミス リソースからのロギングをサポートする方法について説明します。
  • モニタリング: Monitoring でオンプレミス リソースのモニタリングをサポートする方法について説明します。

オンプレミス リソースのロギングとモニタリングに Logging と Stackdriver を使用する理由として、次のことが考えられます。

  • インフラストラクチャを Google Cloud Platform(GCP)に移行する間に一時的なソリューションが必要であり、オンプレミス リソースを廃止するまでロギングとモニタリングを行う必要がある。
  • 複数のクラウドとオンプレミス リソースが含まれる、多様性のあるコンピューティング環境を使用する可能性がある。

いずれの場合も、Logging API と Monitoring API と BindPlane を使用することによって、オンプレミス リソースに対する可視性を得ることができます。このソリューションは、Google Cloud のリソースと、残存するオンプレミスのインフラストラクチャおよびアプリのリソースのロギング戦略に関心のある、DevOps の技術者、管理者、エグゼクティブを対象としています。

Logging を使用してログを取り込む

サポートされている次の 2 つの方法で API を使用して、Logging にログを取り込むことができます。

  • Blue Medora の BindPlane ツールを使用して、オンプレミスまたは他のクラウドソースからログを取り込む。
  • アプリから直接 Cloud Logging API を使用するか、カスタム エージェントを使用する。

BindPlane を使用して Logging ログを取り込む

次の図は、BindPlane でログを取り込む仕組みと、これらのログが Logging に取り込まれる仕組みに関するアーキテクチャを示しています。

Logging と BindPlane を使用してオンプレミスのログを取り込むアーキテクチャ。

BindPlane は、オンプレミスのログを Logging に取り込むための統合サービスを提供します。BindPlane は Fluentd エージェントを介して Logging API を使用し、Logging にログを送信します。これは Logging エージェントの処理に似ています。詳細については、BindPlane のアーキテクチャに関する記事をお読みください。この選択肢で必要になるのは開発ではなく構成設定であるため、デプロイに必要な工数が最小限で済みます。

メリット:

  • 必要になるのは開発ではなく構成である。
  • Logging の使用料金に含まれる。
  • Logging のプロダクトとサポートによってサポートされる構成である。
  • デフォルト構成では提供されないログを取り込むように拡張できる。

デメリット:

  • サードパーティ製ツールを使用する必要がある。
  • ログのプラグインがデフォルトで提供されていない場合は、Fluentd プラグインの構成が必要になることがある。提供されるログのリストはソースで参照できます。

Logging API を直接使用する

次の図は、ログがインストゥルメンテーションによって収集され、Logging に取り込まれる仕組みに関するアーキテクチャを示しています。

Logging API を使用してオンプレミスのログを直接取り込むアーキテクチャ。

API を直接使用する場合は、アプリケーションのインストゥルメンテーションを行い API にログを直接送信するか、API にログを送信するためのカスタム エージェントを開発する必要があります。開発作業が必要になるため、工数が高くなる選択肢です。

メリット:

  • クライアント ロギング ライブラリを使用してインストゥルメンテーションを実装できるため、柔軟性が高い。

デメリット:

  • カスタム エージェントなどの、インフラストラクチャ ログ用の独立したソリューションが必要になる。
  • コードのインストゥルメンテーションが必要になる(結果として実装コストが高くなる可能性がある)。
  • 適切な取り込みのパフォーマンスを実現するには、バッチ処理などのスケーラブルな取り込み手法を使用する必要がある。
  • サポートの提供対象は Logging API のみであり、独自開発のコードはサポート対象外である。

BindPlane を使用する

このソリューションでは、Blue Medora の BindPlane ツールを使用して Logging にログを取り込む方法について説明します。このソリューションは Logging の料金に含まれているため、BindPlane では開発は不要で、プロダクトでサポートされるソリューションを提供します。

エージェント、ソース、宛先

BindPlane には次の機能があります。

  • エージェント: ログ収集に使用されるソフトウェア。通常はログを生成するマシンにインストールされます。エージェントは Logging API へのログの送信も行います。
  • ソース: 取り込むログ(syslog、Apache、Kubernetes など)、およびログの解析方法を指定する構成です。詳細については、BindPlane でサポートされるログをご覧ください。サポート対象外のログは、一般的な Syslog input または Tail input を使用して取り込むことができます。カスタムログに対しては Custom Input を指定できます。これを指定すると、カスタムの Fluentd 構成ブロックを入力として受け取ります。
  • 宛先: BindPlane によるログの転送先であるサードパーティのサービス。宛先は Logging に指標を書き込む Logging API です。

エージェント、ソース、宛先の詳細については、BindPlane スタートガイドをご覧ください。

使用例

ExampleOrganization という名前の組織を例として考えます。ExampleOrganization には、Google Cloud と Microsoft Azure にデプロイされたリソースと、vSphere を使用してデプロイされたオンプレミス リソースがあります。それぞれの環境にリソースが存在する中で、ExampleOrganization は、コンポーネントがデプロイされている場所に関係なく各コンポーネントのログを収集したいと考えています。BindPlane エージェントを使用して各環境から Logging にログを送信すると、すべてのログが 1 か所にまとめられ、レポート、モニタリング、運用を一元化できます。

この例では、一連のエージェント(Google Cloud、Microsoft Azure、vSphere 上のエージェントを含む)の宛先として Logging が設定されています。ログが生成されると、そのログは BindPlane によって Logging に取り込まれます。

オンプレミスから Logging にログを送信する

BindPlane を設定してログの送信を開始すると、それらのログは Logging に送信されます。ログを表示、処理、エクスポートするには、Google Cloud Console に移動します。ログは、generic_node または generic_task リソースタイプとして一覧表示されます。各リソースタイプに含まれるラベルの詳細については、Logging リソースのリストをご覧ください。

Cloud Logging では、次の 2 つのリソースタイプを使用して Cloud Logging 以外のログをサポートします。

  • 汎用ノード: 他のリソースタイプを適用できないマシンまたは他の計算リソースを識別します。ラベル値でノードを一意に識別する必要があります。
  • 汎用タスク: カスタムのオーケストレーション システムによってスケジュールされたプロセスなど、他のリソースを適用できないアプリプロセスを識別します。ラベル値でタスクを一意に識別する必要があります。

Logging でログを表示する

Cloud Console では、[汎用ノード] は Logging ページのリストにリソースタイプとして表示されます。

Logging のリソースのリスト

次のログは、generic_node リソースタイプとしてキャプチャされ、Logging に表示されているものです。

Logging のログのリスト。

次のログエントリは構造化ロギング形式を使用しています。この形式では、ログのペイロードが jsonPayload として格納されるため、ログ検索用の情報が豊富な形式となっています。構造化ロギング形式では、ペイロード内のフィールドを検索の一部として使用できるため、ログにアクセスしやすくなっています。BindPlane ロギング エージェントは、元のログエントリから Logging の構造化ログへのマッピングを提供します。

構造化ロギング形式のログエントリ。

まとめ

Logging で利用可能なログを使用すると、Logging の機能をフルに活用できます。ログは Cloud Console に表示されます。Logging のエクスポート機能を使用してログをエクスポートできます。また、ログベースの指標を使用することにより、Monitoring でログを使用して指標とアラートを作成できます。

次のステップ