Operating jaque reduces to operating its event log. What survives a restart is decided by -eventlog alone; what is worth backing up is the log's directory or nothing, depending on the backend; and an upgrade is a binary swap, because every projection rebuilds from the log rather than from a schema that could need migrating. This page states those three rules, the retention flags that bound the log's size, and the three failures people actually hit.

1. Durability

What survives a restart depends entirely on -eventlog.

memory, the default, keeps the event log in process memory only. A restart loses every event, and the projections (current state, history) rebuild from nothing, not from where they left off.

file://<path> persists the log to an embedded, on-disk event log store at that path, durable across restarts. -retain makes jaque fail fast at startup, instead of running, if -eventlog does not guarantee persistence; it is the flag that turns "I meant to configure durability" into a startup error rather than a discovery after the first restart.

nats://<host:port> persists to an external, shared event log server, the shared log a multi-engine deployment reads from.

1.1 Retention

With file:// or nats://, three flags govern how much history the log keeps before compaction drops it.

-eventlog-retain-check-executed (default 168h, seven days) is how long check_executed events are kept.

-eventlog-retain-state-changed (default 0, unbounded) is how long state_changed events are kept; 0 is what Nagios-style state history needs.

-eventlog-retain-reachability-changed (default 0, unbounded) is how long reachability_changed events are kept.

-compaction-interval (default 1h) is how often the embedded transport's retention pass runs and drops events past those windows.

2. Backing up the event log directory

With -eventlog file://<path>, the durable state is the on-disk event log directory at <path>, and there are two ways to protect it.

A cold copy: stop jaque, copy the directory, restart. The directory is not safe to copy while the process is writing to it.

Replay: with -eventlog nats://... the external event log server holds the durable copy. A fresh jaque instance pointed at the same log replays it from scratch, so there is nothing process-local to back up.

3. Upgrades

Replace the binary and restart. There is no migration step: the event log format does not change across a binary upgrade, and every projection (current object state, dashboard rows, Livestatus tables) rebuilds by replaying the log from wherever it resumes, from the start for memory and from where the log left off for file:// and nats://. In a split deployment, restart each role (engine, worker, ui, sink, notifier) independently; there is no required ordering between them, because none of them talks to another directly.

4. Troubleshooting

ICMP checks return UNKNOWN with permission denied. The icmp check uses unprivileged datagram sockets, which most Linux distributions do not allow by default. Run sudo sysctl -w net.ipv4.ping_group_range="0 2147483647", or a narrower group range. See Quickstart.

A passive object keeps going UNKNOWN. Check its freshness_threshold. Once a result is older than that window the object is forced to stale_status (UNKNOWN by default) until a fresh result arrives. See Passive checks.

jaque will not start, or a listener will not bind. Another process is already on that port. Check -listen (dashboard, API, /metrics), -livestatus-listen (Livestatus TCP) and -livestatus-socket (Livestatus UNIX socket) for a conflicting address or path.

5. Security considerations

An on-disk event log directory or a remote event log stream is the complete monitoring history, including check output, which often carries hostnames, paths and whatever a plugin printed. A backup of it deserves the same handling as the running process's data. The listeners named in section 4 are unauthenticated; Security says what that implies.