1.6. ログ収集および転送のアップグレード


ログ収集と転送の設定は、observability.openshift.io API グループの一部である新しい API で指定されるようになりました。

注記

Vector は唯一のサポートされているコレクター実装です。

Red Hat OpenShift Logging Operator をアップグレードするには、次の手順に従います。

  1. 「Logging 6 でのクラスターロギングと転送の変更」に記載されている変更を実行して、ログ収集と転送の設定を更新します。
  2. 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 の設定

apiVersion: "logging.openshift.io/v1"
kind: "ClusterLogging"
spec:
  managementState: "Managed"
  collection:
    resources:
      limits: {}
      requests: {}
    nodeSelector: {}
    tolerations: {}
Copy to Clipboard Toggle word wrap

Logging 6 の設定

apiVersion: "observability.openshift.io/v1"
kind: ClusterLogForwarder
spec:
  managementState: Managed
  collector:
    resources:
      limits: {}
      requests: {}
    nodeSelector: {}
    tolerations: {}
Copy to Clipboard Toggle word wrap

1.6.1.2. 入力仕様

入力仕様は、ClusterLogForwarder 仕様の任意略可能な部分です。管理者は、これらのソースを収集するために、事前定義済みの値である applicationinfrastructure、および audit を引き続き使用できます。

namespace とコンテナーの包含と除外が 1 つのフィールドに統合されました。

namespace とコンテナーの包含と除外を含む 5.x のアプリケーション入力

apiVersion: "logging.openshift.io/v1"
kind: ClusterLogForwarder
spec:
  inputs:
   - name: application-logs
     type: application
     application:
       namespaces:
       - foo
       - bar
       includes:
       - namespace: my-important
         container: main
       excludes:
       - container: too-verbose
Copy to Clipboard Toggle word wrap

namespace とコンテナーの包含と除外を含む 6.x アプリケーション入力

apiVersion: "observability.openshift.io/v1"
kind: ClusterLogForwarder
spec:
  inputs:
   - name: application-logs
     type: application
     application:
       includes:
       - namespace: foo
       - namespace: bar
       - namespace: my-important
         container: main
       excludes:
       - container: too-verbose
Copy to Clipboard Toggle word wrap

注記

"application"、"infrastructure"、"audit" は予約語であり、入力を定義するときに名前として使用することはできません。

Input Receiver への変更は次のとおりです。

  • レシーバーレベルでのタイプの明示的な設定。
  • ポート設定がレシーバーレベルに移動されました。

5.x の入力レシーバー

apiVersion: "logging.openshift.io/v1"
kind: ClusterLogForwarder
spec:
  inputs:
  - name: an-http
    receiver:
      http:
        port: 8443
        format: kubeAPIAudit
  - name: a-syslog
    receiver:
      type: syslog
      syslog:
        port: 9442
Copy to Clipboard Toggle word wrap

6.x の入力レシーバー

apiVersion: "observability.openshift.io/v1"
kind: ClusterLogForwarder
spec:
  inputs:
  - name: an-http
    type: receiver
    receiver:
      type: http
      port: 8443
      http:
        format: kubeAPIAudit
  - name: a-syslog
    type: receiver
    receiver:
      type: syslog
      port: 9442
Copy to Clipboard Toggle word wrap

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 の出力設定

...
spec:
  outputs:
  - lokiStack
      authentication:
        token:
          from: serviceAccount
      target:
        name: logging-loki
        namespace: openshift-logging
    name: my-lokistack
    tls:
      ca:
        configMapName: openshift-service-ca.crt
        key: service-ca.crt
    type: lokiStack
...
Copy to Clipboard Toggle word wrap

シークレットを使用した Logging 6.x の認証および TLS の設定

...
spec:
  outputs:
  - name: my-output
    type: http
    http:
      url: https://my-secure-output:8080
    authentication:
      password:
        key: pass
        secretName: my-secret
      username:
        key: user
        secretName: my-secret
    tls:
      ca:
        key: ca-bundle.crt
        secretName: collector
      certificate:
        key: tls.crt
        secretName: collector
      key:
        key: tls.key
        secretName: collector
...
Copy to Clipboard Toggle word wrap

