From dacf7e551d46ed5332d6c4604e66ff33cc76166b Mon Sep 17 00:00:00 2001 From: Ivan Nikolaev-Axenov Date: Wed, 18 Jun 2025 18:04:14 +0300 Subject: [PATCH] zookeeper removed, clearing-tester.jar updated --- .../clearing-tester/clearing-tester.jar | Bin 58104512 -> 58104423 bytes clr_test/docker-compose.yml | 40 +++--- clr_test/kafka/log4j2.yaml | 135 ++++++++++++++++++ 3 files changed, 154 insertions(+), 21 deletions(-) create mode 100644 clr_test/kafka/log4j2.yaml diff --git a/clr_test/clearing-all/clearing_testing_utils/clearing-tester/clearing-tester.jar b/clr_test/clearing-all/clearing_testing_utils/clearing-tester/clearing-tester.jar index 8a6d073779f22dc758543fda4e718bfbad2de5eb..43294faea19afb9949d2e7ee260c50ae6dbc3f1e 100644 GIT binary patch delta 17923 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 z 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 P5-NnKH;)AoC@B69>3!-2 diff --git a/clr_test/docker-compose.yml b/clr_test/docker-compose.yml index 0bf2d5063..c57d3df20 100644 --- a/clr_test/docker-compose.yml +++ b/clr_test/docker-compose.yml @@ -32,34 +32,32 @@ services: db-updater: condition: service_started kafka: - condition: service_started + condition: service_healthy volumes: - logs_volume:/opt/clearing/bin/log_artifacts - zookeeper: - image: mirror.gcr.io/confluentinc/cp-zookeeper - container_name: zookeeper - environment: - ZOOKEEPER_SERVER_ID: 1 - ZOOKEEPER_CLIENT_PORT: 2181 - ZOOKEEPER_TICK_TIME: 2000 - kafka: - image: mirror.gcr.io/confluentinc/cp-kafka + image: mirror.gcr.io/bitnami/kafka:4.0.0 container_name: kafka environment: KAFKA_BROKER_ID: 1 - KAFKA_AUTO_CREATE_TOPICS_ENABLE: "true" - KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 - KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 - KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 - KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 - KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 - KAFKA_LOG4J_LOGGERS: kafka=WARN,kafka.controller=WARN,kafka.log.LogCleaner=WARN,state.change.logger=WARN,kafka.producer.async.DefaultEventHandler=WARN - KAFKA_LOG4J_ROOT_LOGLEVEL: WARN - depends_on: - - zookeeper + KAFKA_CFG_NODE_ID: 1 + KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093 + KAFKA_ENABLE_KRAFT: yes + KAFKA_CFG_PROCESS_ROLES: broker,controller + KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER + KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093 + KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT + KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 + ALLOW_PLAINTEXT_LISTENER: yes + KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: true + volumes: + - ./kafka/log4j2.yaml:/opt/bitnami/kafka/config/log4j2.yaml + healthcheck: + test: kafka-topics.sh --list --bootstrap-server kafka:9092 || exit 1 + interval: 1s + timeout: 60s + retries: 100 sftp: build: sftp diff --git a/clr_test/kafka/log4j2.yaml b/clr_test/kafka/log4j2.yaml new file mode 100644 index 000000000..f4f8739b3 --- /dev/null +++ b/clr_test/kafka/log4j2.yaml @@ -0,0 +1,135 @@ +Configuration: + Properties: + Property: + # Fallback if the system property is not set + - name: "kafka.logs.dir" + value: "." + - name: "logPattern" + value: "[%d] %p %m (%c)%n" + + # Appenders configuration + # See: https://logging.apache.org/log4j/2.x/manual/appenders.html + Appenders: + Console: + name: STDOUT + PatternLayout: + pattern: "${logPattern}" + + RollingFile: + - name: KafkaAppender + fileName: "${sys:kafka.logs.dir}/server.log" + filePattern: "${sys:kafka.logs.dir}/server.log.%d{yyyy-MM-dd-HH}" + PatternLayout: + pattern: "${logPattern}" + TimeBasedTriggeringPolicy: + modulate: true + interval: 1 + # State Change appender + - name: StateChangeAppender + fileName: "${sys:kafka.logs.dir}/state-change.log" + filePattern: "${sys:kafka.logs.dir}/stage-change.log.%d{yyyy-MM-dd-HH}" + PatternLayout: + pattern: "${logPattern}" + TimeBasedTriggeringPolicy: + modulate: true + interval: 1 + # Request appender + - name: RequestAppender + fileName: "${sys:kafka.logs.dir}/kafka-request.log" + filePattern: "${sys:kafka.logs.dir}/kafka-request.log.%d{yyyy-MM-dd-HH}" + PatternLayout: + pattern: "${logPattern}" + TimeBasedTriggeringPolicy: + modulate: true + interval: 1 + # Cleaner appender + - name: CleanerAppender + fileName: "${sys:kafka.logs.dir}/log-cleaner.log" + filePattern: "${sys:kafka.logs.dir}/log-cleaner.log.%d{yyyy-MM-dd-HH}" + PatternLayout: + pattern: "${logPattern}" + TimeBasedTriggeringPolicy: + modulate: true + interval: 1 + # Controller appender + - name: ControllerAppender + fileName: "${sys:kafka.logs.dir}/controller.log" + filePattern: "${sys:kafka.logs.dir}/controller.log.%d{yyyy-MM-dd-HH}" + PatternLayout: + pattern: "${logPattern}" + TimeBasedTriggeringPolicy: + modulate: true + interval: 1 + # Authorizer appender + - name: AuthorizerAppender + fileName: "${sys:kafka.logs.dir}/kafka-authorizer.log" + filePattern: "${sys:kafka.logs.dir}/kafka-authorizer.log.%d{yyyy-MM-dd-HH}" + PatternLayout: + pattern: "${logPattern}" + TimeBasedTriggeringPolicy: + modulate: true + interval: 1 + + # Loggers configuration + # See: https://logging.apache.org/log4j/2.x/manual/configuration.html#configuring-loggers + Loggers: + Root: + level: WARN + AppenderRef: + - ref: STDOUT + - ref: KafkaAppender + Logger: + # Kafka logger + - name: kafka + level: WARN + # Kafka org.apache logger + - name: org.apache.kafka + level: WARN + # Kafka request logger + - name: kafka.request.logger + level: WARN + additivity: false + AppenderRef: + ref: RequestAppender + # Uncomment the lines below and change log4j.logger.kafka.network.RequestChannel$ to TRACE + # for additional output related to the handling of requests + # - name: kafka.network.Processor + # level: TRACE + # additivity: false + # AppenderRef: + # ref: RequestAppender + # - name: kafka.server.KafkaApis + # level: TRACE + # additivity: false + # AppenderRef: + # ref: RequestAppender + # Kafka network RequestChannel$ logger + - name: kafka.network.RequestChannel$ + level: WARN + additivity: false + AppenderRef: + ref: RequestAppender + # Controller logger + - name: org.apache.kafka.controller + level: WARN + additivity: false + AppenderRef: + ref: ControllerAppender + # LogCleaner logger + - name: kafka.log.LogCleaner + level: WARN + additivity: false + AppenderRef: + ref: CleanerAppender + # State change logger + - name: state.change.logger + level: WARN + additivity: false + AppenderRef: + ref: StateChangeAppender + # Authorizer logger + - name: kafka.authorizer.logger + level: WARN + additivity: false + AppenderRef: + ref: AuthorizerAppender