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.