Fluentd でコンテナログを転送しているのだが、Kubernetes のバージョンを上げてコンテナランタイムがcontainerdに変わってからログが転送されなくなった。
調べたらdockerのときは /var/log/containers
にJSONで出力されていたログが、containerdでは [timestamp] stderr F [time] ...
のような1行形式に変わっていた。
Kubernetesのコンテナランタイムがcontainerd場合のFluent Bitでのログ転送について - ブログ - 株式会社Smallit(スモーリット)
https://github.com/fluent/fluentd-kubernetes-daemonset/issues/412
プレーンテキストになったことでもうひと工夫必要
複数行に渡ってログが出力されるとき、grepでは先頭の行しか拾えないので、もしJavaのスタックトレースなどで形式がマッチしない場合は工夫がいる。
自分のケースでは使わなかった。
multiline Parser を使うのがよさげ