1.2. サポート対象バージョン

表1.1 Red Hat OpenShift Logging (RHOL) の OpenShift Container Platform バージョンのサポート

 4.74.84.9

RHOL 5.1

X

X

 

RHOL 5.2

X

X

X

RHOL 5.3

 

X

X

1.2.1. OpenShift Logging 5.1.0

このリリースには、RHSA-2021:2112 OpenShift Logging のバグ修正リリース 5.1.0 が含まれます。

1.2.1.1. 新機能および機能拡張

OpenShift Logging 5.1 は、以下で実行されている OpenShift Container Platform 4.7 以降をサポートするようになりました。

  • IBM Power Systems
  • IBM Z および LinuxONE

今回のリリースでは、以下のコンポーネントおよび概念に関連する拡張機能が追加されました。

  • クラスター管理者は、Kubernetes Pod ラベルを使用してアプリケーションからログデータを収集し、特定のログストアに送信します。ClusterLogForwarder カスタムリソース (CR) YAML ファイルに inputs[].application.selector.matchLabels 要素を設定してログデータを収集できます。namespace で収集したログデータをフィルターすることもできます。(LOG-883)
  • 今回のリリースにより、以下の新しい ElasticsearchNodeDiskWatermarkReached 警告が OpenShift Elasticsearch Operator (EO) に追加されました。

    • Elasticsearch Node Disk Low Watermark Reached (Elasticsearch ノードのディスクで低い基準値に達する)
    • Elasticsearch Node Disk High Watermark Reached (Elasticsearch ノードのディスクで高い基準値に達する)
    • Elasticsearch Node Disk Flood Watermark Reached (Elasticsearch ノードのディスクがいっぱいの基準値に達する)

    アラートは、今後 6 時間で Elasticsearch ノードが Disk Low WatermarkDisk High Watermark または Disk Flood Stage Watermark のしきい値に到達すると推測した場合に、過去の警告が複数適用されます。この警告期間があることで、ノードがディスクの基準しきい値に到達するまでに対応する時間ができます。警告メッセージには、トラブルシューティング手順へのリンクも含まれており、この問題の軽減に役立ちます。EO は、過去数時間のディスク領域データをリニアモデルに適用し、これらの警告を生成します。(LOG-1100)

  • JSON ログは、引用符で囲まれた文字列ではなく、JSON オブジェクトとして、Red Hat の管理対象 Elasticsearch クラスターまたはその他のサポート対象のサードパーティーのシステムのいずれかに、転送できるようになりました。さらに、Kibana 内の JSON ログメッセージから個別のフィールドをクエリーできるようになり、特定のログの検出性が向上します。(LOG-785, LOG-1148)

1.2.1.2. 非推奨および削除された機能

以前のリリースで利用可能であった一部の機能が非推奨になるか、または削除されました。

非推奨の機能は依然として OpenShift Container Logging に含まれており、引き続きサポートされますが、本製品の今後のリリースで削除されるため、新規デプロイメントでの使用は推奨されません。

1.2.1.2.1. Elasticsearch Curator が削除される

今回の更新では、Elasticsearch Curator が削除され、サポート対象外になりました。Elasticsearch Curator は、OpenShift Container Platform 4.4 以前でインデックスをキュレートして管理するのに便利でした。Elasticsearch Curator を使用する代わりに、ログの保持時間を設定します。

1.2.1.2.2. 従来の Fluentd および従来の syslog メソッドを使用したログの転送が非推奨に

OpenShift Container Platform 4.6 から現在まで、レガシー Fluentd およびレガシー syslog メソッドを使用したログの転送は非推奨になり、将来のリリースで削除される予定です。代わりに、標準の非レガシーメソッドを使用してください。

