From 2cb002668fb96c8ad5fc1632b280e47fe6b73e36 Mon Sep 17 00:00:00 2001 From: reyesj2 <94730068+reyesj2@users.noreply.github.com> Date: Fri, 11 Apr 2025 12:32:49 -0500 Subject: [PATCH 1/3] restrict count of kafka log files --- salt/kafka/config.sls | 8 +++ salt/kafka/enabled.sls | 1 + salt/kafka/etc/log4j.properties | 101 ++++++++++++++++++++++++++++++++ 3 files changed, 110 insertions(+) create mode 100644 salt/kafka/etc/log4j.properties diff --git a/salt/kafka/config.sls b/salt/kafka/config.sls index 4900cd882..1bedf96a0 100644 --- a/salt/kafka/config.sls +++ b/salt/kafka/config.sls @@ -86,6 +86,14 @@ remove_kafka_server_jaas_properties: - name: /opt/so/conf/kafka/kafka_server_jaas.conf {% endif %} +kafka_log4j_properties: + file.managed: + - source: salt://kafka/etc/log4j.properties + - name: /opt/so/conf/kafka/log4j.properties + - user: 960 + - group: 960 + - show_changes: False + reset_quorum_on_changes: cmd.run: - name: rm -f /nsm/kafka/data/__cluster_metadata-0/quorum-state diff --git a/salt/kafka/enabled.sls b/salt/kafka/enabled.sls index 3bdd67208..8448bd5aa 100644 --- a/salt/kafka/enabled.sls +++ b/salt/kafka/enabled.sls @@ -56,6 +56,7 @@ so-kafka: - /opt/so/log/kafka:/opt/kafka/logs/:rw - /opt/so/conf/kafka/server.properties:/opt/kafka/config/kraft/server.properties:ro - /opt/so/conf/kafka/client.properties:/opt/kafka/config/kraft/client.properties:ro + - /opt/so/conf/kafka/log4j.properties:/opt/kafka/config/log4j.properties:ro {% if KAFKA_EXTERNAL_ACCESS %} - /opt/so/conf/kafka/kafka_server_jaas.conf:/opt/kafka/config/kafka_server_jaas.conf:ro {% endif %} diff --git a/salt/kafka/etc/log4j.properties b/salt/kafka/etc/log4j.properties new file mode 100644 index 000000000..8aa5b3e67 --- /dev/null +++ b/salt/kafka/etc/log4j.properties @@ -0,0 +1,101 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Unspecified loggers and loggers with additivity=true output to server.log and stdout +# Note that INFO only applies to unspecified loggers, the log level of the child logger is used otherwise +log4j.rootLogger=INFO, stdout, kafkaAppender + +log4j.appender.stdout=org.apache.log4j.ConsoleAppender +log4j.appender.stdout.layout=org.apache.log4j.PatternLayout +log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.kafkaAppender=org.apache.log4j.RollingFileAppender +log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log +log4j.appender.kafkaAppender.MaxFileSize=1MB +log4j.appender.kafkaAppender.MaxBackupIndex=10 +log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.stateChangeAppender=org.apache.log4j.RollingFileAppender +log4j.appender.stateChangeAppender.File=${kafka.logs.dir}/state-change.log +log4j.appender.stateChangeAppender.MaxFileSize=1MB +log4j.appender.stateChangeAppender.MaxBackupIndex=10 +log4j.appender.stateChangeAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.stateChangeAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.requestAppender=org.apache.log4j.RollingFileAppender +log4j.appender.requestAppender.File=${kafka.logs.dir}/kafka-request.log +log4j.appender.requestAppender.MaxFileSize=1MB +log4j.appender.requestAppender.MaxBackupIndex=10 +log4j.appender.requestAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.requestAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.cleanerAppender=org.apache.log4j.RollingFileAppender +log4j.appender.cleanerAppender.File=${kafka.logs.dir}/log-cleaner.log +log4j.appender.cleanerAppender.MaxFileSize=1MB +log4j.appender.cleanerAppender.MaxBackupIndex=10 +log4j.appender.cleanerAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.cleanerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.controllerAppender=org.apache.log4j.RollingFileAppender +log4j.appender.controllerAppender.File=${kafka.logs.dir}/controller.log +log4j.appender.controllerAppender.MaxFileSize=1MB +log4j.appender.controllerAppender.MaxBackupIndex=10 +log4j.appender.controllerAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.controllerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +log4j.appender.authorizerAppender=org.apache.log4j.RollingFileAppender +log4j.appender.authorizerAppender.File=${kafka.logs.dir}/kafka-authorizer.log +log4j.appender.authorizerAppender.MaxFileSize=1MB +log4j.appender.authorizerAppender.MaxBackupIndex=10 +log4j.appender.authorizerAppender.layout=org.apache.log4j.PatternLayout +log4j.appender.authorizerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n + +# Change the line below to adjust ZK client logging +log4j.logger.org.apache.zookeeper=INFO + +# Change the two lines below to adjust the general broker logging level (output to server.log and stdout) +log4j.logger.kafka=INFO +log4j.logger.org.apache.kafka=INFO + +# Change to DEBUG or TRACE to enable request logging +log4j.logger.kafka.request.logger=WARN, requestAppender +log4j.additivity.kafka.request.logger=false + +# Uncomment the lines below and change log4j.logger.kafka.network.RequestChannel$ to TRACE for additional output +# related to the handling of requests +#log4j.logger.kafka.network.Processor=TRACE, requestAppender +#log4j.logger.kafka.server.KafkaApis=TRACE, requestAppender +#log4j.additivity.kafka.server.KafkaApis=false +log4j.logger.kafka.network.RequestChannel$=WARN, requestAppender +log4j.additivity.kafka.network.RequestChannel$=false + +# Change the line below to adjust KRaft mode controller logging +log4j.logger.org.apache.kafka.controller=INFO, controllerAppender +log4j.additivity.org.apache.kafka.controller=false + +# Change the line below to adjust ZK mode controller logging +log4j.logger.kafka.controller=TRACE, controllerAppender +log4j.additivity.kafka.controller=false + +log4j.logger.kafka.log.LogCleaner=INFO, cleanerAppender +log4j.additivity.kafka.log.LogCleaner=false + +log4j.logger.state.change.logger=INFO, stateChangeAppender +log4j.additivity.state.change.logger=false + +# Access denials are logged at INFO level, change to DEBUG to also log allowed accesses +log4j.logger.kafka.authorizer.logger=INFO, authorizerAppender +log4j.additivity.kafka.authorizer.logger=false \ No newline at end of file From 9459bf8a2737e0cd60e3d8479d1abad2e055f5e9 Mon Sep 17 00:00:00 2001 From: reyesj2 <94730068+reyesj2@users.noreply.github.com> Date: Fri, 11 Apr 2025 14:41:32 -0500 Subject: [PATCH 2/3] allow larger kafka log files before forcing rollover --- salt/kafka/etc/log4j.properties | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/salt/kafka/etc/log4j.properties b/salt/kafka/etc/log4j.properties index 8aa5b3e67..76194c1ee 100644 --- a/salt/kafka/etc/log4j.properties +++ b/salt/kafka/etc/log4j.properties @@ -23,42 +23,42 @@ log4j.appender.stdout.layout.ConversionPattern=[%d] %p %m (%c)%n log4j.appender.kafkaAppender=org.apache.log4j.RollingFileAppender log4j.appender.kafkaAppender.File=${kafka.logs.dir}/server.log -log4j.appender.kafkaAppender.MaxFileSize=1MB +log4j.appender.kafkaAppender.MaxFileSize=10MB log4j.appender.kafkaAppender.MaxBackupIndex=10 log4j.appender.kafkaAppender.layout=org.apache.log4j.PatternLayout log4j.appender.kafkaAppender.layout.ConversionPattern=[%d] %p %m (%c)%n log4j.appender.stateChangeAppender=org.apache.log4j.RollingFileAppender log4j.appender.stateChangeAppender.File=${kafka.logs.dir}/state-change.log -log4j.appender.stateChangeAppender.MaxFileSize=1MB +log4j.appender.stateChangeAppender.MaxFileSize=10MB log4j.appender.stateChangeAppender.MaxBackupIndex=10 log4j.appender.stateChangeAppender.layout=org.apache.log4j.PatternLayout log4j.appender.stateChangeAppender.layout.ConversionPattern=[%d] %p %m (%c)%n log4j.appender.requestAppender=org.apache.log4j.RollingFileAppender log4j.appender.requestAppender.File=${kafka.logs.dir}/kafka-request.log -log4j.appender.requestAppender.MaxFileSize=1MB +log4j.appender.requestAppender.MaxFileSize=10MB log4j.appender.requestAppender.MaxBackupIndex=10 log4j.appender.requestAppender.layout=org.apache.log4j.PatternLayout log4j.appender.requestAppender.layout.ConversionPattern=[%d] %p %m (%c)%n log4j.appender.cleanerAppender=org.apache.log4j.RollingFileAppender log4j.appender.cleanerAppender.File=${kafka.logs.dir}/log-cleaner.log -log4j.appender.cleanerAppender.MaxFileSize=1MB +log4j.appender.cleanerAppender.MaxFileSize=10MB log4j.appender.cleanerAppender.MaxBackupIndex=10 log4j.appender.cleanerAppender.layout=org.apache.log4j.PatternLayout log4j.appender.cleanerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n log4j.appender.controllerAppender=org.apache.log4j.RollingFileAppender log4j.appender.controllerAppender.File=${kafka.logs.dir}/controller.log -log4j.appender.controllerAppender.MaxFileSize=1MB +log4j.appender.controllerAppender.MaxFileSize=10MB log4j.appender.controllerAppender.MaxBackupIndex=10 log4j.appender.controllerAppender.layout=org.apache.log4j.PatternLayout log4j.appender.controllerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n log4j.appender.authorizerAppender=org.apache.log4j.RollingFileAppender log4j.appender.authorizerAppender.File=${kafka.logs.dir}/kafka-authorizer.log -log4j.appender.authorizerAppender.MaxFileSize=1MB +log4j.appender.authorizerAppender.MaxFileSize=10MB log4j.appender.authorizerAppender.MaxBackupIndex=10 log4j.appender.authorizerAppender.layout=org.apache.log4j.PatternLayout log4j.appender.authorizerAppender.layout.ConversionPattern=[%d] %p %m (%c)%n From c0f9c344bb94548aaeca41f0b9c4396164328344 Mon Sep 17 00:00:00 2001 From: reyesj2 <94730068+reyesj2@users.noreply.github.com> Date: Mon, 14 Apr 2025 08:13:27 -0500 Subject: [PATCH 3/3] set logstash log rollover when log size exceeds 1G Signed-off-by: reyesj2 <94730068+reyesj2@users.noreply.github.com> --- salt/logstash/etc/log4j2.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/salt/logstash/etc/log4j2.properties b/salt/logstash/etc/log4j2.properties index 739756061..750a6e316 100644 --- a/salt/logstash/etc/log4j2.properties +++ b/salt/logstash/etc/log4j2.properties @@ -23,6 +23,8 @@ appender.rolling.policies.type = Policies appender.rolling.policies.time.type = TimeBasedTriggeringPolicy appender.rolling.policies.time.interval = 1 appender.rolling.policies.time.modulate = true +appender.rolling.policies.size.type = SizeBasedTriggeringPolicy +appender.rolling.policies.size.size = 1GB appender.rolling.strategy.type = DefaultRolloverStrategy appender.rolling.strategy.action.type = Delete appender.rolling.strategy.action.basepath = /var/log/logstash