クラスターのロギング

クラスターとアプリのログを目的として、Red Hat® OpenShift® on IBM Cloud® クラスターには単一のクラスター・インスタンスの正常性を管理するのに役立つ組み込みツールが備わっています。 また、マルチクラスター分析や、 IBM Cloud Kubernetes Service のクラスターアドオン( IBM Cloud Logs および IBM Cloud Monitoring )など、その他のユースケース向けに IBM Cloud ツールを設定することも可能です。

ロギングのオプションについて

以下の情報を参考にして、組み込みの Red Hat OpenShift ツールと IBM Cloud 統合を状況に応じて使い分けてください。

IBM Cloud Logs

ログ調整のライブストリーミング、リアルタイム・トラブルシューティング問題アラート、およびログ・アーカイブためのカスタマイズ可能なユーザー・インターフェース。

  • スクリプトを使用したクラスターとの迅速な統合。
  • クラスターやクラウド・プロバイダーをまたいで集約されるログ。
  • 選択したプランに応じた履歴ログの利用。
  • 高可用性、拡張容易性、および業界のセキュリティー標準に対する準拠。
  • IBM Cloud の IAM との統合によるユーザー・アクセス管理。

Red Hat OpenShift on IBM Cloud API によって生成されるクラスタ管理イベントを表示します。 このログを利用するには、IBM Cloud Logs のインスタンスをプロビジョンします。 追跡できる IBM Cloud Kubernetes Service イベントのタイプについて詳しくは、Activity Tracker イベントを参照してください。

組み込みの Red Hat OpenShift ロギング・ツール

Red Hat OpenShift の Web コンソールのポッド・ログを示す組み込みビュー。

  • 組み込みのポッド・ログは、永続ストレージを使用するように構成されていません。 ロギング・データをバックアップして可用性を高めるには、クラウド・データベースと統合し、お客様がログを管理する必要があります。

OpenShift Container Platform ( Elasticsearch )、 Fluentd、および Kibana( EFK )のスタックをセットアップするには、 「クラスタ・ロギング・オペレーターのインストール 」を参照してください。 クラスターのロギング・スタックを実行するには、ワーカー・ノードに少なくとも 4 コアとメモリー 32 GB が必要であることに留意してください。

組み込みの Red Hat OpenShift 監査ロギング・ツール

ユーザー開始アクティビティーをモニターする API 監査ロギングは現在サポートされていません。

ロギングおよびモニタリングエージェントをCloud Logsに移行する

observability CLI プラグイン ibmcloud obv2/observe エンドポイントはサポートされなくなりました。 直接的な代替手段はありませんが、コンソールまたはチャート Helm を通じて、ロギングおよびモニタリングの統合を管理できるようになりました。 最新のステップについては、 クラスタ OpenShift 向けロギングエージェントのデプロイクラスタ Red Hat OpenShift の監視を参照してください

ob プラグイン、Terraform、または API を使用してクラスタに observability エージェントをインストールしたり、既存の設定を変更したりすることはできなくなりました。 Sysdig エージェントは、指定された IBM Cloud Monitoring インスタンスにメトリックを送信し続けます。

観測エージェントの見直し

このオブザーバビリティプラグインは、 ibm-observe 名前空間にSysdigエージェントをインストールします。

  1. Red Hat OpenShift クラスターにアクセスします
  1. ibm-observe ネームスペースのコンフィグマップを見直す。
    kubectl get cm -n ibm-observe
    
    Example output
    NAME                                   DATA   AGE
    e405f1fc-feba-4350-9337-e7e249af871c   6      25m
    f59851a6-ede6-4719-afa0-eee7ce65eeb5   6      20m
    
  1. オブザーバビリティ・プラグインによってインストールされたオブザーバビリティ・エージェントは、メトリクスが送信される IBM Cloud Monitoring インスタンスのGUIDを含むConfigMapを使用します。 クラスタに ibm-observe 以外のネームスペースにエージェントがある場合、または ibm-observe の configmaps にインスタンス GUID の名前が付けられていない場合、これらのエージェントは IKS observability (ob) プラグインと共にインストールされていません。

