Zookeeper 서버의 log4j 업그레이드는 log4j2의 업그레이드 계획입니다(구성 호환성 문제 무시).

온라인 마크다운 편집기 참조: marxi.co/

Zookeeper 서버의 log4j 업그레이드는 log4j2의 업그레이드 계획입니다(구성 호환성 문제 무시).

현재 Zookeeper의 log4j 버전을 log4j2 버전으로 업그레이드할 수 있기를 희망하며, log4j2의 관련 보안 위험을 피해야 합니다. 이때 고려해야 할 사항은 다음의 jar 패키지를 설치하는 방법입니다. 완벽하게 log4j2의 버전? 다음 문제를 살펴보겠습니다. 현재 제가 사용하는 환경은 Windows 환경이지만 다른 운영체제에서도 유효합니다.

Zookeeper 서비스의 기본 디렉토리

윈도우 디렉토리

리눅스 디렉토리

해당 디렉토리 찾기

먼저 관련 lib 패키지 정보를 교체해야 하며 다음 그림과 같이 관련 사육사에서 관련 log4j 관련 jar를 마이그레이션해야 합니다.

윈도우 디렉토리

리눅스 디렉토리

다음 그림은 Linux 버전의 관련 jar 패키지 표시를 보여줍니다.

대체된 Jar 패키지 디렉토리는 다음과 같습니다.

  • log4j-1.2.17.jar log4j 자체 jar 패키지 서비스
  • slf4j-api-1.7.30.jar api slf4j의 공식 추상 인터페이스 패키지
  • slf4j-log4j12-1.7.30.jar는 주로 브리징 처리 패키지에 사용됩니다(slf4j 및 log4j를 브리징하기 위한 패키지)

위의 경우는 주로 log4j 및 slf4j jar 패키지에 대한 관련 처리 제어를 사용합니다. 참고용 버전입니다.

관련 청소 관련 jar 패키지 지침을 참조하십시오. rm / mv 지침을 사용하여 작업 처리를 수행할 수 있습니다.

rm -rf slf4j-api-1.7.x.jar log4j-1.2.x.jar slf4j-log4j12-1.7.X.jar
复制代码
mv slf4j-api-1.7.X.jar log4j-1.2.X.jar slf4j-log4j12-1.7.x.jar /backup  路径也可
复制代码

특정 버전 요구 사항에 주의하고 해당 인터페이스 매개변수를 동적이고 유연하게 조정합니다.

해당 Log4j2 리소스 패키지 다운로드

해당 slf4j 패키지 다운로드

wget --no-check-certificate https://repo1.maven.org/maven2/org/slf4j/slf4j-api/1.7.36/slf4j-api-1.7.36.jar
复制代码

현재 테스트 후 가장 안정적인 버전인 1.7.36으로 버전이 일시적으로 통합되었습니다.

해당 log4j2 패키지 다운로드

wget --no-check-certificate https://dlcdn.apache.org/logging/log4j/2.19.0/apache-log4j-2.19.0-bin.tar.gz
复制代码

log4j2 패키지 사육사에 해당하는 lib 패키지 디렉토리의 압축을 풉니다.

tar -zxvf apache-log4j-2.19.0-bin.tar.gz
复制代码

jar 패키지를 해당 lib로 전송한 후.

지정된 log4j2 패키지를 Zookeeper의 lib 패키지 디렉토리로 전송

mv log4j-core-2.19.0.jar log4j-1.2-api-2.19.0.jar log4j-slf4j-impl-2.19.0.jar log4j-api-2.19.0.jar /{ZK_HOME}/lib
复制代码

지정된 slf4j 패키지를 Zookeeper의 lib 패키지 디렉토리로 전송

mv slf4j-api-1.7.36.jar /{ZK_HOME}/lib
复制代码

결과 표시

Zookeeper 서비스를 다시 시작하여 정상적으로 시작되는지 확인하십시오.

통과 가능:

ps -ef | grep zookeeper
复制代码
서비스가 정상적으로 시작되는지 확인하려면

로드된 해당 jar 패키지 서비스가 이미 존재하는지 확인하십시오.

출력 디렉터리 파일이 없으면 정상입니다.

물론 정상적인 상황에서는 /bin/zookeeper.out 파일 정보를 확인하고 로그를 출력할 수도 있습니다.

참고문헌

참조 구성(zoo.cfg)

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
# the maximum number of client connections.
# increase this if you need to handle more clients
#maxClientCnxns=60
#
# Be sure to read the maintenance section of the 
# administrator guide before turning on autopurge.
#
# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance
#
# The number of snapshots to retain in dataDir
#autopurge.snapRetainCount=3
# Purge task interval in hours
# Set to "0" to disable auto purge feature
#autopurge.purgeInterval=1

## Metrics Providers
#
# https://prometheus.io Metrics Exporter
#metricsProvider.className=org.apache.zookeeper.metrics.prometheus.PrometheusMetricsProvider
#metricsProvider.httpPort=7000
#metricsProvider.exportJvmInfo=true

复制代码

Guess you like

Origin juejin.im/post/7158019677162045470