2.5. ロギングコレクターの設定
Red Hat OpenShift のロギングは、クラスターからオペレーションとアプリケーションログを収集し、Kubernetes Pod とプロジェクトメタデータでデータを拡充します。ログコレクターに対するサポートされているすべての変更は、ClusterLogForwarder
カスタムリソース (CR) の spec.collection
スタンザを通じて実行されます。
2.5.1. LogFileMetricExporter リソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
実行中のコンテナーによって生成されたログからメトリクスを生成するには、LogFileMetricExporter
カスタムリソース (CR) を作成する必要があります。
LogFileMetricExporter
CR を作成しない場合、Red Hat OpenShift Service on AWS Web コンソールのダッシュボードの Produced Logs に No datapoints found というメッセージが表示される場合があります。
前提条件
- 管理者権限がある。
- Red Hat OpenShift Logging Operator がインストールされている。
-
OpenShift CLI (
oc
) がインストールされている。
手順
LogFileMetricExporter
CR を YAML ファイルとして作成します。LogFileMetricExporter
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
LogFileMetricExporter
CR を適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.5.2. ログコレクター CPU およびメモリー制限の設定 リンクのコピーリンクがクリップボードにコピーされました!
ログコレクターを使用して、CPU とメモリーの制限を調整します。
手順
ClusterLogForwarder
カスタムリソース (CR) を編集します。oc -n openshift-logging edit ClusterLogging instance
$ oc -n openshift-logging edit ClusterLogging instance
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 必要に応じて CPU、メモリー制限および要求を指定します。表示される値はデフォルト値です。
2.5.3. 入力レシーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Logging Operator は、クライアントがコレクターに書き込めるように、設定された各入力レシーバー用のサービスをデプロイします。このサービスは、入力レシーバーに指定されたポートを公開します。ログフォワーダー ClusterLogForwarder
CR デプロイメントの場合、サービス名は <clusterlogforwarder_resource_name>-<input_name>
形式になります。
2.5.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 がインストールされている。
-
ClusterLogForwarder
CR が作成されている。
手順
ClusterLogForwarder
CR を変更して、http
レシーバー入力の設定を追加します。ClusterLogForwarder
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
ClusterLogForwarder
CR に変更を適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、コレクターが
<clusterlogforwarder_resource_name>-<input_name>
形式の名前を持つサービスでリッスンしていることを確認します。oc get svc
$ oc get svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
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
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 Copied! Toggle word wrap Toggle overflow この出力例では、サービス名は
collector-http-receiver
です。次のコマンドを実行して、認証局 (CA) 証明書ファイルを抽出します。
oc extract cm/openshift-service-ca.crt -n <namespace>
$ oc extract cm/openshift-service-ca.crt -n <namespace>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
curl
コマンドを使用してログを送信します。curl --cacert <openshift_service_ca.crt> https://collector-http-receiver.<namespace>.svc:8443 -XPOST -d '{"<prefix>":"<msessage>"}'
$ curl --cacert <openshift_service_ca.crt> https://collector-http-receiver.<namespace>.svc:8443 -XPOST -d '{"<prefix>":"<msessage>"}'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <openshift_service_ca.crt>
は、抽出した CA 証明書ファイルに置き換えます。注記検証手順に従うことによってのみ、クラスター内でログを転送できます。
2.5.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 がインストールされている。
-
ClusterLogForwarder
CR が作成されている。
手順
次のコマンドを実行して、
collect-infrastructure-logs
クラスターのロールをサービスアカウントに付与します。バインドコマンドの例
oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logcollector
$ oc adm policy add-cluster-role-to-user collect-infrastructure-logs -z logcollector
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterLogForwarder
CR を変更して、syslog
レシーバー入力の設定を追加します。ClusterLogForwarder
CR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
ClusterLogForwarder
CR に変更を適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、コレクターが
<clusterlogforwarder_resource_name>-<input_name>
形式の名前を持つサービスでリッスンしていることを確認します。oc get svc
$ oc get svc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
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
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 Copied! Toggle word wrap Toggle overflow この出力例では、サービス名は
collector-syslog-receiver
です。