1.2.1.3. バグ修正

  • 今回の更新前は、ClusterLogForwarder CR では input[].selector 要素の作成後に表示されませんでした。今回の更新により、ClusterLogForwarder CR で セレクター を指定すると、表示されたままになります。このバグを修正するには LOG-883 で必要でした。これにより、Pod ラベルセレクターを使用してアプリケーションログデータを転送できるようになります。(LOG-1338)
  • 今回の更新前は、クラスターサービスバージョン (CSV) の更新により、OpenShift Elasticsearch Operator コンテナーのリソースおよび制限が誤って導入されました。特定の条件下では、これにより Elasticsearch Operator Pod を終了するメモリー不足の状態が生じました。今回の更新では、CSV リソースおよび Operator コンテナーの制限を削除して、この問題は修正されています。Operator は問題なくスケジュールされるようになりました。(LOG-1254)
  • 今回の更新前は、チェーンされた証明書を使用して Kafka にログを転送すると、以下のエラーメッセージで失敗していました。

    state=error: certificate verify failed (ローカル発行者証明書を取得できない)

    中間 CA によって署名された証明書を使用して Kafka ブローカーにログを転送できませんでした。これは、Fluentd Kafka プラグインが対応するシークレットの ca-bundle.crt エントリーに指定された単一の CA 証明書しか処理できないために生じました。今回の更新では、対応するシークレットの ca-bundle.crt エントリーで指定される複数の CA 証明書を処理できるように Fluentd Kafka プラグインを有効にすることで、この問題は修正されています。これで、中間 CA によって署名された証明書でログを Kafka ブローカーに転送できるようになりました。(LOG-1218, LOG-1216)

  • 今回の更新前は、負荷のある場合に、Elasticsearch はクラスターに問題がない場合でも HTTP 500 エラーを出して一部の要求に応答しました。要求の再試行は正常に実行されました。今回の更新では、一時的な HTTP 500 エラーが生じる場合に、インデックス管理の cron ジョブを回復性が強化されるように更新し、この問題が修正されています。更新されたインデックス管理の cron ジョブは、要求を複数回再試行してから失敗します。(LOG-1215)
  • 今回の更新前には、クラスターインストール設定で .proxy の値を指定せずに、インストールされたクラスターでグローバルプロキシーを設定している場合、Fluentd がログを Elasticsearch に転送できないというバグがありました。この問題を回避するには、プロキシーまたはクラスター設定で no_proxy.svc.cluster.local に設定して、内部トラフィックがスキップされるようにします。今回の更新では、プロキシー設定の問題が修正されています。OpenShift Container Platform クラスターのインストール後にグローバルプロキシーを設定する場合には、Fluentd はログを Elasticsearch に転送するようになりました。(LOG-1187, BZ#1915448)
  • 今回の更新以前は、ロギングコレクターは必要以上のソケット接続を作成しました。今回の更新により、ロギングコレクターは既存のソケット接続を再利用してログを送信します。(LOG-1186)
  • 今回の更新前は、クラスター管理者が Elasticsearch クラスターからストレージの追加または削除を試行する場合に、OpenShift Elasticsearch Operator (EO) は scheduledUpgrade: "True"shardAllocationEnabled: primaries と表示して Elasticsearch クラスターを誤ってアップグレードしてボリュームを変更しようとしていました。今回の更新により、EO は Elasticsearch クラスターのアップグレードを試行しなくなりました。

    EO ステータスには、以下の新規ステータス情報が表示され、無視された Elasticsearch ストレージへのサポート対象外の変更を加えようとしたタイミングを示します。

    • StorageStructureChangeIgnored。一時ストレージ構造を使用してから永続ストレージ構造を使用しようとするまでに変更を加えようとした場合。
    • StorageClassNameChangeIgnored。ストレージのクラス名を変更しようとした場合、
    • StorageSizeChangeIgnored。ストレージサイズを変更しようとした場合。
    注記

    ClusterLogging カスタムリソース (CR) を一時ストレージから永続ストレージに切り替えるように設定する場合に、EO は永続ボリューム要求 (PVC) を作成しますが、永続ボリューム (PV) は作成されません。StorageStructureChangeIgnored ステータスを削除するには、ClusterLogging CR への変更を元に戻し、永続ボリューム要求 (PVC) を削除する必要があります。

    (LOG-1351)

  • 今回の更新前は、全 Elasticsearch クラスターを再デプロイすると、データ以外のノードが 1 つ実行中となり、それ以外の全データノードがシャットダウンし、正常でない状態で停止しました。この問題は、新規証明書が原因で Elasticsearch Operator が Elasticsearch クラスターのデータ以外のノードがスケールダウンできなくなったため発生していました。今回の更新により、Elasticsearch Operator はすべてのデータおよびデータ以外のノードがスケールダウンして再びバックアップし、新規証明書が読み込まれるようになりました。Elasticsearch Operator は、新規証明書の読み込み後に新規ノードに到達できます。(LOG-1536)

1.2.2. OpenShift Logging 5.0.9

このリリースには、RHBA-2021:3705 - Bug Fix Advisory、OpenShift Logging Bug Fix Release (5.0.9) が含まれます。

1.2.2.1. バグ修正

このリリースには、次のバグ修正が含まれています。

  • 今回の更新以前は、一部のログエントリーで認識されない UTF-8 バイトが含まれていたため、Elasticsearch はメッセージを拒否し、バッファーリングされたペイロード全体をブロックしていました。この更新により、問題が解決されます。拒否されたペイロードは、無効なログエントリーを削除し、残りのエントリーを再送信します。(LOG-1574)
  • この更新の前は、ClusterLogging カスタムリソース (CR) を編集しても、totalLimitSize の値が Fluentd total_limit_size フィールドに適用されなかったため、バッファープラグインインスタンスのサイズが制限されていました。その結果、Fluentd はデフォルト値を適用しました。この更新により、CR は totalLimitSize の値を Fluentd total_limit_size フィールドに適用します。Fluentd は、total_limit_size フィールドの値またはデフォルト値のいずれか小さい方を使用します。(LOG-1736)

1.2.2.2. CVE

1.2.3. OpenShift Logging 5.0.8

このリリースには、RHBA-2021:3526 - Bug Fix Advisory、OpenShift Logging Bug Fix Release (5.0.8) が含まれます。

1.2.3.1. バグ修正

本リリースには、以下のバグ修正も含まれます。

  • リリースパイプラインスクリプトの問題により、olm.skipRange フィールドの値は 5.2.0 のまま変更されず、z ストリーム番号 0 が増加しても更新されませんでした。現在のリリースでは、リリース番号が変更されたときにこのフィールドの値を更新するようにパイプラインスクリプトが修正されています。(LOG-1741)

1.2.4. OpenShift Logging 5.0.7

このリリースには、RHBA-2021:2884 - Bug Fix Advisory、OpenShift Logging Bug Fix Release (5.0.7) が含まれます。

1.2.4.1. バグ修正

本リリースには、以下のバグ修正も含まれます。

  • LOG-1594 Vendored viaq/logerr の依存関係にライセンスファイルがない

1.2.4.2. CVE

1.2.5. OpenShift Logging 5.0.6

このリリースには、RHBA-2021:2655 - Bug Fix Advisory、OpenShift Logging Bug Fix Release (5.0.6) が含まれます。

1.2.5.1. バグ修正

本リリースには、以下のバグ修正も含まれます。

  • LOG-1451 - [1927249] fieldmanager.go:186] [発生すべきでない] [name="POLICY_MAPPING"] キーの managedFields… の重複エントリー​を更新できない (LOG-1451)
  • LOG-1537: ES クラスターにデータ以外のノードが含まれる場合に完全なクラスター証明書の再デプロイが失敗する (LOG-1537)
  • LOG-1430 - eventrouter で "Observed a panic: &runtime.TypeAssertionError" が発生する (LOG-1430)
  • LOG-1461: ジョブログにエラーがある場合でも、インデックス管理ジョブのステータスが常に Completed になる。(LOG-1461)
  • LOG-1459 - Operator に非接続アノテーションがない (LOG-1459)
  • LOG-1572 - Bug 1981579: 全ログを収集する組み込みアプリケーションの動作を修正 (LOG-1572)

