Watchdogサービスを有効化して起動する

Watchdogサービスを構成するポリシーの例

この例では、ConfigurationUpdateポリシーを1本使い、Watchdogサービスの設定を構成し、OSサービスとして起動するジョブを展開する方法を示します。これらは1回のポリシー配信で完了します。

概要

Watchdogは、KeeperPrivilegeManager の稼働状態を監視する独立したサービスです。別のOSサービスとして動作し、定期的に /health エンドポイントで状態を確認し、メインサービスが応答しなくなった場合は自動的に再起動します。

Watchdogを有効にする場合、通常は2本のポリシーが必要です。Watchdogの構成を appsettings.json に書き込む SettingsUpdate と、OSサービスを起動する JobUpdate です。PolicyTypeConfigurationUpdate のポリシーでは、これらを1本にまとめられます。設定とジョブの両方が含まれる場合、先に設定が適用され、その後ジョブが作成・実行されるため、Watchdogサービスが構成を読み取る時点では、設定はすでにディスク上に書き込まれています。

ポリシー (JSON)

各要素の役割

設定部分: TargetFileSettingsJsonappsettings.json を対象とし、Watchdog 構成セクションをマージします。Update アクションはファイル内の既存キーをすべて保持し、SettingsJson に含まれるキーのみを追加または上書きします。

Watchdogセクションでは、以下の3つのキーを任意で指定できます。

キー
デフォルト
説明

CheckIntervalSec

int

10

ヘルスチェックの間隔 (秒)。2~300の範囲に収められます

AutoRemediate

bool

true

true のとき、Watchdogは失敗時にサービスを再起動します。false のときは監視のみです

StartupDelaySec

int

90

Watchdog起動後、最初のヘルスチェックまで待つ秒数 (最小 30)

ジョブ部分: JobIdJobJson はジョブファイルを Jobs/start-watchdog-service.json に書き込み、ジョブの再読み込みをトリガーします。ジョブは PolicyPreprocessingCompleted イベントで実行され、このポリシーを配信するのと同じ同期サイクル内で動作します。ジョブにはフォールバック付きの2つのタスクがあります。Windowsでは sc start KeeperWatchdog を実行し、最初のタスクが失敗した場合はLinuxおよびmacOS向けに systemctl start keeper-watchdog に切り替わります。

エンドポイントで起きること

ポリシーを受信すると、以下の順序で処理されます。

バリエーション

監視のみ (自動再起動なし): AutoRemediatefalse にします。Watchdogは障害を検知してログに記録しますが、サービスは再起動しません。

ヘルスチェックを低頻度にする: 負荷の高いハードウェアでは CheckIntervalSec を大きくします (最大 300)。障害検知を速くしたい場合は小さくします (最小 2)。

エージェントの起動のたびにWatchdogを起動する: イベントトリガーを PolicyPreprocessingCompleted から Startup に置き換えます。ポリシー同期時だけでなく、エージェントが起動するたびにWatchdogサービスが起動します。

後からWatchdogを無効にする: 2本目の ConfigurationUpdate ポリシーをプッシュし、SettingsJson 内で AutoRemediatefalse にし、JobId に対して ActionDelete に設定してエンドポイントから起動ジョブを削除します。

最終更新