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

5.7.2 FEPサーバのモニタリング

モニタリングおよびアラートシステムは、OCP(OpenShift Container Platform)およびKubernetesにデプロイされた標準のGAPスタック(Grafana、Alertmanager、Prometheus)を利用します。オペレーターとFEPClusterをデプロイする前に、GAPスタックが存在している必要があります。

Prometheusは、時系列メトリクスを格納するための簡単な方法です。 Grafanaは、Prometheusに保存されているFEPメトリクスのグラフを表示するための、柔軟で視覚的なインターフェースを提供します。

これらを組み合わせることで、ユーザーがスライスおよび分解してFEPデータベースの動作を確認できる大量のメトリクスを保存できます。また、これらのセットアップや使用方法などの問題に対処するための強力なコミュニティがあります。

Prometheusは、FEPコンテナの時系列データのストレージおよびポーリングコンシューマとして機能します。 Grafanaは、Prometheusにクエリを実行して、有益なグラフを表示します。

Prometheusルールが定義されている場合は、ルールを定期的に評価して、条件が満たされた場合にAlertmanagerにアラートを送信します。

さらに、Alertmanagerをメール、Slack、SMS、バックオフィスなどの外部システムと統合して、発生したアラートに対してアクションを実行できます。

FEPクラスタからのメトリクスは、FEP Exporterを使用してデプロイされたオプションのコンポーネントを介してPrometheusによって収集され、デフォルトのメトリクスセットと対応するPrometheusルールを使用してアラートを生成します。ユーザーは、カスタムメトリクスクエリを定義し、アラート用のカスタムPrometheusルールを定義することで、メトリクスを拡張または上書きできます。

5.7.2.1 アーキテクチャー

FEPサーバのモニタリングの流れを以下に示します。


注意

  • メール/メッセージ/チケットの発行を送信するためのバックオフィスへのAlertmanagerの統合は、環境に基づいてユーザーが行います

  • Grafanaのインストールと統合はユーザーが行います。 OperatorHubが提供するGrafanaオペレーターを使用します。

  • Grafanaダッシュボードは、ユーザーの要件とデザインに基づいてユーザーが作成します。

5.7.2.2 デフォルトのサーバメトリクス

デフォルトでは、FEPExporterはサーバのいくつかの有用なメトリクスをスクレイプします。

FEPExporterが実行されると、ユーザーはOpenshift-> Monitoring-> Metricsサブメニューで収集されたメトリクスを確認できます。

FEPExporter.によって定義されたデフォルトのサーバメトリクスには2つの種類があります

種類

説明

デフォルトで必須

FEPExporterによって収集されます。FEPExporterによってデフォルトで必須に設定されており、ユーザーが無効にすることはできません。

デフォルトで有効

稼働状態とパフォーマンスに焦点を絞ったメトリクス。ユーザーが無効にすることができます。

デフォルトで必須のメトリクス

これらのメトリクスは、データベースの基本的な統計ビューまたはFEPExporter自身のメトリクスから取得されます。

このカテゴリの各種メトリクスは以下のとおりです。

メトリクス名

説明

pg_stat_bgwriter_*

統計収集で表示するマップ

pg_stat_database_*

統計収集で表示するマップ

pg_stat_database_conflicts_*

統計収集で表示するマップ

pg_stat_archiver_*

統計収集で表示するマップ

pg_stat_activity_*

統計収集で表示するマップ

pg_stat_replication_*

統計収集で表示するマップ

pg_replication_slots_*

pg_replication_slotsシステムカタログへのマッピング

pg_settings_*

pg_settingsシステムカタログへのマッピング

pg_locks_*

pg_locksシステムカタログへのマッピング

pg_exporter_*

エクスポータのメトリクスを公開

  • last_scrape_duration_seconds (PostgresSQLからのメトリクスの最後のスクレイプの期間)

  • scrapes_total (メトリクスのためにPostgresSQLがスクレイプされた合計回数)

  • last_scrape_error (PostgreSQLからのメトリクスの最後のスクレイプでエラーが発生したかどうか。エラーの場合は1、成功の場合は0)

pg_*