1.2.5.2. CVE

1.2.6. OpenShift Logging 5.0.5

このリリースには、RHSA-2021:2374 - Security Advisory、Moderate: Openshift Logging Bug Fix Release (5.0.5) が含まれます。

1.2.6.1. セキュリティー修正

  • gogo/protobuf: plugin/unmarshal/unmarshal.go には特定のインデックス検証がありません。(CVE-2021-3121)
  • glib: 64 ビットから 32 ビットに暗黙的にキャストされることが原因で、64 ビットプラットフォームにおける g_bytes_new 関数で整数オーバーフローが発生します (CVE-2021-27219)。

以下の問題は、上記の CVE に関連しています。

  • BZ#1921650 gogo/protobuf: plugin/unmarshal/unmarshal.go には特定のインデックス検証がない (BZ#1921650)
  • LOG-1361 CVE-2021-3121 elasticsearch-operator-container: gogo/protobuf: plugin/unmarshal/unmarshal.go には特定のインデックス検証がない [openshift-logging-5](LOG-1361)
  • LOG-1362 CVE-2021-3121 elasticsearch-proxy-container: gogo/protobuf: plugin/unmarshal/unmarshal.go には特定のインデックス検証がない [openshift-logging-5](LOG-1362)
  • LOG-1363 CVE-2021-3121 logging-eventrouter-container: gogo/protobuf: plugin/unmarshal/unmarshal.go には特定のインデックス検証がない [openshift-logging-5](LOG-1363)

1.2.7. OpenShift Logging 5.0.4

このリリースには、RHSA-2021:2136 - Security Advisory、Moderate: Openshift Logging security and bugs update (5.0.4) が含まれます。

1.2.7.1. セキュリティー修正

  • gogo/protobuf: plugin/unmarshal/unmarshal.go には特定のインデックス検証がありません。(CVE-2021-3121)

以下の Jira の問題には、上記の CVE が含まれます。

  • LOG-1364 CVE-2021-3121 cluster-logging-operator-container: gogo/protobuf: plugin/unmarshal/unmarshal.go lacks certain index validation [openshift-logging-5].(LOG-1364)

1.2.7.2. バグ修正

本リリースには、以下のバグ修正も含まれます。

  • LOG-1328 ポートの 5.0.z に対する修正 ( BZ-1945168)(LOG-1328)

1.2.8. OpenShift Logging 5.0.3

このリリースには、RHSA-2021:1515 - Security Advisory、Important OpenShift Logging Bug Fix Release (5.0.3) が含まれます。

