ページの先頭行へ戻る
Enterprise Postgres 15 オペレーターユーザーズガイド

4.9.1 FEPLoggingの設定

FEPLoggingカスタムリソースを介してFEPLoggingインスタンスをデプロイおよび設定する方法について説明します。FEPLoggingは、FEPClusterから送信されたログを受け入れ、アラームを発生させるためにそれらをElasticsearchまたはPrometheusに転送する別のカスタムリソースです。ユーザーは、FEPClusterのログ機能を有効にする前に、FEPLoggingカスタムリソースを作成する必要があります。

4.9.1.1 FEPLoggingカスタムリソース - spec

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のコンフィグマップ

4.9.1.1.1 fepLogging imageの定義

imageプロパティは、デフォルトのFluentdイメージとFEPLogging CRからのpullPolicy以外を指定するために使用されます。

指定しない場合は、オペレーターが提供するデフォルトイメージが使用されます。

例)

  spec:  
    fepLogging:
      image:
        image: 'quay.io/fujitsu/fujitsu-enterprise-postgres-fluentbit:ubi8-15-1.0'
        pullPolicy: IfNotPresent

4.9.1.1.2 fepLogging mcSpecの定義

FEPLoggingコンテナのメモリとCPUの設定は、mcSpecプロパティで指定できます。

例)

  spec:
    fepLogging:
      mcSpec:
        limits:
          cpu: 500m
          memory: 700Mi
        requests:
          cpu: 200m
          memory: 512Mi

4.9.1.1.3 fepLogging restartRequiredの定義

新しい変更を適用するためにFEPLoggingを再起動する必要がある場合 (証明書のローテーション後など) 、restartRequiredフラグをtrueに設定すると、FEPLoggingコンテナを再起動できます。このフラグの既定値はfalseです。Podが再起動されると、このフラグはfalseに戻ります。

例)

  spec:
    fepLogging:
      restartRequired: true

4.9.1.1.4 fepLogging scrapeIntervalおよびscrapeTimeoutの定義

FEPLoggingのscapeIntervalおよびscapeTimeoutプロパティはオプションです。これらのプロパティは、メトリクスのフェッチ間隔 (scrapeInterval) とリクエストのタイムアウトを設定するためにPrometheus Servicemonitorによって使用されます。

例)

  spec:
    fepLogging:
      scrapeInterval: 30s
      scrapeTimeout: 30s

4.9.1.1.5 fepLogging elasticの定義

FEPLogging (Fluentd) からElasticsearchにログを転送するには、elasticプロパティを設定する必要があります。これはオプションのプロパティです。Elasticsearchサーバと証明書は、ユーザーによって設定されます。

Elasticsearchへのログ転送を設定するには、次のプロパティが必要です。

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

4.9.1.1.6 ElasticsearchのためのauthSecretの定義

authSecretは、Elasticsearch認証用のbase64形式のユーザー名とパスワードを含むシークレットです。

例)

kind: Secret
apiVersion: v1
metadata:
  name: elastic-auth
  namespace: my-namespace
data:
  password: OFBobzlyRUJWOGg1Mk0xcXdaMUQ5bzQ0
  username: ZWxhc3RpYw==
type: Opaque

4.9.1.1.7 fepLogging TLSの定義

FEPLoggingには、オプションのTLSプロパティがあります。セキュアな接続を介してFEPClusterからFEPLoggingインスタンスにログを転送する場合は、FEPClusterのTLS設定 (remoteLoggingセクション) 、およびFEPLoggingとPrometheusのTLS設定が必須です。fepLoggingまたはPrometheusだけでTLS設定を構成することはできません。

自己署名証明書を使用する場合、caNameはスキップできます。

例)

  spec:
    fepLogging:
      tls:
        certificateName: fluentd-cert
        caName: cacert

4.9.1.1.8 Prometheus TLSの定義

FEPLoggingとFEPCluster間のセキュアな接続が必要な場合、FEPLoggingとPrometheusのTLS設定は必須です。fepLoggingまたはPrometheusだけでTLSを設定することはできません。

自己署名証明書を使用する場合、caNameはスキップできます。

例)

  spec:
    fepLogging:
     …
    prometheus:
      tls:
        certificateName: prometheus-cert
        caName: cacert