Zookeeper のサーバーの log4j アップグレードは、log4j2 のアップグレード計画です (構成の互換性の問題は無視されます)。

参照オンライン マークダウン エディター: marxi.co/

Zookeeper のサーバーの log4j アップグレードは、log4j2 のアップグレード計画です (構成の互換性の問題は無視されます)。

現時点では、Zookeeper の log4j のバージョンを log4j2 のバージョンにアップグレードして、log4j2 に関連するセキュリティ リスクを回避することが望まれます. 現時点で検討する必要があるのは、Zookeeper の jar パッケージのインストール方法です。シームレスにlog4j2のバージョン?次に問題を見てみましょう。現在、私が使用している環境はwindows環境ですが、それ以外のOSでも有効です。

Zookeeper サービスのベース ディレクトリ

Windows ディレクトリ

Linux ディレクトリ

対応するディレクトリを見つける

まず、関連する lib パッケージ情報を置き換える必要があります. 次の図に示すように、関連する ZooKeeper 内の関連する log4j 関連の jar を移行する必要があります。

Windows ディレクトリ

Linux ディレクトリ

次の図は、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 パッケージ Zookeeper に対応する 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

复制代码

おすすめ

転載: juejin.im/post/7158019677162045470