8.13. ロギングレベルの設定
Kafka コンポーネントおよび AMQ Streams Operator のカスタムリソースでロギングレベルを設定します。ログレベルは、カスタムリソースの spec.logging
プロパティーに直接指定できます。あるいは、configMapKeyRef
プロパティーを使用してカスタムリソースで参照される ConfigMap でロギングプロパティーを定義することもできます。
ConfigMap を使用する利点は、ロギングプロパティーが 1 カ所で維持され、複数のリソースにアクセスできることです。複数のリソースに ConfigMap を再利用することもできます。ConfigMap を使用して AMQ Streams Operator のロガーを指定する場合は、ロギング仕様を追加してフィルターを追加することもできます。
ロギング仕様でロギング type
を指定します。
-
ロギングレベルを直接指定する場合は
inline
-
ConfigMap を参照する場合は
external
inline
ロギングの設定例
external
設定の例
ConfigMap の name
と key
の値は必須です。name
や key
が設定されていない場合は、デフォルトのロギングが使用されます。
8.13.1. Kafka コンポーネントおよび Operator のロギングオプション リンクのコピーリンクがクリップボードにコピーされました!
特定の Kafka コンポーネントまたは Operator のログ設定の詳細は、次のセクションを参照してください。
Kafka コンポーネントのロギング
Operator のロギング
8.13.2. ロギングの ConfigMap の作成 リンクのコピーリンクがクリップボードにコピーされました!
ConfigMap を使用してロギングプロパティーを定義するには、ConfigMap を作成してから、リソースの spec
にあるロギング定義の一部としてそれを参照します。
ConfigMap には適切なロギング設定が含まれる必要があります。
-
Kafka コンポーネント、ZooKeeper、および Kafka Bridge の
log4j.properties
。 -
Topic Operator および User Operator の
log4j2.properties
設定はこれらのプロパティーの配下に配置する必要があります。
この手順では、ConfigMap は Kafka リソースのルートロガーを定義します。
手順
ConfigMap を作成します。
ConfigMap を YAML ファイルとして作成するか、プロパティーファイルから Config Map を作成します。
Kafka のルートロガー定義が含まれる ConfigMap の例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティーファイルを使用している場合は、コマンドラインでファイルを指定します。
oc create configmap logging-configmap --from-file=log4j.properties
oc create configmap logging-configmap --from-file=log4j.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティーファイルではロギング設定が定義されます。
Define the logger ...
# Define the logger kafka.root.logger.level="INFO" # ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースの
spec
にexternal ロギングを定義し、logging.valueFrom.configMapKeyRef.name
に ConfigMap の名前を、logging.valueFrom.configMapKeyRef.key
にこの ConfigMap のキーを設定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースを作成または更新します。
oc apply -f <kafka_configuration_file>
oc apply -f <kafka_configuration_file>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.13.3. Cluster Operator のロギングの設定 リンクのコピーリンクがクリップボードにコピーされました!
Cluster Operator のロギングは、strimzi-cluster-operator
という名前の ConfigMap
を使用して設定されます。ロギング設定が含まれる ConfigMap
は、Cluster Operator のインストール時に作成されます。この ConfigMap
は、install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
ファイルに記述されます。この ConfigMap
のデータフィールド data.log4j2.properties
を変更することで、Cluster Operator のロギングを設定します。
ロギング設定を更新するには、050-ConfigMap-strimzi-cluster-operator.yaml
ファイルを編集し、以下のコマンドを実行します。
oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
または、ConfigMap
を直接編集することもできます。
oc edit configmap strimzi-cluster-operator
oc edit configmap strimzi-cluster-operator
この ConfigMap を使用すると、ルートロガーレベル、ログ出力形式、さまざまなコンポーネントのログレベルなど、ログのさまざまな側面を制御できます。monitorInterval
設定は、ログ設定をリロードする頻度を決定します。Kafka AdminClient
、ZooKeeper ZKTrustManager
、Netty、および OkHttp クライアントのログレベルを制御することもできます。Netty は AMQ Streams でネットワーク通信に使用されるフレームワークで、OkHttp は HTTP リクエストの作成に使用されるライブラリーです。
クラスターオペレータのデプロイ時に ConfigMap
がない場合、デフォルトのロギング値が使用されます。
Cluster Operator のデプロイ後に ConfigMap
が誤って削除される場合、最後に読み込まれたロギング設定が使用されます。新規のロギング設定を読み込むために新規 ConfigMap
を作成します。
ConfigMap
から monitorInterval
オプションを削除しないでください。
8.13.4. AMQ Streams Operator へのロギングフィルターの追加 リンクのコピーリンクがクリップボードにコピーされました!
ConfigMap を使用して AMQ Streams Operator のロギングレベル (log4j2) ロギングレベルを設定する場合、ロギングフィルターを定義して、ログに返される内容も制限できます。
ロギングフィルターは、ロギングメッセージが多数ある場合に役に立ちます。ロガーのログレベルを DEBUG(rootLogger.level="DEBUG"
) に設定すると仮定します。ロギングフィルターは、このレベルでロガーに対して返されるログ数を減らし、特定のリソースに集中できるようにします。フィルターが設定されると、フィルターに一致するログメッセージのみがログに記録されます。
フィルターはマーカーを使用して、ログに含まれる内容を指定します。マーカーの種類、namespace、および名前を指定します。たとえば、Kafka クラスターで障害が発生した場合、種類を Kafka
に指定してログを分離し、障害が発生しているクラスターの namespace および名前を使用します。
以下の例は、my-kafka-cluster
という名前の Kafka クラスターのマーカーフィルターを示しています。
基本的なロギングフィルターの設定
rootLogger.level="INFO" appender.console.filter.filter1.type=MarkerFilter appender.console.filter.filter1.onMatch=ACCEPT appender.console.filter.filter1.onMismatch=DENY appender.console.filter.filter1.marker=Kafka(my-namespace/my-kafka-cluster)
rootLogger.level="INFO"
appender.console.filter.filter1.type=MarkerFilter
appender.console.filter.filter1.onMatch=ACCEPT
appender.console.filter.filter1.onMismatch=DENY
appender.console.filter.filter1.marker=Kafka(my-namespace/my-kafka-cluster)
フィルターは 1 つまたは複数作成できます。ここでは、ログは 2 つの Kafka クラスターに対してフィルターされます。
複数のロギングフィルターの設定
フィルターの Cluster Operator への追加
フィルターを Cluster Operator に追加するには、そのロギング ConfigMap YAML ファイルを更新します (install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
)。
手順
050-ConfigMap-strimzi-cluster-operator.yaml
ファイルを更新して、フィルタープロパティーを ConfigMap に追加します。この例では、フィルタープロパティーは
my-kafka-cluster
Kafka クラスターのログのみを返します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow または、
ConfigMap
を直接編集することもできます。oc edit configmap strimzi-cluster-operator
oc edit configmap strimzi-cluster-operator
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ConfigMap
を直接編集せずに YAML ファイルを更新する場合は、ConfigMap をデプロイして変更を適用します。oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Topic Operator または User Operator へのフィルターの追加
フィルターを Topic Operator または User Operator に追加するには、ロギング ConfigMap を作成または編集します。
この手順では、ロギング ConfigMap は、Topic Operator のフィルターで作成されます。User Operator に同じアプローチが使用されます。
手順
ConfigMap を作成します。
ConfigMap を YAML ファイルとして作成するか、プロパティーファイルから Config Map を作成します。
この例では、フィルタープロパティーは
my-topic
トピックに対してのみログを返します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティーファイルを使用している場合は、コマンドラインでファイルを指定します。
oc create configmap logging-configmap --from-file=log4j2.properties
oc create configmap logging-configmap --from-file=log4j2.properties
Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロパティーファイルではロギング設定が定義されます。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow リソースの
spec
にexternal ロギングを定義し、logging.valueFrom.configMapKeyRef.name
に ConfigMap の名前を、logging.valueFrom.configMapKeyRef.key
にこの ConfigMap のキーを設定します。Topic Operator については、
Kafka
リソースのtopicOperator
設定でロギングを指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - Cluster Operator をデプロイして変更を適用します。
create -f install/cluster-operator -n my-cluster-operator-namespace
create -f install/cluster-operator -n my-cluster-operator-namespace