このドキュメントは 11 月 3 日にリリースされた Azure 上の Anthos クラスタの最新バージョンを対象としています。詳細については、リリースノートをご覧ください。

Cloud のロギング

このトピックでは、Azure 版 Anthos クラスタを Cloud Logging と統合する方法と、ログにアクセスする方法について説明します。

始める前に

  1. Google Cloud CLI を構成し、Google Cloud プロジェクトで必要な API を有効にします。

  2. Cloud Logging / Cloud Monitoring を承認し、Google Cloud のオペレーション スイートの権限を設定します。

概要

Azure 版 Anthos クラスタには、コントロール プレーンとノードプール ノードの両方で実行されているシステム コンポーネント用の Cloud Logging のサポートが組み込まれています。

収集されるデータの種類

Azure 版 Anthos クラスタは、次の情報をログに記録します。

  • 各コントロール プレーン レプリカのシステム コンポーネントのログ。
  • 各ノードプール ノードのシステム サービスのログ。
  • ワークロードのログ(必要な場合)。

Cloud Logging のドキュメントで説明されているように、エージェントが収集したデータは、他の指標やログデータと同様に管理、削除できます。

ロギング コンポーネント

Azure 版 Anthos クラスタには、Fluentbit ベースのロギング エージェントが含まれています。コントロール プレーン ノードでは、ロギング エージェントはシステム コンポーネントとして実行されます。ノードプール ノードでは、Daemonset として実行されます。

ワークロード ロギングを有効にする

ワークロード ロギングを有効にするには、「gcloud alpha azure clusters create」で新しい Kubernetes 1.22 以降のクラスタを作成する必要があります。

デフォルトでは、Anthos clusters on Azure にクラスタを作成すると、システム ロギングが有効になります。ワークロード ロギングを有効にするには、--logging フラグを使用して gcloud alpha でクラスタを作成する必要があります。システム コンポーネント、ワークロード、またはその両方のロギングを有効にできます。

たとえば、新しいクラスタでシステムとワークロードのロギングの両方を有効にするには、次のフラグをクラスタの作成コマンドに追加します。

gcloud alpha container azure clusters create CLUSTER_NAME
...
--logging=SYSTEM,WORKLOAD

クラスタを作成する方法の詳細については、クラスタの作成をご覧ください。

ログにアクセスする

Cloud Logging の Azure 版 Anthos クラスタのログにアクセスする方法はいくつかあります。

  • ログ エクスプローラログ エクスプローラからログを直接表示できます。ロギング フィルタを使用して、クラスタ、ノード、名前空間、Pod、コンテナのログなどの Kubernetes リソースを選択します。

  • Google Cloud CLI: gcloud logging read コマンドを使用して、適切なクラスタ、ノード、Pod、コンテナのログを選択します。

ログについて

Cloud Logging のログはログエントリを集めたもので、各ログエントリは特定の種類のロギング リソースに適用されます。

リソースタイプ

Azure 版 Anthos クラスタに固有のリソースタイプは次のとおりです。

リソースの種類 表示名
k8s_control_plane_component コントロール プレーン コンポーネントのログ
k8s_node ノードプール ログ
k8s_container ワークロード コンテナ ログ

Azure 版 Anthos クラスタがクラスタのログを書き込むと、各ログエントリにリソースタイプが追加されます。ログが表示される場所を把握することによって、必要なときにログを簡単に見つけることができます。

コントロール プレーン ログ

コントロール プレーン ログでは、k8s_control_plane_component リソースタイプが使用されます。これには、kube-apiserver などのコントロール プレーン レプリカで実行されているシステム コンポーネント ログが含まれます。

ノードログ

ノードログは、k8s_node リソースタイプに分類されます。これには、ワーカーノードで実行されている重要なシステム コンポーネント ログ(kubeletcontainerd など)が含まれます。

システムアプリ ログ

システムアプリ ログは、k8s_container リソースタイプに分類されます。これには、Anthos clusters on Azure がワーカーノードにインストールした Pod のログが含まれます。具体的には、次の名前空間で実行されるコンテナが含まれます。

  • kube-system

  • gke-connect

  • gke-system

Cloud Logging ユーザー インターフェースでログを検索する

Cloud Logging ユーザー インターフェースでは、ログ エクスプローラを使用してログを表示できます。

ログ エクスプローラ

クエリビルダーを使用すると、クエリ パラメータを手動で追加してクエリを作成できます。たとえば、システム ワークロードのログを調べる場合は、k8s_container リソースタイプを選択または検索してから、ロケーションとクラスタ名を選択できます。次に、コンテナまたは Pod 名をフィルタして、検索を絞り込むことができます。

ログ エクスプローラでは、ログフィールド エクスプローラを使用して検索クエリを作成できます。ここには、指定したログフィールドでログエントリ数が大きなものから順に表示されます。ログ フィールド エクスプローラを使用すると、リソースの Kubernetes 値を簡単に選択できるため、Azure ログの Anthos クラスタでは特に便利です。たとえば、特定のクラスタ、名前空間、Pod 名、コンテナ名のログを選択できます。

詳細については、ログ エクスプローラの使用をご覧ください。

サンプルクエリ

このセクションでは、ログ エクスプローラで作成できるサンプルクエリを示します。

例 1: Azure クラスタ CLUSTER_NAME のコントロール プレーン ノードで kube-apiserver のログを取得する。

resource.type="k8s_control_plane_component"
resource.labels.cluster_name="azureClusters/CLUSTER_NAME"
resource.labels.component_name="apiserver"

例 2: Azure クラスタ CLUSTER_NAME のワーカーノードの kubelet のログを取得する。

resource.type="k8s_node"
resource.labels.cluster_name="azureClusters/CLUSTER_NAME"
log_name="projects/PROJECT_ID/logs/kubelet"

例 3: Azure クラスタ CLUSTER_NAMEcilium-agent コンテナのログを取得する。

resource.type="k8s_container"
resource.labels.cluster_name="azureClusters/CLUSTER_NAME"
resource.labels.container_name="cilium-agent"

次のステップ

Cloud Logging について学習する