参照オンライン マークダウン エディター: 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 ファイルの情報を確認して、ログを印刷することもできます。
参考文献
- SLF4J は Log4j2 と完全に連携します
- Log4j2公式サイト
- Zookeeper の log4j を 2.16 にアップグレードする方法
- Zookeeper-Log4j は Log4j2 を置き換えます
- Zookeeper-Log4j は Log4j2 を置き換えます
参照構成 (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
复制代码