Monitoring event history#

pem.event_history テーブルで実行されたイベントの詳細をモニタできます。ユーザー名、イベントの実行時間、発生したイベントのタイプ、イベントに関する詳細を提供します。テーブルのフィールドは次のとおりです。

Field name

Description

Example

recorded_time

イベントの実行時間を記録します。日付と時刻を小数部秒とともに表示します。

2025‑11‑27 09:14:32

user_name

イベントを実行またはスケジュールしたユーザーのユーザー名。

alice@company.com

component

関連する特定のPEM機能。

profile / alert_blackout / HA Monitoring.

operation

イベントに対して実行されたアクション。

assign / disable_alert_blackout / Switchover.

message

イベントに対して実行されたアクションの説明。

Enabled the alert blackout for the server.

details

発生したイベントのJSON出力。

{"ProfileId":42,"ServerId":10}

注釈

この機能を使用するためにJSONの専門家である必要はありません。 **details**フィールドは、実行された特定のアクションに基づいて自動的に調整される「追加情報」のコレクションと考えてください。

なぜ重要なのでしょうか?#

このevent_history テーブルは、主要な操作の質問にすばやく回答するのに役立ちます。

  • 誰がアラートブラックアウトをオンまたはオフにしましたか?

  • 監視プロファイルはいつ適用、削除、または変更されましたか?

  • HAクラスターはリーダーを切り替えましたか?いつ、どのサーバー間で?

コア特典#

  • トラブルシューティング 欠落したアラートがアクティブな停電によるものであったかどうかをすばやく特定します。

  • 構成の追跡 最近サーバーに適用されたプロファイルを正確に表示します。

  • HA可視性 業務時間外に発生したロールの変更とフェイルオーバーを監査します。

  • アカウンタビリティ 変更の背後にある特定のユーザーまたはシステムプロセスを特定します。

サポートされている機能#

イベント履歴は、現在、次のPEM機能の変更とアクションを追跡しています。

プロファイル管理#

  • プロファイルの割り当て 構成プロファイルがサーバーまたはエージェントに割り当てられる場合。

  • プロファイルの削除 プロファイルの割り当てが削除されたとき。

  • プロファイルの更新 プロファイル設定またはカテゴリが変更されたとき。

  • プロフィールの削除 下書きまたは公開されたプロフィールが削除されたとき。

  • プロファイルの公開 ドラフトプロファイルが運用用に公開されたとき。

  • クローンプロファイル 既存のプロファイルがUIまたはREST APIを介してクローンされた場合。

  • Export Profile 1つ以上のプロファイルが.pemprf バンドルとしてエクスポートされる場合。 details フィールドは、エクスポートされたプロファイルの数とその名前を記録します。

  • インポートプロファイル新しい名前 .pemprf バンドルからのプロファイルがまだ存在しない名前でインポートされる場合。 details フィールドは、新しいプロファイル名とその割り当てられたIDを記録します。

  • インポートプロファイル上書き .pemprf バンドルからプロファイルが既存のプロファイルを上書きしてインポートされ、ドラフトを作成する場合。 details フィールドは、既存のプロファイルIDと新しいドラフトIDを記録します。

注釈

スキップおよび失敗したインポート結果は監査されません。成功したインポート操作のみが`pem.event_history` に書き込まれます。

アラートブラックアウト管理#

user_name 列は、アクションを実行した人を示します。実際のログインたとえば enterprisedb とは、UIまたはREST APIを介して操作されたユーザーを意味します。値system は、システムジョブがアクションを自動的に実行したことを意味します。

Operation

Trigger

enable_alert_blackout

Alert Blackout checkbox toggled on, or alert_blackout flag synced by the Process alert blackouts system job

disable_alert_blackout

Alert Blackout checkbox toggled off, or alert_blackout flag synced by the Process alert blackouts system job

schedule_alert_blackout

Scheduled blackout created via the Schedule Alert Blackout dialog

delete_scheduled_blackout

Scheduled blackout deleted via the Schedule Alert Blackout dialog

create_blackout

Blackout created via REST API POST

end_blackout

Blackout ended via REST API DELETE

expire_manual_blackout

Manual blackout auto-expired because max_manual_blackout was exceeded

blackout_ended

Checkbox uncheck ended an active scheduled or auto blackout early

blackout_completed

Scheduled blackout naturally completed when its end time was reached

auto_enable_blackout

Auto blackout created for an unreachable server or agent

auto_disable_blackout

Auto blackout cleared after the server or agent recovered

