This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.7.8. 外部 Elasticsearch インスタンスへのログの送信
オプションで、内部 OpenShift Container Platform Elasticsearch インスタンスに加えて、またはその代わりに外部 Elasticsearch インスタンスにログを転送できます。外部ログアグリゲーターを OpenShift Container Platform からログデータを受信するように設定する必要があります。
外部 Elasticsearch インスタンスへのログ転送を設定するには、そのインスタンスへの出力および出力を使用するパイプラインで ClusterLogForwarder カスタムリソース (CR) を作成する必要があります。外部 Elasticsearch 出力では、HTTP(セキュアでない) または HTTPS(セキュアな HTTP) 接続を使用できます。
外部 Elasticsearch インスタンスと内部 Elasticsearch インスタンスの両方にログを転送するには、出力および外部インスタンスへのパイプライン、および default 出力を使用してログを内部インスタンスに転送するパイプラインを作成します。default 出力を作成する必要はありません。default 出力を設定する場合、default 出力は Red Hat OpenShift Logging Operator 用に予約されるため、エラーメッセージが送信されます。
ログを内部 OpenShift Container Platform Elasticsearch インスタンス のみ に転送する必要がある場合は、ClusterLogForwarder CR を作成する必要はありません。
前提条件
- 指定されたプロトコルまたは形式を使用してロギングデータを受信するように設定されたロギングサーバーが必要です。
手順
ClusterLogForwarderCR オブジェクトを定義する YAML ファイルを作成または編集します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
ClusterLogForwarderCR の名前はinstanceである必要があります。- 2
ClusterLogForwarderCR の namespace はopenshift-loggingである必要があります。- 3
- 出力の名前を指定します。
- 4
elasticsearchタイプを指定します。- 5
- 外部 Elasticsearch インスタンスの URL およびポートを有効な絶対 URL として指定します。
http(セキュアでない) プロトコルまたはhttps(セキュアな HTTP) プロトコルを使用できます。CIDR アノテーションを使用するクラスター全体のプロキシーが有効になっている場合、出力は IP アドレスではなくサーバー名または FQDN である必要があります。 - 6
- セキュアな接続では、
シークレットを指定して、認証するhttpsまたはhttpURL を指定できます。 - 7
https接頭辞の場合には、TLS 通信のエンドポイントに必要なシークレットの名前を指定します。シークレットはopenshift-loggingプロジェクトに存在し、tls.crt、tls.key および ca-bundle.crt のキーが含まれる必要があります。これらは、それぞれが表す証明書を参照します。それ以外の場合は、httpおよびhttps接頭辞の場合は、ユーザー名とパスワードを含むシークレットを指定できます。詳細は、Example: Setting secret that contains a username and password.を参照してください。- 8
- オプション: パイプラインの名前を指定します。
- 9
- パイプラインを使用して転送するログタイプ (
application、infrastructureまたはaudit) を指定します。 - 10
- このパイプラインでログを転送する時に使用する出力の名前を指定します。
- 11
- オプション: ログを内部 Elasticsearch インスタンスに送信するために
default出力を指定します。 - 12
- オプション: 構造化された JSON ログエントリーを
structuredフィールドの JSON オブジェクトとして転送するかどうかを指定します。ログエントリーに有効な構造化された JSON が含まれる必要があります。そうでない場合は、OpenShift Logging は構造化フィールドを削除し、代わりにログエントリーをデフォルトのインデックスapp-00000xに送信します。 - 13
- オプション: 文字列。ログに追加する 1 つまたは複数のラベル。
- 14
- オプション: サポートされるタイプの他の外部ログアグリゲーターにログを転送するように複数の出力を設定します。
- パイプラインを説明する名前。
-
inputRefsは、そのパイプラインを使用して転送するログタイプです (application、infrastructure、またはaudit)。 -
outputRefsは使用する出力の名前です。 - オプション: 文字列。ログに追加する 1 つまたは複数のラベル。
CR オブジェクトを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
例: ユーザー名とパスワードを含むシークレットの設定
ユーザー名とパスワードを含むシークレットを使用して、外部 Elasticsearch インスタンスへのセキュアな接続を認証できます。
たとえば、サードパーティーが Elasticsearch インスタンスを操作するため、相互 TLS (mTLS) キーを使用できない場合に、HTTP または HTTPS を使用してユーザー名とパスワードを含むシークレットを設定できます。
以下の例のような
SecretYAML ファイルを作成します。usernameおよびpasswordフィールドに base64 でエンコードされた値を使用します。シークレットタイプはデフォルトで不透明です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow シークレットを作成します。
oc create secret -n openshift-logging openshift-test-secret.yaml
$ oc create secret -n openshift-logging openshift-test-secret.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow ClusterLogForwarderCR にシークレットの名前を指定します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記urlフィールドの値では、接頭辞はhttpまたはhttpsになります。CR オブジェクトを作成します。
oc create -f <file-name>.yaml
$ oc create -f <file-name>.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow