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

CloudWatch でのログの確認

この実習では、各ノードにデプロイされた Fluent Bit エージェントが Amazon CloudWatch Logs に転送した Kubernetes Pod のログを確認する方法を見ていきます。デプロイされたアプリケーションコンポーネントは stdout にログを書き込み、これらは各ノードの /var/log/containers/*.log パスに保存されます。

まず、Fluent Bit を有効にしてから新しいログが書き込まれることを確認するために、ui コンポーネントの Pod をリサイクルしましょう:

~$kubectl delete pod -n ui --all
~$kubectl rollout status deployment/ui \
-n ui --timeout 30s
deployment "ui" successfully rolled out

その間に、Fluent Bit DaemonSet のログを確認すると、既存のロググループの下に ui コンポーネント用の新しいログストリームが作成されていることがわかります。

~$kubectl logs daemonset.apps/aws-for-fluent-bit -n kube-system
...
...
[2026/08/07 15:04:24] [ info] [output:cloudwatch_logs:cloudwatch_logs.0] Creating log stream fluentbit-kube.var.log.containers.aws-for-fluent-bit-4h7cr_kube-system_aws-for-fluent-bit-0e26a01294055645368d7692084cda1a886f04a3621e5fe07fbd24e4d8c7f14a.log in log group /aws/eks/eks-workshop/aws-fluentbit-logs-20260807150346312400000001
...

次に、kubectl logs を直接使用して ui コンポーネントがログを生成していることを確認できます:

~$kubectl logs -n ui deployment/ui
Picked up JAVA_TOOL_OPTIONS: -javaagent:/opt/aws-opentelemetry-agent.jar
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
[otel.javaagent 2023-07-03 23:39:18:499 +0000] [main] INFO io.opentelemetry.javaagent.tooling.VersionLogger - opentelemetry-javaagent - version: 1.24.0-aws
 
  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v3.0.6)
 
2023-07-03T23:39:20.472Z  INFO 1 --- [           main] c.a.s.u.UiApplication                    : Starting UiApplication v0.0.1-SNAPSHOT using Java 17.0.7 with PID 1 (/app/app.jar started by appuser in /app)
2023-07-03T23:39:20.488Z  INFO 1 --- [           main] c.a.s.u.UiApplication                    : No active profile set, falling back to 1 default profile: "default"
2023-07-03T23:39:24.985Z  WARN 1 --- [           main] o.s.b.a.e.EndpointId                     : Endpoint ID 'fail-cart' contains invalid characters, please migrate to a valid format.
2023-07-03T23:39:25.132Z  INFO 1 --- [           main] o.s.b.a.e.w.EndpointLinksResolver        : Exposing 15 endpoint(s) beneath base path '/actuator'
2023-07-03T23:39:25.567Z  INFO 1 --- [           main] o.s.b.w.e.n.NettyWebServer               : Netty started on port 8080
2023-07-03T23:39:25.599Z  INFO 1 --- [           main] c.a.s.u.UiApplication                    : Started UiApplication in 5.877 seconds (process running for 7.361)

CloudWatch Logs コンソールを開いて、これらのログが表示されていることを確認しましょう:

AWS console iconCloudWatch コンソールを開く

fluentbit でフィルタリングして、Fluent Bit によって作成されたロググループを見つけます:

CloudWatch Log Group

/aws/eks/eks-workshop/aws-fluentbit-logs-a1b2c3 を選択してログストリームを表示します。各ストリームは個々の Pod に対応しています:

CloudWatch Log Stream

ログエントリの1つを展開して、完全な JSON ペイロードを確認できます:

Pod logs