高可用性HAモニタリング#

  • スイッチオーバー/フェールオーバー HAクラスタープライマリ↔レプリカでの計画的または計画外のロールの変更。

記録された各イベントには以下が含まれます。

  • 発生したときの タイムスタンプ 。

  • アクションまたは自動イベントの場合はsystem を開始した ユーザー 。

  • 影響を受けるリソース サーバーID、エージェントID、クラスター名など。

  • 以前の値と新しい値 該当する場合。

  • JSON詳細フィールドに保存される 追加コンテキスト 。

一般的な運用シナリオ#

次のエントリはevent_history ログにキャプチャされます。

  • プロファイルの割り当て 監視プロファイル実稼働CPUとメモリをサーバーに適用します。ログは、ユーザー、プロファイルID、および構成が適用された正確な時間をキャプチャします。

  • アラートブラックアウト サーバーまたはエージェントのアラートブラックアウトを有効にします。これにより、特定のメンテナンス期間に通知が抑制された理由の明確な監査レコードが提供されます。

  • 高可用性HA移行 プライマリロールを引き継ぐスタンバイノード。イベントはロールの変更を文書化し、関係するサーバーの以前のロールと現在のロールの両方を特定します。

  • 管理上のクリーンアップ 古いまたは未使用のドラフトプロファイルの削除。削除の永続的な記録は、完全な履歴論文の証跡を保証のために維持されます。

イベントエントリーリファレンス#

以下のセクションでは、さまざまなアクティビティがログ内に記録される方法の内訳を提供します。

1.プロファイルの割り当て#

メッセージ “サーバー10にプロファイル42を割り当てます”。

監視プロファイルID 42がサーバーID 10に新しく適用されると、ログは次のエントリを生成します。

``details`` (JSON):

{
  "ProfileId": 42,
  "PreviousProfileId": null,
  "ServerId": 10,
  "TargetType": "server",
  "ChangedCategories": ["assigned_profile"]
}

2.プロファイルのクローン#

メッセージ 「クローンプロファイル42」。

プロファイルID 42がUI Copy from ダイアログまたはREST APIを介してクローン化されると、両方のパスが同じ監査行を書き込みます。監査履歴でクローンイベントを検索するには、operation = 'clone_profile' でフィルタリングします。通常の非クローンプロファイル作成は、代わりにoperation = 'create' を使用します。

``details`` (JSON):

{
  "SourceProfileId": 42,
  "SourceName": "Production Server Profile",
  "NewProfileId": 55,
  "NewName": "Copy of Production Server Profile",
  "TargetKind": "server",
  "ChangedCategories": ["metadata", "probe", "alert"]
}

注釈

監査ログはベストエフォートです。監査行の書き込みに失敗した場合、クローンは成功します。障害はサーバー側のログに記録されます。

3.プロファイルのエクスポート#

メッセージ “エクスポートされた2つのプロファイル:実稼働サーバープロファイル、ステージングサーバープロファイル”。

1つ以上のプロファイルが.pemprf バンドルとしてエクスポートされると、ログには、エクスポートされたプロファイルの数と名前が記録されます。

``details`` (JSON):

{
  "Count": 2,
  "ExportedNames": ["Production Server Profile", "Staging Server Profile"]
}

4.プロファイルのインポート新しい名前#

メッセージ 「インポートされたプロファイル ‘Staging Server Profile’」。

.pemprf バンドルからのプロファイルがターゲットインスタンスにまだ存在しない名前でインポートされると、新しいプロファイルの名前と割り当てられたIDがログに記録されます。

``details`` (JSON):

{
  "Name": "Staging Server Profile",
  "ProfileId": 67
}

5.プロファイルインポート上書き→下書き#

メッセージ 「既存のプロファイル42の上にドラフトとしてプロファイル’Production Server Profile’をインポートしました」。

インポートが既存のプロファイルを名前で上書きする場合 Skip stable? のチェックを外して、インポートされた構成はドラフトとして保存されます。ログには、既存のプロファイルIDと新しいドラフトIDの両方が記録されます。

``details`` (JSON):

{
  "ExistingProfileId": 42,
  "DraftId": 68
}

注釈

スキップされ失敗したインポート結果は、監査エントリを生成しません。成功したインポートのみが`pem.event_history` に記録されます。

6.アラートブラックアウト有効チェックボックス#

メッセージ “サーバーのアラートブラックアウトを有効にしました”。

ユーザーがグローバル概要ダッシュボードのAlert Blackoutチェックボックスをチェックしたときに記録されます。

``details`` (JSON):

{
  "IsAgent": false,
  "ObjectId": 10
}

7.アラートブラックアウトは無効チェックボックス#

メッセージ “サーバーのアラートブラックアウトを無効にしました”。

ユーザーがAlert Blackoutチェックボックスのチェックを外したときに記録されます。チェックを解除すると、オブジェクトのアクティブなブラックアウトがすべて終了するため、 EndedBlackouts は、クローズされたすべてのレコード、そのソース、およびスケジュールされた終了時間より前に終了したかどうかをリストします。

``details`` (JSON):

{
  "IsAgent": false,
  "ObjectId": 10,
  "EndedBlackouts": [
    { "Id": 42, "Source": "manual", "ScheduledEnd": null, "EndedEarly": false },
    { "Id": 43, "Source": "scheduled", "ScheduledEnd": "2026-04-24T02:00:00+00:00", "EndedEarly": true }
  ],
  "EndedCount": 2,
  "EndedSources": ["manual", "scheduled"]
}

8.スケジュールされた停電が作成されましたダイアログ#

メッセージ “スケジュールされたアラートブラックアウトを作成しました。”

スケジュールされたブラックアウトが[ Schedule Alert Blackout ]ダイアログを介して保存されたときに記録されます。 BlackoutGroups は、バッチ内の各グループのオブジェクト、開始時間、および期間をキャプチャします。

``details`` (JSON):

{
  "BlackoutGroups": [
    {
      "ObjectType": "server",
      "ObjectIds": [5, 7],
      "StartTime": "2026-04-23T10:00:00Z",
      "Duration": "2 hours"
    }
  ],
  "CreatedCount": 2
}

9.計画的な停電の削除ダイアログ#

メッセージ 「スケジュールされたアラートのブラックアウトを削除しました。」

スケジュールされたブラックアウトが[ Schedule Alert Blackout ]ダイアログを介して削除されたときに記録されます。

``details`` (JSON):

{
  "DeletedIds": ["a1b2c3d4-e5f6-7890-abcd-ef1234567890"],
  "AgentIds": [],
  "ServerIds": [5, 7]
}

10.手動ブラックアウトの有効期限が切れました#

メッセージ “手動ブラックアウトの有効期限が切れましたmax_manual_blackoutを超えました”。

手動ブラックアウトがmax_manual_blackout しきい値より長くアクティブになったときに、 プロセスアラートブラックアウト システムジョブによって記録されます。 user_name はsystem です。

``details`` (JSON):

{
  "IsAgent": false,
  "Ids": "10",
  "MaxManualBlackoutHours": 24
}

11.計画的な停電が完了しました#

メッセージ 「計画的な停電が完了しました。」

スケジュールされた停電が自然に終了時間に到達すると、システムジョブによって記録されます。 user_name はsystem です。

``details`` (JSON):

