このページでは、GKE クラスタでネットワーク ポリシー ロギングを有効にする方法と、ログをエクスポートする方法について説明します。
概要
ネットワーク ポリシーとは、Pod レベルのファイアウォールのことで、Pod が送受信できるネットワーク トラフィックを指定します。ネットワーク ポリシー ログには、ネットワーク ポリシーのイベントが記録されます。すべてのイベントをロギングすることも、次の基準に基づいてロギングすることもできます。
- 許可された接続。
- 拒否された接続。
- 特定のポリシーで許可された接続。
- 特定の Namespace で拒否された Pod への接続。
ロギングを有効にする
デフォルトでは、ネットワーク ポリシー ロギングは有効になっていません。ロギングの有効化と、ロギング対象のイベントの選択については、Google Kubernetes Engine のドキュメントのネットワーク ポリシー ロギングの使用をご覧ください。
ログへのアクセス
ネットワーク ポリシーのログは、Cloud Logging に自動的にアップロードされます。ログにアクセスするには、ログ エクスプローラまたは Google Cloud CLI を使用します。任意のシンクに Cloud Logging からログをエクスポートすることもできます。
gcloud
gcloud logging read --project "PROJECT_NAME" 'resource.type="k8s_node" \
resource.labels.location="CLUSTER_LOCATION" \
resource.labels.cluster_name="awsClusters/CLUSTER_NAME" \
logName="projects/PROJECT_NAME/logs/policy-action"'
次のように置き換えます。
PROJECT_NAME
: Google Cloud プロジェクトCLUSTER_LOCATION
: クラスタが管理されている Google Cloud のロケーションCLUSTER_NAME
: クラスタの名前
Cloud Logging
Google Cloud コンソールの [ログ エクスプローラ] ページに移動します。
[クエリビルダー] をクリックします。
次のクエリを使用して、すべてのネットワーク ポリシーのログレコードを検索します。
resource.type="k8s_node" resource.labels.location="CLUSTER_LOCATION" resource.labels.cluster_name="awsClusters/CLUSTER_NAME" logName="projects/PROJECT_NAME/logs/policy-action"
次のように置き換えます。
CLUSTER_LOCATION
: クラスタが管理されている Google Cloud のロケーション。CLUSTER_NAME
: クラスタの名前。PROJECT_NAME
: Google Cloud プロジェクト。
ログ エクスプローラの使用方法については、ログ エクスプローラの使用をご覧ください。
また、クエリビルダーを使用してクエリを作成することもできます。ネットワーク ポリシーのログに対するクエリを実行するには、[ログ名] プルダウン リストで [policy-action] を選択します。使用可能なログがない場合、プルダウン リストに policy-action は表示されません。
ネットワーク ポリシー ログへのローカル アクセス
ノードのファイル システムにアクセスできる場合は、ローカル ファイル /var/log/network/policy_action.log*
の各ノードでネットワーク ポリシーのログを利用できます。現行のログファイルが 10 MB に達すると、ノードがログファイルをローテーションします。ログファイルは最大 5 世代まで保存されます。