1.5. ロギングコレクターの設定
Red Hat OpenShift の Logging は、クラスターからオペレーションとアプリケーションログを収集し、Kubernetes Pod とプロジェクトメタデータでデータを拡充します。ログコレクターに対するサポートされているすべての変更は、ClusterLogForwarder カスタムリソース (CR) の spec.collection スタンザを通じて実行されます。
1.5.1. LogFileMetricExporter リソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
実行中のコンテナーによって生成されたログからメトリクスを生成するには、LogFileMetricExporter カスタムリソース (CR) を作成する必要があります。
LogFileMetricExporter CR を作成しない場合、OpenShift Container Platform Web コンソールのダッシュボードの Produced Logs に No datapoints found というメッセージが表示される場合があります。
前提条件
- 管理者権限がある。
- Red Hat OpenShift Logging Operator がインストールされている。
-
OpenShift CLI (
oc) がインストールされている。
手順
LogFileMetricExporterCR を YAML ファイルとして作成します。LogFileMetricExporterCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
LogFileMetricExporterCR を適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
1.5.2. ログコレクター CPU およびメモリー制限の設定 リンクのコピーリンクがクリップボードにコピーされました!
ログコレクターを使用して、CPU とメモリーの制限を調整します。
手順
ClusterLogForwarderカスタムリソース (CR) を編集します。oc -n openshift-logging edit ClusterLogging instance
$ oc -n openshift-logging edit ClusterLogging instanceCopy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 必要に応じて CPU、メモリー制限および要求を指定します。表示される値はデフォルト値です。
1.5.3. 入力レシーバーの設定 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenShift Logging Operator は、クライアントがコレクターに書き込めるように、設定された各入力レシーバー用のサービスをデプロイします。このサービスは、入力レシーバーに指定されたポートを公開します。ログフォワーダー ClusterLogForwarder CR デプロイメントの場合、サービス名は <clusterlogforwarder_resource_name>-<input_name> 形式になります。
1.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 がインストールされている。
-
ClusterLogForwarderCR が作成されている。
手順
ClusterLogForwarderCR を変更して、httpレシーバー入力の設定を追加します。ClusterLogForwarderCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
ClusterLogForwarderCR に変更を適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、コレクターが
<clusterlogforwarder_resource_name>-<input_name>形式の名前を持つサービスでリッスンしていることを確認します。oc get svc
$ oc get svcCopy 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 3m6sCopy 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 証明書ファイルに置き換えます。注記検証手順に従うことによってのみ、クラスター内でログを転送できます。
1.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 がインストールされている。
-
ClusterLogForwarderCR が作成されている。
手順
次のコマンドを実行して、
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 logcollectorCopy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterLogForwarderCR を変更して、syslogレシーバー入力の設定を追加します。ClusterLogForwarderCR の例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
ClusterLogForwarderCR に変更を適用します。oc apply -f <filename>.yaml
$ oc apply -f <filename>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、コレクターが
<clusterlogforwarder_resource_name>-<input_name>形式の名前を持つサービスでリッスンしていることを確認します。oc get svc
$ oc get svcCopy 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 2m20sCopy to Clipboard Copied! Toggle word wrap Toggle overflow この出力例では、サービス名は
collector-syslog-receiverです。