FIFO external commands
If you already have scripts, cron jobs, or a dashboard writing to Nagios’s command file, jaque reads the exact same wire format — nothing to rewrite on the sending side.
Enable it
Section titled “Enable it”-command-file /var/lib/jaque/rw/jaque.cmdjaque creates the named pipe if it doesn’t exist. Empty (the default) disables passive ingestion via this route entirely.
The line format
Section titled “The line format”[<unix_ts>] COMMAND_NAME;field1;field2;...<unix_ts> is a Unix timestamp in brackets; the command name and fields
follow, semicolon-separated. An unparseable line, or an unrecognized
command name, is always an error — jaque never guesses at malformed
input.
The verbs, exactly
Section titled “The verbs, exactly”Passive results:
PROCESS_SERVICE_CHECK_RESULT;<host>;<service>;<code>;<output>PROCESS_HOST_CHECK_RESULT;<host>;<code>;<output><output> splits on the first | into text and perfdata; <code> is the
familiar 0-3 exit-code convention.
Acknowledgements:
ACKNOWLEDGE_SVC_PROBLEM;<host>;<service>;<sticky>;<notify>;<persistent>;<author>;<comment>ACKNOWLEDGE_HOST_PROBLEM;<host>;<sticky>;<notify>;<persistent>;<author>;<comment>REMOVE_SVC_ACKNOWLEDGEMENT;<host>;<service>REMOVE_HOST_ACKNOWLEDGEMENT;<host><sticky> is 0/1 — any nonzero value (Nagios UIs sometimes write 2) is
treated as sticky. <notify> and <persistent> are parsed for arity and
discarded: nothing dispatches notifications from these calls, and
persistent comment retention has no equivalent here.
Downtimes — fixed only:
SCHEDULE_SVC_DOWNTIME;<host>;<service>;<start>;<end>;<fixed>;<trigger_id>;<duration>;<author>;<comment>SCHEDULE_HOST_DOWNTIME;<host>;<start>;<end>;<fixed>;<trigger_id>;<duration>;<author>;<comment>DEL_HOST_DOWNTIME;<downtime_id>DEL_SVC_DOWNTIME;<downtime_id><fixed> must be 1 and <trigger_id> must be 0 — flexible
downtimes (which start on the next problem inside the window, not
immediately) and triggered downtimes are rejected as parse errors, never
silently coerced to fixed. <duration> is parsed and discarded (it only
matters for flexible downtime). DEL_HOST_DOWNTIME and DEL_SVC_DOWNTIME
carry only a downtime ID on the wire — both names parse to the same
command; the two names exist purely for wire compatibility.
Group-scoped downtimes, translating a legacy group name into a label selector via the same normalization the importer used when it emitted the label:
SCHEDULE_HOSTGROUP_HOST_DOWNTIME;<hostgroup>;<start>;<end>;<fixed>;<trigger_id>;<duration>;<author>;<comment>SCHEDULE_HOSTGROUP_SVC_DOWNTIME;<hostgroup>;<start>;<end>;<fixed>;<trigger_id>;<duration>;<author>;<comment>SCHEDULE_SERVICEGROUP_HOST_DOWNTIME;<servicegroup>;<start>;<end>;<fixed>;<trigger_id>;<duration>;<author>;<comment>SCHEDULE_SERVICEGROUP_SVC_DOWNTIME;<servicegroup>;<start>;<end>;<fixed>;<trigger_id>;<duration>;<author>;<comment>Nagios has no group-scoped acknowledgement command, so there’s no
equivalent translation for ACKNOWLEDGE_*.
Selector-scoped verbs — new, not legacy spellings:
SCHEDULE_DOWNTIME;<selector>;<scope>;<start>;<end>;<author>;<comment>ACKNOWLEDGE_PROBLEM;<selector>;<scope>;<sticky>;<author>;<comment>REMOVE_ACKNOWLEDGEMENT;<selector>;<scope><selector> is any label selector
text; <scope> is host or service, anything else is a parse error.
These carry only the fields the engine actually uses — no
<notify>/<persistent>/<fixed>/<trigger_id>/<duration> baggage.
Where these commands go
Section titled “Where these commands go”Everything the FIFO parses lands on the same command channel the ConnectRPC API feeds — see FIFO and API for how the two doors converge, and what happens to a command aimed at an object owned by another engine.