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 がインストールされている。
手順
ClusterLogForwarderCR を変更して、httpレシーバー入力の設定を追加します。ClusterLogForwarderCR の例apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: <clusterlogforwarder_name>1 namespace: <namespace> # ... spec: serviceAccount: name: <service_account_name> inputs: - name: http-receiver2 type: receiver receiver: type: http3 port: 84434 http: format: kubeAPIAudit5 outputs: - name: <output_name> type: http http: url: <url> pipelines:6 - name: http-pipeline inputRefs: - http-receiver outputRefs: - <output_name> # ...次のコマンドを実行して、
ClusterLogForwarderCR に変更を適用します。$ oc apply -f <filename>.yaml次のコマンドを実行して、コレクターが
<clusterlogforwarder_resource_name>-<input_name>形式の名前を持つサービスでリッスンしていることを確認します。$ oc get svc出力例
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この例では、サービス名は
collector-http-receiverです。
検証
次のコマンドを実行して、認証局 (CA) 証明書ファイルを抽出します。
$ oc extract cm/openshift-service-ca.crt -n <namespace>注記コレクターが実行されているクラスター内の CA が変更された場合は、CA 証明書ファイルを再度抽出する必要があります。
たとえば、以下のコマンドを実行して
curlコマンドを使用してログを送信します。$ curl --cacert <openshift_service_ca.crt> https://collector-http-receiver.<namespace>.svc:8443 -XPOST -d '{"<prefix>":"<message>"}'<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 がインストールされている。
手順
次のコマンドを実行して、
collect-infrastructure-logsクラスターのロールをサービスアカウントに付与します。バインドコマンドの例
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logcollectorClusterLogForwarderCR を変更して、syslogレシーバー入力の設定を追加します。ClusterLogForwarderCR の例apiVersion: observability.openshift.io/v1 kind: ClusterLogForwarder metadata: name: <clusterlogforwarder_name>1 namespace: <namespace> # ... spec: serviceAccount: name: <service_account_name>2 inputs: - name: syslog-receiver3 type: receiver receiver: type: syslog4 port: 105145 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> # ...- 1 2
- 直前の手順で
collect-infrastructure-logsパーミッションを付与されたサービスアカウントを使用します。 - 3
- 入力レシーバーの名前を指定します。
- 4
- 入力レシーバー型を
syslogに指定します。 - 5
- オプション: 入力レシーバーがリッスンするポートを指定します。これは、
1024から65535までの値とします。 - 6
- TLS 設定が設定されていない場合、デフォルトの証明書が使用されます。詳細は、コマンド
oc explain clusterlogforwarders.spec.inputs.receiver.tlsを実行します。 - 7
- 入力レシーバーのパイプラインを設定します。
次のコマンドを実行して、
ClusterLogForwarderCR に変更を適用します。$ oc apply -f <filename>.yaml次のコマンドを実行して、コレクターが
<clusterlogforwarder_resource_name>-<input_name>形式の名前を持つサービスでリッスンしていることを確認します。$ oc get svc出力例
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この出力例では、サービス名は
collector-syslog-receiverです。
検証
次のコマンドを実行して、認証局 (CA) 証明書ファイルを抽出します。
$ oc extract cm/openshift-service-ca.crt -n <namespace>注記コレクターが実行されているクラスター内の CA が変更された場合は、CA 証明書ファイルを再度抽出する必要があります。
たとえば、以下のコマンドを実行して
curlコマンドを使用してログを送信します。$ curl --cacert <openshift_service_ca.crt> collector-syslog-receiver.<namespace>.svc:10514 “test message”<openshift_service_ca.crt> を、抽出した CA 証明書ファイルに置き換えます。