Fluentdのカスタマイズ
Fluentd SELinuxコンテキスト・タイプの構成
複数のログ・ストリームがあるコンポーネント、またはstdoutにログを出力できないコンポーネントについては、Verrazzanoはログ・ストリームを解析および変換するFluentdサイドカーをデプロイします。結果のログは、サイドカー・コンテナのstdoutに送信され、kubeletサービスによって/var/log/containers
に書き込まれます。
たとえば、WebLogicデプロイメントでは、AdminServer.log
が使用されて変換され、Fluentdサイドカーによってstdoutに書き込まれます。これらのログは、fluentd-stdout-sidecar
という名前のコンテナでkubectl
を使用して表示できます。
$ kubectl logs tododomain-adminserver \
-n todo-list \
-c fluentd-stdout-sidecar
Verrazzano Fluentd Dockerイメージには、次のプラグインが付属しています:
Verrazzano Fluentd Dockerイメージには、2つのローカル・デフォルト・プラグインkubernetes_parser
とkubernetes_multiline_parser
もあります。これらのプラグインは、Kubernetes管理ログ・ファイルの解析に役立ちます。
次の例では、これらのプラグインのユースケースを示します:
# ---- fluentd.conf ----
# kubernetes parser
<source>
@type tail
path ./kubelet.log
read_from_head yes
tag kubelet
<parse>
@type multiline_kubernetes
</parse>
</source>
# kubernetes multi-line parser
<source>
@type tail
path ./kubelet.log
read_from_head yes
tag kubelet
<parse>
@type multiline_kubernetes
</parse>
</source>
# ---- EOF ----
Verrazzanoは、verrazzano-system
ネームスペース内のノードごとに1つのFluentdレプリカを実行するFluentd DaemonSetをデプロイします。各インスタンスは、ノードの/var/log/containers
ディレクトリからログを取得し、それをターゲットのOpenSearchデータ・ストリームに書き込みます。Verrazzanoシステム・アプリケーションは、特別な処理を受け取り、ログをverrazzano-system
データ・ストリームに書き込みます。Verrazzanoアプリケーション・ログは、アプリケーションのネームスペースに基づいてデータ・ストリームにエクスポートされます(verrazzano-application-<application namespace>
の形式)。
たとえば、/var/log/containers
に書き込まれたopensearch-dashboards
ログは、Fluentdによって取得され、OpenSearchに書き込まれます。opensearch-dashboards
はVerrazzanoシステム・アプリケーションであるため、ログはverrazzano-system
データ・ストリームにエクスポートされます。システム以外のアプリケーションの場合、それがmyapp
ネームスペースにあれば、ログはverrazzano-application-myapp
データ・ストリームにエクスポートされます。
Fluentd SELinuxコンテキスト・タイプの構成