1.2.8.1. セキュリティー修正

  • jackson-databind: jackson-databind: slf4j-ext クラスでの任意のコード実行 (CVE-2018-14718)
  • jackson-databind: blaze-ds-opt および blaze-ds-core クラスでの任意のコード実行 (CVE-2018-14719)
  • jackson-databind: 一部の JDK クラスでの exfiltration/XXE (CVE-2018-14720)
  • jackson-databind: axis2-jaxws クラスでの SSRF (server-side request forgery) CVE-2018-14721)
  • jackson-databind: axis2-transport-jms クラスでの不適切なポリモーフィックなデシリアライズ (CVE-2018-19360)
  • jackson-databind: openjpa クラスでの適切でないポリモーフィックなデシリアライズ (CVE-2018-19361)
  • jackson-databind: jboss-common-core クラスでの適切でないポリモーフィックなデシリアライズ (CVE-2018-19362)
  • jackson-databind: リモートコード実行につながるデフォルトのタイプミス (CVE-2019-14379)
  • jackson-databind: com.pastdev.httpcomponents.configuration.JndiConfiguration のシリアル化ガジェット (CVE-2020-24750)
  • jackson-databind: org.apache.commons.dbcp2.datasources.PerUserPoolDataSource に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-35490)
  • jackson-databind: org.apache.commons.dbcp2.datasources.SharedPoolDataSource(CVE-2020-35491) に関連するシリアル化ガジェットと入力間の対話を誤操作 (CVE-2020-35491)
  • jackson-databind: com.oracle.wls.shaded.org.apache.xalan.lib.sql.JNDIConnectionPool に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-35728)
  • jackson-databind: oadd.org.apache.commons.dbcp.cpdsadapter.DriverAdapterCPDS に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-36179)。
  • jackson-databind: org.apache.commons.dbcp2.cpdsadapter.DriverAdapterCPDS に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-36180)
  • jackson-databind: org.apache.tomcat.dbcp.dbcp.dbcp.cpdsadapter.DriverAdapterCPDS に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-36181)
  • jackson-databind: org.apache.tomcat.dbcp.dbcp2.cpdsadapter.DriverAdapterCPDS に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-36182)
  • jackson-databind: org.docx4j.org.apache.xalan.lib.sql.JNDIConnectionPool に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-36183)
  • jackson-databind: org.apache.tomcat.dbcp.dbcp2.datasources.PerUserPoolDataSource に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-36184)
  • jackson-databind: org.apache.tomcat.dbcp.dbcp2.datasources.SharedPoolDataSource に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-36185)
  • jackson-databind: org.apache.tomcat.dbcp.dbcp.datasources.PerUserPoolDataSource に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-36186)
  • jackson-databind: org.apache.tomcat.dbcp.dbcp.datasources.SharedPoolDataSource に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-36187)
  • jackson-databind: com.newrelic.agent.deps.ch.qos.logback.core.db.JNDIConnectionSource に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-36188)
  • jackson-databind: com.newrelic.agent.deps.ch.qos.logback.core.db.DriverManagerConnectionSource に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2020-36189)
  • jackson-databind: javax.swing に関連するシリアル化ガジェットと入力間の対話の誤操作 (CVE-2021-20190)
  • golang: ReverseProxy を含む特定の net/http サーバーでのデータ競合が DoS 引き起こす可能性がある (CVE-2020-15586)
  • golang: ReadUvarint および ReadVarint が 無効な入力から無制限のバイト数を読み取る可能性がある (CVE-2020-16845)
  • OpenJDK: JAR 署名が完了されない場合にアルゴリズム (ライブラリー、8249906) が無効になる (CVE-2021-2163)

以下の Jira の問題には、上記の CVE が含まれます。

  • LOG-1234 CVE-2020-15586 CVE-2020-16845 openshift-eventrouter: 各種の不具合 [openshift-4](LOG-1234)
  • LOG-1243 CVE-2018-14718 CVE-2018-14719 CVE-2018-14720 CVE-2018-14721 CVE-2018-19360 CVE-2018-19361 CVE-2018-19362 CVE-2019-14379 CVE-2020-35490 CVE-2020-35491 CVE-2020-35728…​ logging-elasticsearch6-container: 各種の不具合 [openshift-logging-5.0](LOG-1243)

1.2.8.2. バグ修正

本リリースには、以下のバグ修正も含まれます。

  • LOG-1224 リリース 5.0 - ClusterLogForwarder namespace 固有のログ転送は予想通りに機能しない。(LOG-1224)
  • LOG-1232 5.0 - Bug 1859004 - イベントルーターがイベントログを収集しないことがあります。(LOG-1232)
  • LOG-1299 Release 5.0 - チェーンされた証明書を使用して Kafka にログを転送すると、state=error: certificate verify failed (unable to get local issuer certificate) というエラーを出して失敗します。(LOG-1299)

1.2.9. OpenShift Logging 5.0.2

このリリースには、RHBA-2021:1167 - Bug Fix Advisory、OpenShift Logging Bug Fix Release (5.0.2) が含まれます。

1.2.9.1. バグ修正

  • クラスターインストール設定で .proxy を設定しておらず、その後にインストールされたクラスターでグローバルプロキシーを設定している場合、Fluentd がログを Elasticsearch に転送できないというバグがありました。この問題を回避するには、プロキシー/クラスター設定で no_proxy.svc.cluster.local に設定して、内部トラフィックがスキップされるようにします。現行リリースでは、プロキシー設定の問題が修正されています。OpenShift クラスターのインストール後にグローバルプロキシーを設定する場合、Fluentd はログを Elasticsearch に転送するようになりました。(LOG-1187)
  • 以前のバージョンでは、チェーンされた証明書を使用して Kafka にログを転送すると、state=error: certificate verify failed (ローカル発行者の証明書の取得できない) というエラーを出して失敗しました。 中間 CA によって署名された証明書を使用して Kafka ブローカーにログを転送できませんでした。これは、fluentd Kafka プラグインが対応するシークレットの ca-bundle.crt エントリーに指定された単一の CA 証明書しか処理できないために生じました。現行リリースでは、対応するシークレットの ca-bundle.crt エントリーで指定される複数の CA 証明書を処理できるように fluentd Kafka プラグインを有効にすることで、この問題は修正されています。これで、中間 CA によって署名された証明書でログを Kafka ブローカーに転送できるようになりました。(LOG-1216, LOG-1218)
  • 以前のバージョンでは、クラスターサービスバージョン (CSV) の更新により、OpenShift Elasticsearch Operator コンテナーのリソースおよび制限が誤って導入されました。特定の条件下では、これにより Elasticsearch Operator Pod を終了するメモリー不足の状態が生じました。現行リリースでは、CSV リソースおよび Operator コンテナーの制限を削除することで、この問題は修正されています。Operator は問題なくスケジュールされるようになりました。(LOG-1254)

1.2.10. OpenShift Logging 5.0.1

このリリースには、RHBA-2021:0963 - Bug Fix Advisory、OpenShift Logging Bug Fix Release (5.0.1) が含まれます。

1.2.10.1. バグ修正

  • 以前のバージョンでは、レガシーログ転送を有効にしている場合に、ログは管理対象ストレージに送信されませんでした。この問題は、生成されるログ転送設定でログ転送またはレガシーログ転送のいずれかの間の不適切に選択が行われるために発生しました。現在のリリースではこの問題は修正されています。ClusterLogging CR が logstore を定義する場合、ログは管理対象ストレージに送信されます。さらに、レガシーログ転送を有効にすると、管理対象ストレージが有効化されているかどうかにかかわらず、ログはレガシーログ転送に送信されます。(LOG-1172)
  • 以前のバージョンでは、負荷のある場合に、Elasticsearch はクラスターに問題がない場合でも HTTP 500 エラーを出して一部の要求に応答しました。要求の再試行は正常に実行されました。本リリースでは、一時的な HTTP 500 エラーが生じる場合に cron ジョブを回復性を強化するために更新し、この問題が修正されています。今回のリリースより、障害が発生する前に要求を複数回再試行するようになりました。(LOG-1215)

1.2.11. OpenShift Logging 5.0.0

このリリースには、RHBA-2021:0652 - Bug Fix Advisory、Errata Advisory for Openshift Logging 5.0.0 が含まれます。

1.2.11.1. 新機能および機能拡張

今回のリリースでは、以下の概念に関連する拡張機能が追加されました。

クラスターロギングが Red Hat OpenShift Logging に

今回のリリースにより、Cluster Logging は Red Hat OpenShift Logging 5.0 になりました。

インデックスあたり最大 5 つのプライマリーシャード

今回のリリースにより、OpenShift Elasticsearch Operator (EO) は、クラスターに定義されるデータノードの数に応じて 1 から 5 までのインデックスのプライマリーシャードの数を設定するようになりました。

以前のバージョンでは、EO はインデックスのシャード数をデータノードの数に設定していました。Elasticsearch のインデックスが数多くのレプリカで設定されている場合、それはインデックスごとにではなく、プライマリーシャードごとに多数のレプリカを作成しました。そのため、インデックスがシャード化されると、多数のレプリカシャードがクラスターに存在するため、クラスターでの複製および同期に多くのオーバーヘッドが発生しました。

OpenShift Elasticsearch Operator 名および成熟度レベルの更新

今回のリリースにより、OpenShift Elasticsearch Operator の表示名および Operator の成熟度レベルが更新されました。OpenShift Elasticsearch Operator の新規の表示名および明確化された特定の使用法についての更新が Operator Hub で行われています。

OpenShift Elasticsearch Operator の CSV の成功についてのレポート

今回のリリースにより、レポートメトリクスが追加され、OpenShift Elasticsearch Operator の ClusterServiceVersion (CSV) オブジェクトのインストールまたはアップグレードが正常に行われたことが示唆されるようになりました。以前のバージョンでは、CSV のインストールまたはアップグレードに失敗した場合に、アラートを判別したり、アラートを生成したりする方法はありませんでした。アラートは OpenShift Elasticsearch Operator の一部として提供されるようになりました。

Elasticsearch Pod 証明書のパーミッション関連の警告の縮小

以前のバージョンでは、Elasticsearch Pod の起動時に、証明書パーミッションに関する警告が生成され、クラスターのトラブルシューティングについて一部のユーザーに誤解を与えました。現在のリリースでは、これらのパーミッション関連の問題が修正され、これらの種類の通知が縮小されました。

