Health & Status Endpoints
Keeper EPM exposes a set of built-in HTTP endpoints for checking service liveness, plugin status, and overall system health. Use these endpoints with your existing monitoring tools — load balancers, uptime probes, SIEM agents, or custom automation — to confirm the agent is running and operating as expected on each endpoint.
All endpoints are served by the local KeeperPrivilegeManager service on https://localhost:6889 (HTTPS) or http://localhost:6888 (HTTP) and are bound to localhost only. The agent's control plane is never exposed on the network.
Public Endpoints
These endpoints require no authentication and can be called by any process on the endpoint. They are appropriate for monitoring systems, load balancer probes, and basic automation.
Service Liveness
GET /healthReturns 200 OK if the service is running. This endpoint bypasses all middleware, making it the lightest-weight check available and the recommended choice for high-frequency liveness probes.
Response:
{
"status": "healthy",
"timestamp": "2026-06-30T10:30:00Z",
"version": "1.0.0"
}Example:
curl -k https://localhost:6889/healthService Information
Returns basic service identification. Useful as a smoke test to confirm the correct service is responding on the expected port.
Response:
System Status
Returns aggregate status for the service, including plugin and job counts. Use this endpoint when you want a single call that summarizes whether the agent is fully operational, not just running.
Response:
Example:
Privileged Endpoints
These endpoints return detailed plugin and monitoring data and require either Plugin-level or Admin-level authorization. Calls must originate from a process launched by Keeper EPM or from an elevated context (Administrator on Windows, sudo on Linux/macOS).
Plugin Status
Returns the status of every plugin known to the service, including process ID and last start time. Use this endpoint to identify which plugins are stopped, failed, or missing.
Authorization: Plugin
Response:
Plugin Health Detail
Returns detailed health information for each monitored plugin, including health status (Healthy, Unhealthy, Starting, Stopping, Failed), process ID, and uptime. This is the endpoint to use when you need to alert on plugin health specifically rather than process existence.
Authorization: Plugin
Response:
Plugin Monitoring Service Status
Returns the status of the plugin monitoring service itself, including the configured check interval, the time of the last check, and which plugins are currently being monitored.
Authorization: Plugin
Response:
Service and Plugin Health Behavior
Beyond the endpoints above, Keeper EPM includes built-in self-monitoring and automatic recovery:
Plugin monitoring loop: The service checks plugin process existence and responsiveness every 30 seconds by default. The interval is configurable via the
PluginMonitoring.CheckIntervalMinutessetting.Automatic plugin restart: Plugins configured for auto-restart are relaunched automatically when the monitoring loop detects they have failed or become unresponsive.
Automatic service recovery: The KeeperPrivilegeManager service is configured to restart on failure by the operating system — Service Control Manager on Windows (15-second delay, up to 10 attempts), systemd on Linux (
Restart=on-failure, 15-second delay), and launchd on macOS.
These behaviors mean that transient plugin failures usually resolve without admin intervention, but they also mean a plugin that appears "Running" via /api/plugins may have been restarted recently. For incident investigation, correlate the lastStartTime field with your log data — see Reading Logs for guidance.
Recommended Monitoring Patterns
Basic liveness: Poll GET /health every 1–5 minutes from your monitoring system. Alert on any non-200 response.
Operational health: Poll GET /api/system/status every 5 minutes. Alert when plugins.running is less than plugins.total, or when the response cannot be parsed.
Plugin-level alerting: Poll GET /api/monitoring/plugins from a privileged context (a Keeper-launched job, or an elevated scheduled task) every 5–15 minutes. Alert on any plugin reporting a status other than Healthy.
Load balancer probes: Use GET /health exclusively. The endpoint bypasses middleware and is the only one designed for high-frequency, low-overhead probing.
Authentication Notes
The public endpoints (/health, /, /api/system/status) require no authentication and can be called from any process on the endpoint, including unprivileged user contexts.
The privileged endpoints use process-based authentication. A call succeeds when the calling process is either:
A process launched by Keeper EPM and tracked in its internal process registry, or
A process running with administrator privileges (Run as administrator on Windows,
sudoon Linux/macOS).
A curl command from a non-elevated terminal will receive 401 Unauthorized from the privileged endpoints. For ad-hoc troubleshooting, run the terminal as administrator or use sudo.
Last updated

