2.3. 入力レシーバーの設定


Red Hat OpenShift Logging Operator は、クライアントがコレクターに書き込めるように、設定された各入力レシーバー用のサービスをデプロイします。このサービスは、入力レシーバーに指定されたポートを公開します。ログフォワーダー ClusterLogForwarder CR デプロイメントの場合、サービス名は <clusterlogforwarder_resource_name>-<input_name> 形式になります。

2.3.1. 監査ログを HTTP サーバーとして受信するようにコレクターを設定する

ClusterLogForwarder カスタムリソース (CR) でレシーバー入力として http を指定することにより、ログコレクターが HTTP 接続をリッスンして監査ログのみを受信するように設定できます。

重要

HTTP レシーバー入力は、次のシナリオでのみサポートされます。

  • Hosted Control Plane にロギングがインストールされます。
  • ログが、Red Hat OpenShift Logging Operator と同じクラスターにインストールされている Red Hat 対応製品から生成された場合。例:

    • OpenShift Virtualization

前提条件

  • 管理者権限がある。
  • OpenShift CLI (oc) がインストールされている。
  • Red Hat OpenShift Logging Operator がインストールされている。

手順

  1. ClusterLogForwarder CR を変更して、http レシーバー入力の設定を追加します。

    ClusterLogForwarder CR の例

    apiVersion: observability.openshift.io/v1
    kind: ClusterLogForwarder
    metadata:
      name: <clusterlogforwarder_name> 
    1
    
      namespace: <namespace>
    # ...
    spec:
      serviceAccount:
        name: <service_account_name>
      inputs:
      - name: http-receiver 
    2
    
        type: receiver
        receiver:
          type: http 
    3
    
          port: 8443 
    4
    
          http:
            format: kubeAPIAudit 
    5
    
      outputs:
      - name: <output_name>
        type: http
        http:
          url: <url>
      pipelines: 
    6
    
        - name: http-pipeline
          inputRefs:
            - http-receiver
          outputRefs:
            - <output_name>
    # ...
    Copy to Clipboard Toggle word wrap

    1
    ClusterLogForwarder CR の名前を指定します。
    2
    入力レシーバーの名前を指定します。
    3
    入力レシーバー型を http に指定します。
    4
    オプション: 入力レシーバーがリッスンするポートを指定します。これは、1024 から 65535 までの値とします。指定されていない場合、デフォルト値は 8443 です。
    5
    現在、HTTP 入力レシーバーでは kube-apiserver Webhook 形式のみがサポートされています。
    6
    入力レシーバーのパイプラインを設定します。
  2. 次のコマンドを実行して、ClusterLogForwarder CR に変更を適用します。

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを実行して、コレクターが <clusterlogforwarder_resource_name>-<input_name> 形式の名前を持つサービスでリッスンしていることを確認します。

    $ oc get svc
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                      TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)            AGE
    collector                 ClusterIP   172.30.85.239    <none>        24231/TCP          3m6s
    collector-http-receiver   ClusterIP   172.30.205.160   <none>        8443/TCP           3m6s
    Copy to Clipboard Toggle word wrap

    この例では、サービス名は collector-http-receiver です。

検証

  1. 次のコマンドを実行して、認証局 (CA) 証明書ファイルを抽出します。

    $ oc extract cm/openshift-service-ca.crt -n <namespace>
    Copy to Clipboard Toggle word wrap
    注記

    コレクターが実行されているクラスター内の CA が変更された場合は、CA 証明書ファイルを再度抽出する必要があります。

  2. たとえば、以下のコマンドを実行して curl コマンドを使用してログを送信します。

    $ curl --cacert <openshift_service_ca.crt> https://collector-http-receiver.<namespace>.svc:8443 -XPOST -d '{"<prefix>":"<message>"}'
    Copy to Clipboard Toggle word wrap

    <openshift_service_ca.crt> を、抽出した CA 証明書ファイルに置き換えます。

2.3.2. コレクターを syslog サーバーとして接続をリッスンするように設定する

ClusterLogForwarder カスタムリソース (CR) で syslog をレシーバー入力として指定することで、ジャーナル形式のインフラストラクチャーログを収集するようにログコレクターを設定できます。