今回のリリースにより、Elasticsearch クラスターが生成するアラートから、そのアラートの説明およびトラブルシューティング手順のページへのリンクが追加されました。

削除ジョブの新規の接続タイムアウト

現在のリリースでは、削除ジョブの接続タイムアウトが追加されました。これは、 Pod がインデックスを削除するために Elasticsearch に対してクエリーを実行する際に Pod がハングすることを防ぐのに役立ちます。タイムアウトが経過する前に、基礎となる curl 呼び出しが接続できない場合、タイムアウトは呼び出しを終了します。

ロールオーバーインデックステンプレートへの更新を最小限に抑える

今回の拡張機能により、OpenShift Elasticsearch Operator は、フィールド値が異なる場合にのみロールオーバーインデックステンプレートを更新するようになりました。インデックステンプレートはインデックスよりも優先度が高くなります。テンプレートが更新されると、クラスターはそれらをインデックスシャードに分散し、パフォーマンスに影響が及びます。Elasticsearch クラスターの操作を最小限にするために、Operator は、プライマリーシャードまたはレプリカシャードの数が現在設定されている内容から変更される場合にのみテンプレートを更新します。

1.2.11.2. テクノロジープレビューの機能

現在、今回のリリースに含まれる機能にはテクノロジープレビューのものがあります。これらの実験的機能は、実稼働環境での使用を目的としていません。これらの機能に関しては、Red Hat カスタマーポータルの以下のサポート範囲を参照してください。

テクノロジープレビュー機能のサポート範囲

以下の表では、機能は以下のステータスでマークされています。

  • TP: テクノロジープレビュー
  • GA: 一般公開機能
  • -: 利用不可の機能

表1.2 テクノロジープレビュートラッカー

機能OCP 4.5OCP 4.6Logging 5.0

ログ転送

TP

GA

GA

1.2.11.3. 非推奨および削除された機能

以前のリリースで利用可能であった一部の機能が非推奨になるか、または削除されました。

非推奨の機能は依然として OpenShift Container Logging に含まれており、引き続きサポートされますが、本製品の今後のリリースで削除されるため、新規デプロイメントでの使用は推奨されません。

1.2.11.3.1. ElasticsearchCurator は非推奨になりました

Elasticsearch Curator は非推奨になり、将来のリリースで削除される予定です。Elasticsearch Curator は、OpenShift Container Platform 4.4 以前でインデックスをキュレートして管理するのに便利でした。Elasticsearch Curator を使用する代わりに、ログの保持時間を設定します。

1.2.11.3.2. 従来の Fluentd および従来の syslog メソッドを使用したログの転送が非推奨に

OpenShift Container Platform 4.6 から現在まで、レガシー Fluentd およびレガシー syslog メソッドを使用したログの転送は非推奨になり、将来のリリースで削除される予定です。代わりに、標準の非レガシーメソッドを使用してください。