観測可能性プラグインエージェントの削除

  1. デーモンセットとコンフィグマップをクリーンアップする。
    kubectl delete daemonset sysdig-agent -n ibm-observe
    kubectl delete configmap <sysdig-configmap> -n ibm-observe
    
  2. オプション:ネームスペースを削除する。 他のリソースがネームスペースで実行されていない後。
    kubectl delete namespace ibm-observe
    

プラグインを削除した後、クラスターダッシュボード、Terraform、または手動で、クラスター内のロギングおよびモニタリングエージェントを再インストールしてください。

詳しくは、以下のリンクを参照してください。

クラスター・ロギング・オペレーターの使用

Red Hat OpenShift on IBM Cloud クラスターに OpenShift Container Platform クラスターロギングオペレーターおよびスタックをデプロイするには、『 Red Hat OpenShift 』のドキュメントを参照してください。 また、IBM Cloud Block Storage のストレージ・クラスを使用するようにクラスター・ロギング・インスタンスを更新する必要があります。

  1. オペレーターを実行するためのワーカー・プールを準備します。

    1. VPC または クラシック ワーカー プールを作成し、そのフレーバーはコア数 4 以上、メモリ 32 GB 以上、 ワーカー ノード 3 台以上としてください。
    2. ワーカー・プールにラベルを付けます
    3. ワーカー・プールにテイントを適用する ワーカー・プールで他のワークロードを実行できないようにします。
  2. Red Hat OpenShift クラスターにアクセスします

  3. Red Hat OpenShift のWebコンソールで、 管理者ビューから[ オペレーター]>[インストール済みオペレーター ]をクリックします。

  4. **「Cluster Logging」**をクリックします。

  5. **「Provided APIs」セクションの「Cluster Logging」タイルで「Create Instance」**をクリックします。

  6. 構成 YAML を変更して、ElasticSearch ログ・ストレージのストレージ・クラスを gp2 から以下のいずれかのストレージ・クラス (クラスターのインフラストラクチャー・プロバイダーによって異なります) に変更します。

    • クラシック・クラスター: ibmc-block-gold
    • VPC クラスター: ibmc-vpc-block-10iops-tier
    ...
        elasticsearch:
          nodeCount: 3
          redundancyPolicy: SingleRedundancy
          storage:
            storageClassName: ibmc-block-gold #or ibmc-vpc-block-10iops-tier for VPC clusters
            size: 200G
    ...
    
  7. 先ほど作成したワーカー・プールのラベルとテイントに対応するノード・セレクターと容認を含むように構成 YAML を変更します。 詳細と例については、以下の Red Hat OpenShift の資料を参照してください。 この例では、logging: clo-efk のラベルと容認を使用します。

    • Node selector。 ノード・セレクターを Elasticsearch (logstore)、Kibana (visualization)、Fluentd (collector.logs) ポッドに追加します。
        spec:
        logStore:
          elasticsearch:
            nodeSelector:
              logging: clo-efk
        ...
        visualization:
          kibana:
            nodeSelector:
              logging: clo-efk
        ...
        collection:
          logs:
            fluentd:
              nodeSelector:
                logging: clo-efk
        ```
    * [容認](https://docs.redhat.com/en/documentation/openshift_container_platform/4.21/html/nodes/controlling-pod-placement-onto-nodes-scheduling#nodes-scheduler-taints-tolerations-about_nodes-scheduler-taints-tolerations){: external}。 ノード・セレクターを Elasticsearch (`logstore`)、Kibana (`visualization`)、Fluentd (`collector.logs`) ポッドに追加します。
    ```yaml {: codeblock}
        spec:
        logStore:
          elasticsearch:
            tolerations:
            - key: app
              value: clo-efk
              operator: "Exists"
              effect: "NoExecute"
        ...
        visualization:
          kibana:
            tolerations:
            - key: app
              value: clo-efk
              operator: "Exists"
              effect: "NoExecute"
        ...
        collection:
          logs:
            fluentd:
              tolerations:
              - key: app
                value: clo-efk
                operator: "Exists"
                effect: "NoExecute"
        ```
    
  8. 「作成」 をクリックします。

  9. オペレーター、Elasticsearch、Fluentd、Kibana のポッドがすべて**「Running」**になっていることを確認します。