1.6. ログ収集および転送のアップグレード
ログ収集と転送の設定は、observability.openshift.io API グループの一部である新しい API で指定されるようになりました。
Vector は唯一のサポートされているコレクター実装です。
Red Hat OpenShift Logging Operator をアップグレードするには、次の手順に従います。
- 「Logging 6 でのクラスターロギングと転送の変更」に記載されている変更を実行して、ログ収集と転送の設定を更新します。
- Red Hat OpenShift Logging Operator を更新します。
1.6.1. Logging 6 でのクラスターロギングと転送の変更 リンクのコピーリンクがクリップボードにコピーされました!
ログ収集と転送の設定は、observability.openshift.io API グループの一部である新しい API で指定されるようになりました。次のセクションでは、古い API リソースとの違いを説明します。
Vector は唯一のサポートされているコレクター実装です。
1.6.1.1. 管理、リソース割り当て、ワークロードのスケジューリング リンクのコピーリンクがクリップボードにコピーされました!
管理状態、リソースの要求と制限、toleration、およびノード選択の設定が、新しい ClusterLogForwarder API の一部になりました。
Logging 5.x の設定
Logging 6 の設定
1.6.1.2. 入力仕様 リンクのコピーリンクがクリップボードにコピーされました!
入力仕様は、ClusterLogForwarder 仕様の任意略可能な部分です。管理者は、これらのソースを収集するために、事前定義済みの値である application、infrastructure、および audit を引き続き使用できます。
namespace とコンテナーの包含と除外が 1 つのフィールドに統合されました。
namespace とコンテナーの包含と除外を含む 5.x のアプリケーション入力
namespace とコンテナーの包含と除外を含む 6.x アプリケーション入力
"application"、"infrastructure"、"audit" は予約語であり、入力を定義するときに名前として使用することはできません。
Input Receiver への変更は次のとおりです。
- レシーバーレベルでのタイプの明示的な設定。
- ポート設定がレシーバーレベルに移動されました。
5.x の入力レシーバー
6.x の入力レシーバー
1.6.1.3. 出力の仕様 リンクのコピーリンクがクリップボードにコピーされました!
出力の仕様に対する主な変更点は次のとおりです。
- URL 設定が各出力タイプの仕様に移動されました。
- チューニングパラメーターが各出力タイプの仕様に移動されました。
- TLS 設定と認証の分離。
- TLS および認証用のキーとシークレット/config map の明示的な設定。
1.6.1.4. シークレットと TLS の設定 リンクのコピーリンクがクリップボードにコピーされました!
シークレットと TLS の設定は、出力ごとの認証設定と TLS 設定に分離されました。管理者が認識されたキーを使用してシークレットを定義するのではなく、仕様で明示的に定義する必要があります。TLS と認可設定をアップグレードするには、管理者は既存のシークレットを引き続き使用するために、以前に認識されたキーを理解する必要があります。このセクションの例では、Red Hat が管理する既存のログストレージソリューションに転送するために、ClusterLogForwarder のシークレットを設定する方法を示します。
サービスアカウントトークンと config map を含む Logging 6.x の出力設定
シークレットを使用した Logging 6.x の認証および TLS の設定
1.6.1.5. フィルターとパイプラインの設定 リンクのコピーリンクがクリップボードにコピーされました!
以前のリリースにおけるパイプラインの属性は、このリリースではすべてフィルターに変換されています。フィルターはそれぞれ filters 仕様で定義され、パイプラインによって参照されます。
5.x のフィルター
6.x のフィルターとパイプラインの仕様
Drop、Prune、および KubeAPIAudit フィルターは変更されていません。
1.6.1.6. 検証とステータス リンクのコピーリンクがクリップボードにコピーされました!
ほとんどの検証は、リソースの作成時または更新時に適用されます。これにより、即座にフィードバックが得られます。これは以前のリリースとは異なる点です。以前は、すべての検証が作成後に行われ、リソースのステータスの場所を確認する必要がありました。作成時または更新時に検証を実行できない場合は、引き続きリソースの作成後に検証が実行されます。
Operator がログコレクターをデプロイする前に、ClusterLogForwarder.observability.openshift.io リソースのインスタンスが次の条件を満たしている必要があります。
- リソースのステータス条件: Authorized、Valid、Ready
- 仕様の検証: Filters、Inputs、Outputs、Pipelines
これらすべてがステータス値 True に評価される必要があります。
1.6.2. Red Hat OpenShift Logging Operator の更新 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Logging Operator は、Logging 5.x から Logging 6.x への自動アップグレードを提供していません。これは、Logging を設定する際にさまざまな組み合わせが可能であるためです。ロギングを管理するためのさまざまな Operator を個別にインストールする必要があります。
Red Hat OpenShift Logging Operator の更新は、OpenShift Container Platform Web コンソールでサブスクリプションチャネルを変更するか、アンインストールすることで実行できます。次の手順では、OpenShift Container Platform Web コンソールでサブスクリプションチャネルを変更して Red Hat OpenShift Logging Operator を更新する方法を示します。
移行すると、圧縮されていないすべてのログが Vector によって再処理されます。再処理により、次の問題が発生する可能性があります。
- 移行中にログが重複する。
- ログを受信するログストレージ内のリクエストが多くなりすぎる。またはリクエストがレート制限に達する。
- コレクター内のすべての古いログを読み取って処理するため、ディスクとパフォーマンスに影響がある。
- Kube API への影響。
- 古いログがすべて処理されるまで、Vector によるメモリーと CPU の使用量がピークになる。ログのサイズがノードごとに数 GB に達する可能性がある。
前提条件
-
ログの収集および転送設定を
observability.openshift.ioAPI に更新した。 - 管理者権限がある。
- OpenShift Container Platform Web コンソールにアクセスでき、Administrator パースペクティブを表示している。
手順
次のコマンドを実行してサービスアカウントを作成します。
注記以前のログフォワーダーが namespace
openshift-loggingおよび名前付きのinstanceにデプロイされている場合、以前のバージョンの Operator によってlogcollectorサービスアカウントが作成されています。クラスターロギングを削除すると、このサービスアカウントが削除されます。したがって、新しいサービスアカウントを作成する必要があります。その他のサービスアカウントは保持され、Logging 6.x で使用できます。oc create sa logging-collector -n openshift-logging
$ oc create sa logging-collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要な RBAC 権限をサービスアカウントに付与します。
Red Hat LokiStack にログを書き込めるように、
ClusterRoleロールをサービスアカウントにバインドしします。oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z logging-collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z logging-collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、アプリケーションログを収集および転送する権限を割り当てます。
oc adm policy add-cluster-role-to-user collect-application-logs -z logging-collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user collect-application-logs -z logging-collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、監査ログを収集および転送する権限を割り当てます。
oc adm policy add-cluster-role-to-user collect-audit-logs -z logging-collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user collect-audit-logs -z logging-collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、インフラストラクチャーログを収集および転送する権限を割り当てます。
oc adm policy add-cluster-role-to-user collect-infrastructure-log -z logging-collector -n openshift-logging
$ oc adm policy add-cluster-role-to-user collect-infrastructure-log -z logging-collector -n openshift-loggingCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Vector チェックポイントを新しいパスに移動します。
Logging v5 の Vector チェックポイントは、パス
/var/lib/vector/input*/checkpoints.jsonにあります。これらのチェックポイントをパス/var/lib/vector/<namespace>/<clusterlogforwarder cr name>/*に移動します。次の例では、namespace としてopenshift-loggingを使用し、ClusterForwarder カスタムリソース名としてcollectorを使用します。ns="openshift-logging" cr="collector" for node in $(oc get nodes -o name); do oc debug $node -- chroot /host /bin/bash -c "mkdir -p /var/lib/vector/$ns/$cr" ; done for node in $(oc get nodes -o name); do oc debug $node -- chroot /host /bin/bash -c "chmod -R 755 /var/lib/vector/$ns" ; done for node in $(oc get nodes -o name); do echo "### $node ###"; oc debug $node -- chroot /host /bin/bash -c "cp -Ra /var/lib/vector/input* /var/lib/vector/$ns/$cr/"; done
$ ns="openshift-logging" $ cr="collector" $ for node in $(oc get nodes -o name); do oc debug $node -- chroot /host /bin/bash -c "mkdir -p /var/lib/vector/$ns/$cr" ; done $ for node in $(oc get nodes -o name); do oc debug $node -- chroot /host /bin/bash -c "chmod -R 755 /var/lib/vector/$ns" ; done $ for node in $(oc get nodes -o name); do echo "### $node ###"; oc debug $node -- chroot /host /bin/bash -c "cp -Ra /var/lib/vector/input* /var/lib/vector/$ns/$cr/"; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Container Platform Web コンソールを使用して、Red Hat OpenShift Logging Operator を更新します。
-
Operators
Installed Operators に移動します。 - openshift-logging プロジェクトを選択します。
- Red Hat OpenShift Logging Operator をクリックします。
- Subscription をクリックします。Subscription details セクションで、Update channel リンクをクリックします。
Change Subscription Update Channel ウィンドウで、更新チャネル stable-6.x を選択し、Save をクリックします。
cluster-logging.v6.y.zのバージョンをメモしておきます。重要必ず N+2 バージョン (N は現在のバージョン) に更新してください。たとえば、Logging 5.8 からアップグレードする場合は、更新チャネルとして
stable-6.0を選択します。2 バージョン以上新しいバージョンへの更新はサポートされていません。-
数秒待ってから、Operator
Installed Operator に移動して、Red Hat OpenShift Logging Operator のバージョンが最新の cluster-logging.v6.y.zバージョンと一致していることを確認します。 Operators
Installed Operators ページで、Status フィールドが Succeeded を報告するのを待機します。 既存の Logging v5 リソースは引き続き動作しますが、Operator によって管理されなくなります。新しいリソースを作成する準備ができたら、これらの管理されていないリソースを削除できます。
-
Operators