エクスポータメトリクスを公開します

  • pg_up(サービスへの接続が成功した場合は1に設定され、それ以外の場合は0に設定されます)

  • pg_static(postgresサーバのバージョン情報を含むラベルshort_version /バージョンをフェッチするために使用できます)

デフォルトで有効なメトリクス

データベースシステムの状態を評価するために追加されるいくつかの便利なクエリがあります。

メトリクス名

説明

pg_capacity_connection_*

接続に関するメトリクス(例: 1時間実行されているtxns)

pg_capacity_schema_*

スキーマのディスク領域のメトリクス

pg_capacity_tblspace_*

表領域のディスク領域のメトリクス

pg_capacity_tblvacuum_*

数日間バキュームされていないテーブルのメトリクス

pg_capacity_longtx_*

5分以上実行されているトランザクションの数

情報を確認し、SQLの見直しとリソースの拡張を検討してください

pg_performance_locking_detail_*

ブロック状態のプロセスの詳細

pg_performance_locking_*

ブロックされた状態のプロセスの数

pg_replication_*

レプリケーションがマスターより数秒遅れる場合、参照レプリカ内の最新のデータをチェックする機能を提供します

この問題を解決するには、ネットワークリソースの増加や負荷の軽減などの対策を検討する必要があります

pg_postmaster_*

ポストマスターが開始した時刻

pg_stat_user_tables_*

pg_stat_user_tablesからの重要な統計情報

pg_statio_user_tables_*

pg_statio_user_tablesからの重要な統計情報

pg_database_*

データベースサイズ

データベースの容量が不足している場合は、データベースの復元が必要です

pg_stat_statements_*

サーバによって実行されたSQLステートメントの統計

pg_capacity_tblbloat_*

テーブルのフェッチによる肥大化

pg_tde_encrypted_*

テーブルスペースの透過的データ暗号化の有無と格納されているテーブルとインデックス数

pg_password_valid_*

データベースロールのパスワードの有効期間

pg_not_set_password_valid_*

パスワードの有効期間が設定されていないデータベースロール数

注意

情報収集クエリで指定された値を変更することにより、情報が収集される間隔としきい値を調整できます。 詳細については、“オペレーターリファレンス”の付録にあるクエリを参照して設定してください。

以下の例を参照してください。

5.7.2.3 デフォルトのアラート

オペレーターによって設定される基本的なアラートルールを以下に示します。

アラートルール

アラートレベル

条件の永続性

説明

ContainerHighCPUUsage

Warning

5分

FEPサーバコンテナ/PodのCPU使用率がリソース制限の80%を超えています。

ContainerHighRAMUsage

Warning

30分

FEPサーバコンテナ/ポッドのメモリ使用量がリソース制限の80%を超えています

PVCLowDiskSpace

Warning

5分

FEP PVC(ボリューム)の使用可能なディスクは10%未満です。

ContainerDisappeared

Warning

60秒

FEPサーバコンテナ/Podが60秒以内に削除されました。

PostgresqlDown

Error

-

FEPサーバがダウンしたか、アクセスできません。

PostgresqlTooManyConnections

Warning

-

FEPサーバコンテナ/Pod接続の使用量が使用可能な容量の90%を超えています。

PostgresqlRolePasswordCloseExpierd

Warning

-

パスワードの有効期限が7日未満のPostgresqlロールが存在します。

PostgresqlRolePasswordExpired

Warning

-

パスワードの有効期限が切れているPostgresqlロールが存在します。

** アラートは統計/指標に基づいています。 プラットフォームの統計が正しくない場合、誤ったアラームが発生する可能性があります。

例) ストレージドライバーがPVのバイト使用量の正しいメトリクスを表示していない場合、システムはPVCLowDiskSpaceの誤ったアラームを発生させる可能性があります。 この動作は、NFSストレージで見られます。

他の監視項目にアラートルールを追加することで、任意のアラートを構成できます。

5.7.2.4 グラフィカルユーザーインターフェース

デフォルトおよびカスタムのメトリクスを使用してカスタムダッシュボードを作成できます。

Grafanaダッシュボードのスクリーンショットの例を以下に示します