重要

syslog レシーバー入力は、次のシナリオでのみサポートされます。

  • Hosted Control Plane にロギングがインストールされます。
  • ログが、Red Hat OpenShift Logging Operator と同じクラスターにインストールされている Red Hat 対応製品から生成された場合。例:

    • Red Hat OpenStack Services on OpenShift (RHOSO)
    • OpenShift Virtualization

前提条件

  • 管理者権限がある。
  • OpenShift CLI (oc) がインストールされている。
  • Red Hat OpenShift Logging Operator がインストールされている。

手順

  1. 次のコマンドを実行して、collect-infrastructure-logs クラスターのロールをサービスアカウントに付与します。

    バインドコマンドの例

    $ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logcollector
    Copy to Clipboard Toggle word wrap

  2. ClusterLogForwarder CR を変更して、syslog レシーバー入力の設定を追加します。

    ClusterLogForwarder CR の例

    apiVersion: observability.openshift.io/v1
    kind: ClusterLogForwarder
    metadata:
      name: <clusterlogforwarder_name> 
    1
    
      namespace: <namespace>
    # ...
    spec:
      serviceAccount:
        name: <service_account_name> 
    2
    
      inputs:
        - name: syslog-receiver 
    3
    
          type: receiver
          receiver:
            type: syslog 
    4
    
            port: 10514 
    5
    
      outputs:
      - name: <output_name>
        lokiStack:
          authentication:
            token:
              from: serviceAccount
          target:
            name: logging-loki
            namespace: openshift-logging
        tls: 
    6
    
          ca:
            key: service-ca.crt
            configMapName: openshift-service-ca.crt
        type: lokiStack
    # ...
      pipelines: 
    7
    
        - name: syslog-pipeline
          inputRefs:
            - syslog-receiver
          outputRefs:
            - <output_name>
    # ...
    Copy to Clipboard Toggle word wrap

    1 2
    直前の手順で collect-infrastructure-logs パーミッションを付与されたサービスアカウントを使用します。
    3
    入力レシーバーの名前を指定します。
    4
    入力レシーバー型を syslog に指定します。
    5
    オプション: 入力レシーバーがリッスンするポートを指定します。これは、1024 から 65535 までの値とします。
    6
    TLS 設定が設定されていない場合、デフォルトの証明書が使用されます。詳細は、コマンド oc explain clusterlogforwarders.spec.inputs.receiver.tls を実行します。
    7
    入力レシーバーのパイプラインを設定します。
  3. 次のコマンドを実行して、ClusterLogForwarder CR に変更を適用します。

    $ oc apply -f <filename>.yaml
    Copy to Clipboard Toggle word wrap
  4. 次のコマンドを実行して、コレクターが <clusterlogforwarder_resource_name>-<input_name> 形式の名前を持つサービスでリッスンしていることを確認します。

    $ oc get svc
    Copy to Clipboard Toggle word wrap

    出力例

    NAME                        TYPE        CLUSTER-IP       EXTERNAL-IP   PORT(S)            AGE
    collector                   ClusterIP   172.30.85.239    <none>        24231/TCP          33m
    collector-syslog-receiver   ClusterIP   172.30.216.142   <none>        10514/TCP          2m20s
    Copy to Clipboard Toggle word wrap

    この出力例では、サービス名は collector-syslog-receiver です。

検証

  1. 次のコマンドを実行して、認証局 (CA) 証明書ファイルを抽出します。

    $ oc extract cm/openshift-service-ca.crt -n <namespace>
    Copy to Clipboard Toggle word wrap
    注記

    コレクターが実行されているクラスター内の CA が変更された場合は、CA 証明書ファイルを再度抽出する必要があります。

  2. たとえば、以下のコマンドを実行して curl コマンドを使用してログを送信します。

    $ curl --cacert <openshift_service_ca.crt> collector-syslog-receiver.<namespace>.svc:10514  “test message”
    Copy to Clipboard Toggle word wrap

    <openshift_service_ca.crt> を、抽出した CA 証明書ファイルに置き換えます。

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat