第2章 OpenShift Container Platform に Developer Hub 用監査ログの設定


OpenShift Container Platform Web コンソールを使用して、Developer Hub の監査ログを使用するように次の OpenShift Container Platform ロギングコンポーネントを設定します。

ロギングのデプロイメント
各ロギングコンポーネントの CPU とメモリーの制限を含むロギング環境を設定します。詳細は、Red Hat OpenShift Container Platform - ロギングデプロイメントの設定 を参照してください。
ロギングコレクター
ClusterLogging カスタムリソース (CR) の spec.collection スタンザを設定して、サポートされているログコレクターの変更を使用し、STDOUT からログを収集します。詳細は、Red Hat OpenShift Container Platform - ログコレクターの設定 を参照してください。
ログ転送
ClusterLogForwarder CR で出力とパイプラインの組み合わせを指定して、OpenShift Container Platform クラスター内外の特定のエンドポイントにログを送信します。詳細は、Red Hat OpenShift Container Platform - JSON ログ転送の有効化 および Red Hat OpenShift Container Platform - ログ転送の設定 を参照してください。

2.1. Red Hat Developer Hub 監査ログを Splunk に転送

Red Hat OpenShift Logging (OpenShift Logging) Operator と ClusterLogForwarder インスタンスを使用して、Developer Hub インスタンスからストリーミングされた監査ログをキャプチャーし、Splunk インスタンスに関連付けられた HTTPS エンドポイントに転送できます。

前提条件

  • サポートされている OpenShift Container Platform バージョンでクラスターが実行している。
  • cluster-admin 権限を持つアカウントがある。
  • Splunk Cloud アカウントまたは Splunk Enterprise インストールをもっている。

手順

  1. OpenShift Container Platform クラスターにログインします。
  2. OpenShift Logging Operator を openshift-logging namespace にインストールし、namespace に切り替えます。

    namespace に切り替えるコマンドの例

    oc project openshift-logging

  3. log-collector という名前の serviceAccount を作成し、collect-application-logs ロールを serviceAccount にバインドします。

    serviceAccount を作成するためのコマンド例

    oc create sa log-collector

    ロールを serviceAccount にバインドするコマンドの例

    oc create clusterrolebinding log-collector --clusterrole=collect-application-logs --serviceaccount=openshift-logging:log-collector

  4. Splunk インスタンスで hecToken を生成します。
  5. openshift-logging namespace にキー/値シークレットを作成し、そのシークレットを検証します。

    hecToken を使用してキー/値シークレットを作成するコマンドの例

    oc -n openshift-logging create secret generic splunk-secret --from-literal=hecToken=<HEC_Token>

    秘密を検証するコマンドの例

    oc -n openshift-logging get secret/splunk-secret -o yaml

  6. 次のように、基本的な `ClusterLogForwarder` リソース YAML ファイルを作成します。

    `ClusterLogForwarder` リソースの YAML ファイルの例

    apiVersion: logging.openshift.io/v1
    kind: ClusterLogForwarder
    metadata:
      name: instance
      namespace: openshift-logging

    詳細は、ログフォワーダーの作成 を参照してください。

  7. OpenShift Web コンソールまたは OpenShift CLI を使用して、次の ClusterLogForwarder 設定を定義します。

    1. YAML ファイルで、log-collectorserviceAccount として指定します。

      serviceAccount 設定例

      serviceAccount:
        name: log-collector

    2. 転送するログの種類とソースを指定するには、inputs を設定します。次の設定により、フォワーダーは指定された namespace 内のすべてのアプリケーションからログをキャプチャーできるようになります。

      inputs 設定の例

      inputs:
        - name: my-app-logs-input
          type: application
          application:
            includes:
              - namespace: my-developer-hub-namespace
            containerLimit:
              maxRecordsPerSecond: 100

      詳細は、特定の Pod からのアプリケーションログの転送 を参照してください。

    3. 出力を設定して、キャプチャーされたログの送信先を指定します。このステップでは、splunk タイプに焦点を当てます。Splunk エンドポイントが自己署名 TLS 証明書を使用する場合は tls.insecureSkipVerify オプションを使用するか (非推奨)、Secret を使用して証明書チェーンを提供できます。

      outputs 設定の例

      outputs:
        - name: splunk-receiver-application
          type: splunk
          splunk:
            authentication:
              token:
                key: hecToken
                secretName: splunk-secret
            index: main
            url: 'https://my-splunk-instance-url'
            rateLimit:
              maxRecordsPerSecond: 250

      詳細は、OpenShift Container Platform ドキュメントの Splunk へのログの転送 を参照してください。

    4. オプション: 監査ログのみを含めるようにログをフィルタリングします。

      filters 設定例

      filters:
        - name: audit-logs-only
          type: drop
          drop:
            - test:
              - field: .message
                notMatches: isAuditLog

      詳細は、OpenShift Container Platform ドキュメントの コンテンツによるログのフィルタリング を参照してください。

    5. 特定の入力から指定された出力にログをルーティングするようにパイプラインを設定します。定義された入力と出力の名前を使用して、各パイプラインで複数の inputRefsoutputRefs を指定します。

      pipelines 設定の例

      pipelines:
        - name: my-app-logs-pipeline
          detectMultilineErrors: true
          inputRefs:
            - my-app-logs-input
          outputRefs:
            - splunk-receiver-application
          filterRefs:
            - audit-logs-only

  8. ClusterLogForwarder 設定を適用するには、次のコマンドを実行します。

    ClusterLogForwarder 設定を適用するコマンドの例

    oc apply -f <ClusterLogForwarder-configuration.yaml>

  9. オプション: ログ損失のリスクを軽減するには、次のオプションを使用して ClusterLogForwarder Pod を設定します。

    1. ログコレクターのリソース要求と制限を次のように定義します。

      collector 設定の例

      collector:
        resources:
          requests:
            cpu: 250m
            memory: 64Mi
            ephemeral-storage: 250Mi
          limits:
            cpu: 500m
            memory: 128Mi
            ephemeral-storage: 500Mi

    2. deliverycompressionRetryDuration など、ログ配信の tuning オプションを定義します。必要に応じて出力ごとにチューニングを適用できます。

      tuning 設定の例

      tuning:
        delivery: AtLeastOnce 1
        compression: none
        minRetryDuration: 1s
        maxRetryDuration: 10s

      1
      AtLeastOnce 配信モードとは、ログフォワーダーがクラッシュしたり再起動したりした場合に、クラッシュ前に読み取られたが宛先に送信されなかったログが、再送信されることを意味します。クラッシュ後に一部のログが重複している可能性があります。

検証

  1. Splunk ダッシュボードでログを表示して、ログが Splunk インスタンスに転送されていることを確認します。
  2. 必要に応じて、OpenShift Container Platform と Splunk ログを使用して問題をトラブルシューティングします。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.