2.12. Filelog Receiver
Filelog Receiver はファイルからログを追跡して解析します。
Filelog Receiver はテクノロジープレビューのみの機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
テキストファイルを追跡する Filelog Receiver が有効になっている OpenTelemetry Collector カスタムリソース
# ...
config:
receivers:
filelog:
include: [ /simple.log ]
operators:
- type: regex_parser
regex: '^(?P<time>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) (?P<sev>[A-Z]*) (?P<msg>.*)$'
timestamp:
parse_from: attributes.time
layout: '%Y-%m-%d %H:%M:%S'
severity:
parse_from: attributes.sev
# ...
このレシーバーを使用して、次の 2 つの方法のいずれかで Pod ファイルシステムからログを収集できます。
- アプリケーション Pod と一緒に実行されるサイドカーコンテナーでレシーバーを設定します。
- Kubernetes ログにアクセスするための適切なパーミッションを持つホストマシンにレシーバーを DaemonSet としてデプロイ。
アプリケーションコンテナーからログを収集するには、サイドカーインジェクションでこのレシーバーを使用できます。Red Hat build of OpenTelemetry Operator を使用すると、OpenTelemetry Collector をサイドカーコンテナーとしてアプリケーション Pod に挿入できます。このアプローチは、アプリケーションがコンテナーファイルシステム内のファイルにログを書き込む場合に便利です。次に、このレシーバーはログファイルを調整し、演算子を適用してログを解析できます。
このレシーバーをサイドカーモードで使用してアプリケーションコンテナーからログを収集するには、OpenTelemetryCollector カスタムリソースでボリュームマウントを設定する必要があります。アプリケーションコンテナーとサイドカー Collector の両方が、emptyDir などの同じ共有ボリュームをマウントする必要があります。アプリケーションの Pod 仕様でボリュームを定義します。以下の例を参照してください。
サイドカーモードで設定された Filelog Receiver が含まれる OpenTelemetry Collector カスタムリソース
apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
name: filelog
namespace: otel-logging
spec:
mode: sidecar
volumeMounts:
- name: logs
mountPath: /var/log/app
config:
receivers:
filelog:
include:
- /var/log/app/*.log
operators:
- type: regex_parser
regex: '^(?P<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}) \[(?P<level>\w+)\] (?P<message>.*)$'
timestamp:
parse_from: attributes.timestamp
layout: '%Y-%m-%d %H:%M:%S'
processors: {}
exporters:
debug:
verbosity: detailed
service:
pipelines:
logs:
receivers: [filelog]
processors: []
exporters: [debug]