FEPLoggingカスタムリソースを介してFEPLoggingインスタンスをデプロイおよび設定する方法について説明します。FEPLoggingは、FEPClusterから送信されたログを受け入れ、アラームを発生させるためにそれらをElasticsearchまたはPrometheusに転送する別のカスタムリソースです。ユーザーは、FEPClusterのログ機能を有効にする前に、FEPLoggingカスタムリソースを作成する必要があります。
FEPLoggingの設定で必要なパラメータを定義するには、specの下にfepLoggingセクションを追加する必要があります。
以下にテンプレートの例を示します。
spec: fepLogging: elastic: authSecret: secretName: elastic-auth passwordKey: password userKey: username host: elastic-passthrough.apps.openshift.com logstashPrefix: postgres port: 443 scheme: https sslVerify: true tls: certificateName: elastic-cert caName: elastic-cacert image: pullPolicy: IfNotPresent mcSpec: limits: cpu: 500m memory: 700Mi requests: cpu: 200m memory: 512Mi restartRequired: false sysExtraLogging: false scrapeInterval: 30s scrapeTimeout: 30s tls: certificateName: fluentd-cert caName: cacert prometheus: …
fepLoggingセクションで定義されているすべてのパラメータと設定内容について、以下に示します。
フィールド | 必須/オプション | 説明 | 変更可否 |
---|---|---|---|
spec.fepLogging.image.image | オプション | FEPLoggingのFluentdイメージ | 可 |
spec.fepLogging.image.pullPolicy | 必須 | FEPLoggingのFluentdイメージプルポリシー | 可 |
spec.fepLogging.mcSpec.limits.cpu | 必須 | Fluentdコンテナに割り当てられた最大CPU | 可 |
spec.fepLogging.mcSpec.limits.memory | 必須 | Fluentdコンテナに割り当てられた最大メモリ | 可 |
spec.fepLogging.mcSpec.requests.cpu | 必須 | Fluentdコンテナーの開始時のCPU割り当て | 可 |
spec.fepLogging.mcSpec.requests.memory | 必須 | Fluentdコンテナの開始時のメモリ割り当て | 可 |
spec.fepLogging.sysExtraLogging | 必須 | オペレーターの追加のデバッグメッセージをオンにするには、値をtrueに設定します。いつでもオン/オフを切り替えることができます。 | 可 |
spec.fepLogging.restartRequired | 必須 | 証明書のローテーション後など、新しい構成を適用するためにFEPLoggingインスタンスを再起動します | 可 |
spec.fepLogging.scrapeInterval | オプション | PrometheusがFEPLoggingインスタンスからメトリックをフェッチするためのスクレイピング間隔 | 可 |
spec.fepLogging.scrapeTimeout | オプション | PrometheusがFEPLoggingインスタンスからメトリックをフェッチするためのスクレイピングタイムアウト | 可 |
spec.fepLogging.elastic.host | オプション | ターゲットElasticsearchホスト名 | 可 |
spec.fepLogging.elastic.port | オプション | ターゲットElasticsearchポート番号 | 可 |
spec.fepLogging.elastic.authSecret.secretName | オプション | Elasticsearch認証のユーザー名とパスワードを含むシークレット名 | 可 |
spec.fepLogging.elastic.authSecret.userKey | オプション | Elasticsearch認証シークレットで指定されたユーザー名キー | 可 |
spec.fepLogging.elastic.authSecret.passwordKey | オプション | Elasticsearch認証シークレットで指定されたパスワードキー | 可 |
spec.fepLogging.elastic.logstashPrefix | オプション | Elasticsearchでインデックスパターンを区別するためのLogstashプレフィックス。デフォルト値はpostgresです。 | 可 |
spec.fepLogging.elastic.auditLogstashPrefix | オプション | 監査ログのElasticsearchでインデックスパターンを区別するためのLogstashプレフィックス。デフォルト値は、logstashPrefixと同じ値になります。 | 可 |
spec.fepLogging.elastic.scheme | オプション | FEPLoggingとElasticsearch間の接続スキーム。可能なオプションはhttpとhttps | 可 |
spec.fepLogging.elastic.sslVerify | オプション | ssl証明書を検証する場合は、trueに設定します。 falseに設定すると、TLSの重要性は考慮されません。 | 可 |
spec.fepLogging.elastic.tls.certificateName | オプション | Fluentd証明書を保持するKubernetesのシークレット名 | 可 |
spec.fepLogging.elastic.tls.caName | オプション | Elasticsearch TLS接続を検証するElasticsearchのcacertを保持するKubernetesコンフィグマップ | 可 |
spec.fepLogging.tls.certificateName | オプション | Fluentd証明書を保持するKubernetesのシークレット名 | 可 |
spec.fepLogging.tls.caName | オプション | FEPLoggingとPrometheusの間のMTLSを設定するためのFluentdのcacertを保持するKubernetesのコンフィグマップ | 可 |
spec.prometheus.tls.certificateName | オプション | Prometheus証明書を保持するKubernetesのシークレット名 | 可 |
spec.prometheus.tls.caName | オプション | FEPLoggingとPrometheusの間のMTLSを設定するためのFluentdのcacertを保持するKubernetesのコンフィグマップ | 可 |
imageプロパティは、デフォルトのFluentdイメージとFEPLogging CRからのpullPolicy以外を指定するために使用されます。
指定しない場合は、オペレーターが提供するデフォルトイメージが使用されます。
例)
spec: fepLogging: image: image: 'quay.io/fujitsu/fujitsu-enterprise-postgres-fluentbit:ubi8-15-1.0' pullPolicy: IfNotPresent
FEPLoggingコンテナのメモリとCPUの設定は、mcSpecプロパティで指定できます。
例)
spec: fepLogging: mcSpec: limits: cpu: 500m memory: 700Mi requests: cpu: 200m memory: 512Mi
新しい変更を適用するためにFEPLoggingを再起動する必要がある場合 (証明書のローテーション後など) 、restartRequiredフラグをtrueに設定すると、FEPLoggingコンテナを再起動できます。このフラグの既定値はfalseです。Podが再起動されると、このフラグはfalseに戻ります。
例)
spec: fepLogging: restartRequired: true
FEPLoggingのscapeIntervalおよびscapeTimeoutプロパティはオプションです。これらのプロパティは、メトリクスのフェッチ間隔 (scrapeInterval) とリクエストのタイムアウトを設定するためにPrometheus Servicemonitorによって使用されます。
例)
spec: fepLogging: scrapeInterval: 30s scrapeTimeout: 30s
FEPLogging (Fluentd) からElasticsearchにログを転送するには、elasticプロパティを設定する必要があります。これはオプションのプロパティです。Elasticsearchサーバと証明書は、ユーザーによって設定されます。
Elasticsearchへのログ転送を設定するには、次のプロパティが必要です。
authSecret
host
port
logstashPrefix
auditLogstashPrefix
scheme
sslVerify
tls(sslVerifyがtrueに設定されている場合)
Elasticsearchサーバを設定し、そのホスト名とポートを使用します。
ここでtlsプロパティはオプションで、sslVerifyフラグと一緒に動作します。セキュア接続とtls検証を有効にするには、sslVerifyにtrueを設定し、有効なcertificateNameとcaNameを指定します。
Elastic SearchサーバのCA証明書を保持するElasticsearch caNameは必須です。
例)
spec: fepLogging: elastic: authSecret: passwordKey: password secretName: elastic-auth userKey: username host: elastic-passthrough.apps.openshift.com logstashPrefix: postgres auditLogstashPrefix: postgres port: 443 scheme: https sslVerify: false tls: certificateName: fluentd-cert caName: elastic-cacert
authSecretは、Elasticsearch認証用のbase64形式のユーザー名とパスワードを含むシークレットです。
例)
kind: Secret apiVersion: v1 metadata: name: elastic-auth namespace: my-namespace data: password: OFBobzlyRUJWOGg1Mk0xcXdaMUQ5bzQ0 username: ZWxhc3RpYw== type: Opaque
FEPLoggingには、オプションのTLSプロパティがあります。セキュアな接続を介してFEPClusterからFEPLoggingインスタンスにログを転送する場合は、FEPClusterのTLS設定 (remoteLoggingセクション) 、およびFEPLoggingとPrometheusのTLS設定が必須です。fepLoggingまたはPrometheusだけでTLS設定を構成することはできません。
自己署名証明書を使用する場合、caNameはスキップできます。
例)
spec: fepLogging: tls: certificateName: fluentd-cert caName: cacert
FEPLoggingとFEPCluster間のセキュアな接続が必要な場合、FEPLoggingとPrometheusのTLS設定は必須です。fepLoggingまたはPrometheusだけでTLSを設定することはできません。
自己署名証明書を使用する場合、caNameはスキップできます。
例)
spec: fepLogging: … prometheus: tls: certificateName: prometheus-cert caName: cacert