{
  "IsAgent": false,
  "Ids": "10",
  "Source": "scheduled",
  "BatchId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}

12.自動ブラックアウトが有効になっています#

メッセージ 「到達不能なサーバーのオートブラックアウトが有効になっています」。

サーバーまたはエージェントがserver_contact_timeout しきい値を超えると、 Blackout unreachable servers/agents システムジョブによって記録されます。 user_name はsystem です。

``details`` (JSON):

{
  "IsAgent": false,
  "Ids": "10",
  "Source": "auto"
}

13.自動ブラックアウトは無効です#

メッセージ 「復旧したサーバーの自動ブラックアウトはクリアされました。」

以前に到達できなかったサーバーまたはエージェントがタイムアウトウィンドウ内にハートビートを再開したときに、システムジョブによって記録されます。 user_name はsystem です。

``details`` (JSON):

{
  "IsAgent": false,
  "Ids": "10",
  "Source": "auto"
}

14.HAスイッチオーバー#

メッセージ “クラスターprod_patroniのスイッチオーバーが観察されました”。

ノードロールの変更をログに記録します。これは、高可用性イベントとフェールオーバーイベントの監査に重要です。

``details`` (JSON):

{
  "ClusterType": "patroni",
  "ClusterName": "prod_patroni",
  "OldRole": "primary",
  "NewRole": "replica",
  "NodeIp": "10.2.3.15"
}

最近のアクティビティを一目で見る方法#

PEM内のSQLクエリウィンドウからこれらのクエリを実行して、最近の変更をすばやく監査できます。これらの操作は読み取り専用で、データは変更されません。

最近のプロフィールイベント#

このクエリを使用して、構成プロファイル割り当て、更新、または削除に関連する最新の20件のアクションを表示します。

SELECT recorded_time, user_name, message
FROM pem.event_history
WHERE component = profile
ORDER BY recorded_time DESC
LIMIT 20;

最近のプロファイルクローンイベント#

このクエリを使用して、クローン化されたすべてのプロファイルと、 details フィールドからのソースおよび新しいプロファイルIDを表示します。

SELECT recorded_time, user_name,
       details::json->>SourceName AS source_profile,
       details::json->>NewName AS cloned_profile
FROM pem.event_history
WHERE component = profile AND operation = clone_profile
ORDER BY recorded_time DESC
LIMIT 20;

最近のアラートブラックアウトの変更#

このクエリを使用して、すべてのブラックアウト状態の変更を最新のものから順に表示します。

SELECT recorded_time, user_name, operation, message
FROM pem.event_history
WHERE component = alert_blackout
ORDER BY recorded_time DESC
LIMIT 20;

特定のサーバーたとえばオブジェクトID 10のブラックアウト状態を変更した人を確認するには

SELECT recorded_time, user_name, operation, message
FROM pem.event_history
WHERE component = alert_blackout
  AND (
    details::jsonb->>Ids = 10
    OR details::jsonb->>ObjectId = 10
    OR details::jsonb->ServerIds @> [10]::jsonb
  )
ORDER BY recorded_time DESC;

過去7日間のすべての手動ブラックアウト有効期限を見つけるには

SELECT recorded_time, details
FROM pem.event_history
WHERE component = alert_blackout
  AND operation = expire_manual_blackout
  AND recorded_time > now() - interval 7 days;

スケジュールされたブラックアウトバッチの完全なライフサイクルを表示するには

SELECT recorded_time, operation, message, details
FROM pem.event_history
WHERE component = alert_blackout
  AND details::jsonb->>BatchId = <batch-id>
ORDER BY recorded_time;

自動ブラックアウトアクティビティを監査するには到達不能なサーバーとエージェント

SELECT recorded_time, operation, message, details
FROM pem.event_history
WHERE component = alert_blackout
  AND operation IN (auto_enable_blackout, auto_disable_blackout)
ORDER BY recorded_time DESC;

最近のHAスイッチオーバー#

このクエリを使用して、HAクラスターがリーダープライマリ/レプリカロールを変更したときを特定します。

SELECT recorded_time, message
FROM pem.event_history
WHERE component = HA Monitoring AND operation = Switchover
ORDER BY recorded_time DESC
LIMIT 10;

詳細フィールドの読み取り#

ProfileId などのJSONデータから特定の値を抽出する必要がある場合は、Postgres JSON演算子を使用して自分の列に直接取り出すことができます。

SELECT recorded_time,
       details::json->>ProfileId AS profile_id,
       message
FROM pem.event_history
WHERE component = profile
ORDER BY recorded_time DESC
LIMIT 10;
結果の.. Note::

NULL 値は、これらの特定のイベントのJSONデータにその特定のキーが含まれていないことを示します。

考慮事項#

  • 変更スパイクの監視 ブラックアウトトグルまたはプロファイルの変更の突然の増加は、構成の混乱または環境の不安定を示している可能性があります。

  • 意味のある名前を使用します プロフィールに明確で説明的な名前を割り当てます。これにより、IDのみに依存するのではなく、 message 列が一目で読みやすくなります。

  • データのメンテナンス テーブルが非常に大きくなった場合、古い行を定期的にエクスポートまたはアーカイブします。最適なローカルポリシーについては、管理者に相談してください。

  • 整合性の維持 常にテーブルを永続的な履歴として扱います。既存の行を手動で編集または変更することは避けてください。

  • イベントの削除と監査 古いイベントを削除することは可能ですが、監査証跡が削除されるためお勧めしません。代わりに、古いデータをセカンダリ記憶場所にアーカイブして、テーブルサイズを管理しながら履歴を維持します。

  • システム生成イベント unknown ユーザーをリストするイベントは、通常、PEMが特定のユーザーアカウントを識別できなかったことを示します。これは一般的に、システム生成タスクまたは古い移行スクリプトで発生します。

  • イベントデータの解釈 message 列は、プライマリイベントの詳細をわかりやすい英語で提供します。詳細な分析のために特定の低レベルの技術的な詳細が必要な場合にのみ、JSONデータを解析する必要があります。