> Section: [9. Nagios compatibility](https://jaque.sh/docs/nagios-compat/overview.md)
> Next: nagios-compat/importer
> Index: https://jaque.sh/llms.txt


Thruk, NagVis, Checkmk -- a whole ecosystem of consoles speaks MK
Livestatus (LQL) to read a monitoring engine's state without caring what
that engine actually is. jaque implements that protocol, so those tools
point at it without a single config change on their side. What it costs:
Livestatus inherits the protocol's own gaps, most visibly no `log` table
(section 3).

## 1. Turning it on

Two flags, both empty (protocol off) by default:

```
-livestatus-listen 127.0.0.1:6557   # TCP
-livestatus-socket /tmp/jaque-livestatus.sock  # UNIX socket
```

Either or both can be set at once.

```sh
printf 'GET status\nOutputFormat: json\n\n' | nc -U /tmp/jaque-livestatus.sock
```

## 2. What it reads from

Its own projection of the event log, in parallel with the dashboard's --
same mechanism, separate consumer, so a Livestatus client never blocks or
is blocked by the dashboard.

## 3. The tables

Nine tables: `hosts`, `services`, `hostgroups`, `servicegroups`,
`contacts`, `downtimes`, `comments`, `status`, plus the meta-table
`columns` describing all of them. Filtering, `Stats:` aggregation
(`sum`/`min`/`max`/`avg`), and both output formats (`csv`, the Nagios
default, and `json`) are supported.

The `log` table is not implemented, so Thruk features that need it will
not work.

```
GET services
Filter: state = 2
Stats: state = 2
OutputFormat: json
```

## 4. Verified against a real client, not just the spec

The `status` table implements all 20 columns Thruk's connect probe
(`get_processinfo`) actually requests -- not a subset inferred from reading
the LQL spec. The exact request/response sequence Thruk sends on connect is
pinned in a replay test against real Thruk traffic, so this is not "should
work" -- it is checked against what a production Nagios console does the
moment it connects.

## 5. What this unlocks

Any console that already knows how to talk Livestatus -- Thruk, NagVis,
Checkmk, WOCU -- can point at a jaque instance and read its state without
modifying its own configuration at all. Combined with the [exec plugin
protocol](../nagios-compat/exec-plugins.md) and the
[FIFO](https://jaque.sh/docs/nagios-compat/fifo-external-commands.md), this is the third leg
that lets an existing Nagios-adjacent toolchain keep functioning unmodified
while the engine underneath changes.

## 6. Security considerations

As in the original Livestatus protocol, the wire format carries no
authentication: anything that can reach the socket can read full state.
`-livestatus-listen` should bind a trusted interface, not `0.0.0.0`, and
`-livestatus-socket` should rely on filesystem permissions to keep the
socket restricted -- the protocol offers no door of its own to lock.