1.2.11.4. バグ修正

  • 以前のバージョンでは、Elasticsearch はヘッダーがデフォルトの最大ヘッダーサイズの 8 KB を超える HTTP 要求を拒否していました。最大ヘッダーサイズは 128 KB となり、Elasticsearch は最大ヘッダーサイズを超える HTTP 要求を拒否しなくなりました。(BZ#1845293)
  • 以前のバージョンでは、ソフトウェアのバグにより Elasticsearch カスタムリソース (CR) のノードのステータスが正しく更新されないために、ノードは Pending ステータスから回復しませんでした。現在のリリースでは、この問題は修正され、ノードはステータスが Pending の場合に回復できるようになりました。(BZ#1887357)
  • 以前のバージョンでは、Cluster Logging Operator (CLO) は clusterlogging CR の Elasticsearch ノードの数を 3 つのノードにスケールダウンする場合、一意の ID を持つ以前に作成されたノードを省略しました。OpenShift Elasticsearch Operator は、一意の ID を持つノードを削除することを防ぐ予防策があったために更新を拒否しました。CLO がノード数をスケールダウンし、Elasticsearch CR を更新すると、CLO は一意の ID のあるノードを省略せず、それらのノードにカウント 0 のマークを付けます。その結果、ユーザーは clusterlogging CR を使用してクラスターを 3 つのノードにスケールダウンできます。(BZ#1879150)
注記

OpenShift Logging 5.0 以降では、Cluster Logging Operator は Red Hat OpenShift Logging Operator と呼ばれます。

  • 以前のバージョンでは、ClusterLogForwarder でシークレットが誤って設定されていると、Fluentd コレクター Pod はクラッシュループに陥りました。現在のリリースではこの問題は修正されています。ClusterLogForwarder はシークレットを検証し、ステータスフィールドにエラーを報告するようになりました。結果として、Fluentd コレクター Pod がクラッシュしなくなりました。(BZ#1888943)
  • 以前のバージョンでは、clusterlogging インスタンスの Kibana リソース設定を resource{} に更新した場合、生成される nil マップはパニックを発生させ、OpenShift Elasticsearch Operator のステータスを CrashLoopBackOff に変更しました。現在のリリースでは、マップの初期化によりこの問題は修正されています。(BZ#1889573)
  • 以前のバージョンでは、ClusterLogForwarder に同じシークレットを使用する複数の出力がある場合に、fluentd コレクター Pod はクラッシュループに陥りました。現在のリリースではこの問題は修正されています。複数の出力がシークレットを共有できるようになりました。(BZ#1890072)
  • 以前のバージョンでは、Kibana ルートを削除した場合、Cluster Logging Operator (CLO) はこれを復旧したり、再作成したりすることができませんでした。今回のリリースより、CLO はルートを監視し、ルートを削除すると、OpenShift Elasticsearch Operator はこれを調整するか、または再作成できるようになりました。(BZ#1890825)
  • 以前のバージョンでは、Cluster Logging Operator (CLO) は、Red Hat が提供する Elastic Resource Definition (CRD) に依存する Elasticsearch リソースの調整を試行しました。不明な種類の一覧表示を試みると、CLO はその調整ループを終了しました。これは、CLO がそれらが定義されているかに関係なく、管理対象のリソースすべての調整を試行するために生じました。現在のリリースではこの問題は修正されています。CLO は、ユーザーが管理対象ストレージを定義する場合に OpenShift Elasticsearch Operator によって提供されるタイプのみを調整します。これにより、ユーザーは CLO をデプロイしてクラスターロギングのコレクターのみのデプロイメントを作成できます。(BZ#1891738)
  • 以前のバージョンでは、RFC 3164 の LF GA syslog 実装により、リモート syslog に送信されるログはレガシーの動作と互換性がありませんでした。現在のリリースではこの問題は修正されています。AddLogSource はログのソースの詳細を message フィールドに追加します。リモート syslog に送信されるログは、レガシー動作と互換性を持つようになりました。(BZ#1891886)
  • 以前のバージョンでは、Elasticsearch のロールオーバー Pod は resource_already_exists_exception エラーで失敗しました。Elasticsearch ロールオーバー API 内では、次のインデックスが作成されると *-write エイリアスがこれを参照するように更新されませんでした。その結果、次にロールオーバー API エンドポイントが特定のインデックスについてトリガーされると、リソースがすでに存在することを示すエラーを受信しました。

    現在のリリースではこの問題は修正されています。ロールオーバーが indexmanagement cronjob で生じる差異に、新規インデックスが作成されていると、エイリアスが新規インデックスをポイントしていることを検証するようになりました。この動作により、エラーが発生しないようになります。クラスターがすでにこのエラーを受信している場合、cronjob は問題を修正し、後続の実行が予想通りに機能するようにします。今回のリリースより、ロールオーバーを実行しても例外が生成されなくなりました。(BZ#1893992)

  • 以前のバージョンでは、Fluent はロギングスタックが機能しているように見える場合でもログの送信を停止しました。エンドポイントがバックアップされていても、ログは長期間エンドポイントに送られませんでした。これは、最大バックオフ時間が長過ぎエンドポイントが停止した場合に生じました。現在のリリースでは、最大バックオフ時間を引下げ、ログをより早く送ることができるようにすることでこの問題が解決されています。(BZ#1894634)
  • 以前のバージョンでは、OpenShift Elasticsearch ノードのストレージサイズを省略すると、Elasticsearch Operator コードでパニックが発生していました。このパニックは以下のようにログに出力されました。Observed a panic: "invalid memory address or nil pointer dereference" パニックは、ストレージサイズが必須フィールドにもかかわらずソフトウェアがこれをチェックしないために発生しました。現在のリリースでは、この問題は修正され、ストレージサイズが省略されてもパニックが発生しなくなりました。代わりに、ストレージはデフォルトで一時ストレージに設定され、ユーザーのログメッセージを生成します。(BZ#1899589)
  • 以前のバージョンでは、elasticsearch-rollover および elasticsearch-delete Pod は、Invalid JSON: または ValueError: No JSON object could be decoded のエラー状態のままになりました。この例外は、無効な JSON 入力の例外ハンドラーがないために発生しました。現在のリリースでは、無効な JSON 入力のハンドラーを提供することで、この問題は修正されています。その結果、ハンドラーは例外トレースバックではなくエラーメッセージを出力し、elasticsearch-rollover および elasticsearch-delete ジョブはそれらのエラー状態を維持しなくなりました。(BZ#1899905)
  • 以前のバージョンでは、Fluentd をスタンドアロンとしてデプロイする際に、replicas の値が 0 の場合でも Kibana Pod が作成されました。これは、Elasticsearch ノードがない場合でも Kibana はデフォルトで 1 Pod に設定されていたために生じました。現在のリリースでこの問題は修正されています。Kibana は、1 つ以上の Elasticsearch ノードがある場合にのみデフォルトで 1 に設定されるようになりました。(BZ#1901424)
  • 以前のバージョンでは、シークレットを削除すると再作成されませんでした。証明書は Operator のローカルディスクに存在していても、それらは変更されていないために書き換えられませんでした。つまり、証明書は変更された場合にのみ作成されました。現在のリリースではこの問題は修正されています。証明書が変更された場合や見つからない場合は、シークレットが再作成されるようになりました。マスター証明書を削除すると、それらは置き換えられます。(BZ#1901869)
  • 以前のバージョンでは、クラスターに同じ名前を持つ複数のカスタムリソースがある場合、API グループで完全修飾されていない場合にリソースはアルファベット順に選択されました。その結果、OpenShift Elastic Elasticsearch Operator と共に Red Hat の OpenShift Elasticsearch Operator をインストールしている場合、must-gather レポートを使用してデータを収集すると失敗が生じました。現在のリリースでは、must-gather がクラスターのカスタムリソースについての情報を収集する際に完全な API グループを使用できるようにすることで、この問題は修正されています。(BZ#1897731)
  • 証明書の生成に関連する問題に対応する以前のバグ修正により、エラーが生じました。証明書の読み取りを試みると、証明書が不足していると認識されるためにこれが再生成されました。これにより、OpenShift Elasticsearch Operator がトリガーされ、Elasticsearch クラスターでのローリングアップグレードが実行され、一致しない証明書が生成されることがありました。このバグは、Operator が証明書を作業ディレクトリーに誤って書き込むことによって生じました。現在のリリースではこの問題は修正されています。Operator は、常に同じ作業ディレクトリーに対して証明書の読み取りおよび書き込みを行い、証明書は必要に応じて証明書を再生成されるようになりました。(BZ#1905910)
  • 以前のバージョンでは、Elasticsearch バージョンを取得するためにルートエンドポイントに対してクエリーを実行すると、403 応答が受信されました。403 応答は、以前のリリースでこのエンドポイントを使用していたサービスを中断しました。このエラーは、管理者以外のユーザーにルートエンドポイントのクエリーおよび Elasticsearch バージョンの取得に必要な monitor パーミッションがないために生じました。管理者以外のユーザーは、デプロイされた Elasticsearch のバージョンのルートエンドポイントをクエリーできるようになりました。(BZ#1906765)
  • 以前のバージョンでは、一部のバルク挿入の状況で、Elasticsearch プロキシーは fluentd と Elasticsearch 間の接続をタイムアウトしました。その結果、fluentd はメッセージの配信に失敗し、Server returned nothing (no headers, no data) エラーを返しました。現在のリリースではこの問題は修正され、Elasticsearch プロキシーのデフォルトの HTTP の読み取りおよび書き込みタイムアウトを 5 秒から 1 分に引き上げられました。また、フィールドの HTTP タイムアウトを制御するための Elasticsearch プロキシーのコマンドラインオプションも提供されます。(BZ#1908707)
  • 以前のバージョンでは、{ProductName}/Elasticsearch ダッシュボードは OpenShift Container Platform モニターリングダッシュボードから欠落していました。これは、ダッシュボード設定リソースが異なる namespace の所有者を参照し、OpenShift Container Platform がそのリソースのガべージコレクションを行うために生じました。所有者の参照は OpenShift Elasticsearch Operator の調整機能 (reconciler) の設定から削除され、ロギングダッシュボードがコンソールに表示されるようになりました。(BZ#1910259)
  • 以前のバージョンでは、環境変数を使用して Kibana 設定ファイルの値を置き換えるコードは、コメント化された行を考慮しませんでした。これにより、ユーザーは server.maxPayloadBytes のデフォルト値を上書きすることができませんでした。現在のリリースでは、server.maxPayloadByteswithin のデフォルト値のコメントを解除でき、この問題は修正されています。ユーザーは、説明されている通りに環境変数を使用して値を上書きできるようになりました。(BZ#1918876)
  • 以前のバージョンでは、移行に失敗したインデックスを削除する命令を非表示にしないように Kibana ログレベルが引き上げられました。これにより、Kibana ユーザーのメールアドレスおよび OAuth トークンが含まれる INFO レベルの GET 要求も表示されました。現在のリリースでは、これらのフィールドをマスクすることでこの問題が修正され、Kibana ログにそれが表示されなくなりました。(BZ#1925081)

1.2.11.5. 既知の問題

  • ruby-kafka-1.1.0 および fluent-plugin-kafka-0.13.1 gem を持つ Fluentd Pod には Apache Kafka バージョン 0.10.1.0 との互換性はありません。

    そのため、Kafka へのログ転送が error_class=Kafka::DeliveryFailed error="Failed to send messages to flux-openshift-v4/1" のメッセージを出して失敗します。

    ruby-kafka-0.7 gem は Kafka 0.11 のネイティブサポートを優先して Kafka 0.10 のサポートを中断しました。ruby-kafka-1.0.0 gem は Kafka 2.3 および 2.4 のサポートを追加しました。現行バージョンの OpenShift Logging は Kafka バージョン 2.4.1 をテストし、これをサポートしています。

    この問題を回避するには、サポートされるバージョンの Apache Kafka にアップグレードします。

    (BZ#1907370)