10. ES-7.8.0 の log4j バージョンをアップグレードする

バックグラウンド

log4jの下位バージョンに重大な抜け穴があるため、別のコンポーネントに付属するlog4jを指定されたバージョン(2.17.1)にアップグレードする必要があります.最近、ES-7.8.0のlog4jバージョンがアップグレードされたので、ここに記録します. .

手順

1. jar パッケージをアップグレードし、  Apache の公式 Web サイトにアクセスして、対応するバージョンをダウンロードします。

2. 最初にサーバー上の ES サービスを終了し、プロセス番号 -9 を強制終了します。

3. 次のように、find コマンドを使用して、ES インストール ディレクトリで log4j jar パッケージを検索します。

[xxw@123456 es]$ find ./elasticsearch-7.8.0/ -name 'log4j*.jar'
./elasticsearch-7.8.0/modules/x-pack-identity-provider/log4j-slf4j-impl-2.11.1.jar
./elasticsearch-7.8.0/modules/x-pack-security/log4j-slf4j-impl-2.11.1.jar
./elasticsearch-7.8.0/modules/x-pack-core/log4j-1.2-api-2.11.1.jar
./elasticsearch-7.8.0/lib/log4j-core-2.11.1.jar
./elasticsearch-7.8.0/lib/log4j-api-2.11.1.jar

4. これらの jar パッケージを一時バックアップ ディレクトリに移動します (これらのファイルは、事故が発生した場合にロールバックできます)。

5. それに応じて新しい jar パッケージを置き換えます。ここでは、次のように 2.11.1 をバージョン 2.17.1 に置き換えます。

cp log4j-slf4j-impl-2.17.1.jar ./elasticsearch-7.8.0/modules/x-pack-identity-provider/
cp log4j-slf4j-impl-2.17.1.jar ./elasticsearch-7.8.0/modules/x-pack-security/
cp log4j-1.2-api-2.17.1.jar ./elasticsearch-7.8.0/modules/x-pack-core/
cp log4j-core-2.17.1.jar ./elasticsearch-7.8.0/lib/
cp log4j-api-2.17.1.jar ./elasticsearch-7.8.0/lib/

6. 置換後、次のように find コマンドを使用して、置換が完了したかどうかを確認します。

[xxw@123456 es]$ find ./elasticsearch-7.8.0/ -name 'log4j*.jar'
./elasticsearch-7.8.0/modules/x-pack-identity-provider/log4j-slf4j-impl-2.17.1.jar
./elasticsearch-7.8.0/modules/x-pack-security/log4j-slf4j-impl-2.17.1.jar
./elasticsearch-7.8.0/modules/x-pack-core/log4j-1.2-api-2.17.1.jar
./elasticsearch-7.8.0/lib/log4j-core-2.17.1.jar
./elasticsearch-7.8.0/lib/log4j-api-2.17.1.jar

7. 最後に、ES サービスを再起動し、ES サービスが正常に動作しているかどうかを確認します。

ES を開始するには、次の 2 つの方法があります。

  • ウィンドウ開始: ./elasticsearch-7.8.0/bin/elasticsearch
  • バックグラウンド開始: ./elasticsearch-7.8.0/bin/elasticsearch -d

プロセス検証の表示: jps または ps -ef|grep elasticsearch

送信リクエストの検証: curl http://ホスト IP: 構成ポート番号/

[xxx@123456 es]$ curl http://10.129.40.16:9200/
{
  "name" : "node-1",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "iHwx-eIsTxinhm4sY-S7_A",
  "version" : {
    "number" : "7.8.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65",
    "build_date" : "2020-06-14T19:35:50.234439Z",
    "build_snapshot" : false,
    "lucene_version" : "8.5.1",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

発生した問題

1. 次のように、find コマンドを使用してエラーを報告します。

[xxw@123456 es]$ find ./elasticsearch-7.8.0/ -name "log4j*.jar"
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]

解決策: 複数のファイルを検索する場合は、二重引用符ではなく単一引用符を使用する必要があります。

2. 公式 Web サイトで必要な 2.17.1 jar パッケージが見つかりませんか?

ここに行く、/dist/logging/log4j のインデックス

おすすめ

転載: blog.csdn.net/qq_29119581/article/details/130313497