CloudWatch Log Analytics
CloudWatch Log Analytics を使用すると、CloudWatch Logs のログデータをインタラクティブに検索および分析できます。クエリを実行することで、運用上の問題により効率的かつ効果的に対応できます。問題が発生した場合、Log Analytics を使用して潜在的な原因を特定し、デプロイされた修正を検証できます。これには、いくつかのシンプルながら強力なコマンドを備えた専用のクエリ言語が含まれています。
Log Analytics は、Logs Insights クエリエディタ、Live Tail、および Contributor Insights を単一のインターフェースに統合した CloudWatch コンソールエクスペリエンスであり、現在はデフォルトになっています。以前に独立した Logs Insights ページを使用していた場合、クエリエディタとクエリ構文は同じで、現在は Log Analytics の下に表示されます。
このラボ演習では、Log Analytics を使用して EKS Control Plane ログをクエリする例を見ていきます。まず、コンソールで Log Analytics に移動します:
CloudWatch コンソールを開く
次のような画面が表示されます:

Log Analytics の一般的なユースケースは、Kubernetes API サーバーに大量のリクエストを行っている EKS クラスター内のコンポーネントを特定することです。これを行う方法の1つは、次のクエリです:
fields userAgent, requestURI, @timestamp, @message
| filter @logStream ~= "kube-apiserver-audit"
| stats count(userAgent) as count by userAgent
| sort count desc
このクエリは Kubernetes 監査ログをチェックし、userAgent でグループ化された API リクエストの数をカウントし、降順でソートします。Log Analytics コンソールで、EKS クラスターのロググループを選択します:

クエリをコンソールにコピーして Run query を押すと、結果が返されます:

この情報は、どのコンポーネントが API サーバーにリクエストを送信しているかを理解するために非常に貴重です。
CDK Observability Accelerator を使用している場合は、CloudWatch Insights Add-on をチェックしてください。これは、EKS のコンテナ化されたアプリケーションとマイクロサービスからメトリクスとログを収集、集約、および要約します。