1.6.1.5. フィルターとパイプラインの設定

以前のリリースにおけるパイプラインの属性は、このリリースではすべてフィルターに変換されています。フィルターはそれぞれ filters 仕様で定義され、パイプラインによって参照されます。

5.x のフィルター

...
spec:
  pipelines:
  - name: app-logs
    detectMultilineErrors: true
    parse: json
    labels:
      <key>: <value>
...
Copy to Clipboard Toggle word wrap

6.x のフィルターとパイプラインの仕様

...
spec:
  filters:
  - name: my-multiline
    type: detectMultilineException
  - name: my-parse
    type: parse
  - name: my-labels
    type: openshiftLabels
    openshiftLabels:
      <key>: <label>
  pipelines:
  - name: app-logs
    filterRefs:
    - my-multiline
    - my-parse
    - my-labels
...
Copy to Clipboard Toggle word wrap

注記

DropPrune、および 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.io API に更新した。
  • 管理者権限がある。
  • OpenShift Container Platform Web コンソールにアクセスでき、Administrator パースペクティブを表示している。

手順

  1. 次のコマンドを実行してサービスアカウントを作成します。

    注記

    以前のログフォワーダーが namespace openshift-logging および名前付きの instance にデプロイされている場合、以前のバージョンの Operator によって logcollector サービスアカウントが作成されています。クラスターロギングを削除すると、このサービスアカウントが削除されます。したがって、新しいサービスアカウントを作成する必要があります。その他のサービスアカウントは保持され、Logging 6.x で使用できます。

    $ oc create sa logging-collector -n openshift-logging
    Copy to Clipboard Toggle word wrap
  2. 必要な RBAC 権限をサービスアカウントに付与します。

    1. Red Hat LokiStack にログを書き込めるように、ClusterRole ロールをサービスアカウントにバインドしします。

      $ oc adm policy add-cluster-role-to-user logging-collector-logs-writer -z logging-collector -n openshift-logging
      Copy to Clipboard Toggle word wrap
    2. 次のコマンドを実行して、アプリケーションログを収集および転送する権限を割り当てます。

      $ oc adm policy add-cluster-role-to-user collect-application-logs -z logging-collector -n openshift-logging
      Copy to Clipboard Toggle word wrap
    3. 次のコマンドを実行して、監査ログを収集および転送する権限を割り当てます。

      $ oc adm policy add-cluster-role-to-user collect-audit-logs -z logging-collector -n openshift-logging
      Copy to Clipboard Toggle word wrap
    4. 次のコマンドを実行して、インフラストラクチャーログを収集および転送する権限を割り当てます。

       $ oc adm policy add-cluster-role-to-user collect-infrastructure-log -z logging-collector -n openshift-logging
      Copy to Clipboard Toggle word wrap
  3. 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
    Copy to Clipboard Toggle word wrap
  4. OpenShift Container Platform Web コンソールを使用して、Red Hat OpenShift Logging Operator を更新します。

    1. Operators Installed Operators に移動します。
    2. openshift-logging プロジェクトを選択します。
    3. Red Hat OpenShift Logging Operator をクリックします。
    4. Subscription をクリックします。Subscription details セクションで、Update channel リンクをクリックします。
    5. Change Subscription Update Channel ウィンドウで、更新チャネル stable-6.x を選択し、Save をクリックします。cluster-logging.v6.y.z のバージョンをメモしておきます。

      重要

      必ず N+2 バージョン (N は現在のバージョン) に更新してください。たとえば、Logging 5.8 からアップグレードする場合は、更新チャネルとして stable-6.0 を選択します。2 バージョン以上新しいバージョンへの更新はサポートされていません。

    6. 数秒待ってから、Operator Installed Operator に移動して、Red Hat OpenShift Logging Operator のバージョンが最新の cluster-logging.v6.y.z バージョンと一致していることを確認します。
    7. Operators Installed Operators ページで、Status フィールドが Succeeded を報告するのを待機します。

      既存の Logging v5 リソースは引き続き動作しますが、Operator によって管理されなくなります。新しいリソースを作成する準備ができたら、これらの管理されていないリソースを削除できます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat