2.8.2. 在 Operator 中添加日志记录过滤器
如果您使用 ConfigMap 为 AMQ Streams Operator 配置(log4j2)日志记录级别,您也可以定义日志记录过滤器来限制日志中返回的内容。
当您有大量日志消息时,日志记录过滤器很有用。假设您将日志记录器的日志级别设置为 DEBUG(rootLogger.level="DEBUG")
。日志记录过滤器减少了该级别上日志记录器返回的日志数量,因此您可以专注于特定的资源。设置过滤器后,将仅记录与过滤器匹配的日志消息。
过滤器使用 标记 来指定要包含在日志中的内容。您可以为标记指定一个 kind、namespace 和 name。例如,如果 Kafka 集群失败,您可以通过将 kind 指定为 Kafka
来隔离日志,并使用失败集群的命名空间和名称。
本例显示了名为 my-kafka-cluster
的 Kafka 集群的标记过滤器。
基本日志记录过滤器配置
rootLogger.level="INFO" appender.console.filter.filter1.type=MarkerFilter 1 appender.console.filter.filter1.onMatch=ACCEPT 2 appender.console.filter.filter1.onMismatch=DENY 3 appender.console.filter.filter1.marker=Kafka(my-namespace/my-kafka-cluster) 4
您可以创建一个或多个过滤器。在这里,会针对两个 Kafka 集群过滤日志。
多个日志记录过滤器配置
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) appender.console.filter.filter2.type=MarkerFilter appender.console.filter.filter2.onMatch=ACCEPT appender.console.filter.filter2.onMismatch=DENY appender.console.filter.filter2.marker=Kafka(my-namespace/my-kafka-cluster-2)
为 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 集群返回日志:kind: ConfigMap apiVersion: v1 metadata: name: strimzi-cluster-operator data: log4j2.properties: #... 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)
或者,直接编辑
ConfigMap
:oc edit configmap strimzi-cluster-operator
如果您更新了 YAML 文件而不是直接编辑
ConfigMap
,请通过部署 ConfigMap 来应用更改:oc create -f install/cluster-operator/050-ConfigMap-strimzi-cluster-operator.yaml
为主题 Operator 或 User Operator 添加过滤器
要在 Topic Operator 或 User Operator 中添加过滤器,请创建或编辑日志记录 ConfigMap。
在这一流程中,使用 Topic Operator 的过滤器创建日志 ConfigMap。用户 Operator 也使用相同的方法。
流程
创建 ConfigMap。
您可以将 ConfigMap 作为 YAML 文件或属性文件创建。
在本例中,过滤器属性仅为
my-topic
主题返回日志:kind: ConfigMap apiVersion: v1 metadata: name: logging-configmap data: log4j2.properties: 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=KafkaTopic(my-namespace/my-topic)
如果您使用属性文件,请在命令行中指定该文件:
oc create configmap logging-configmap --from-file=log4j2.properties
属性文件定义日志配置:
# Define the logger rootLogger.level="INFO" # Set the filters appender.console.filter.filter1.type=MarkerFilter appender.console.filter.filter1.onMatch=ACCEPT appender.console.filter.filter1.onMismatch=DENY appender.console.filter.filter1.marker=KafkaTopic(my-namespace/my-topic) # ...
在资源的
spec
中定义 外部 日志记录,将logging.valueFrom.configMapKeyRef.name
设置为 ConfigMap 的名称,valueFrom.configMapKeyRef.key
设置为此 ConfigMap 中的键。对于 Topic Operator,日志记录在
Kafka
资源的topicOperator
配置中指定。spec: # ... entityOperator: topicOperator: logging: type: external valueFrom: configMapKeyRef: name: logging-configmap key: log4j2.properties
- 通过部署 Cluster Operator 来应用更改:
create -f install/cluster-operator -n my-cluster-operator-namespace