1 <?xml version='
1.0'
?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
2 <!DOCTYPE refentry PUBLIC
"-//OASIS//DTD DocBook XML V4.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
6 This file is part of systemd.
8 Copyright 2012 Zbigniew Jędrzejewski-Szmek
10 systemd is free software; you can redistribute it and/or modify it
11 under the terms of the GNU Lesser General Public License as published by
12 the Free Software Foundation; either version 2.1 of the License, or
13 (at your option) any later version.
15 systemd is distributed in the hope that it will be useful, but
16 WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
18 Lesser General Public License for more details.
20 You should have received a copy of the GNU Lesser General Public License
21 along with systemd; If not, see <http://www.gnu.org/licenses/>.
24 <refentry id=
"systemd-journal-gatewayd.service" conditional='HAVE_MICROHTTPD'
25 xmlns:
xi=
"http://www.w3.org/2001/XInclude">
28 <title>systemd-journal-gatewayd.service
</title>
29 <productname>systemd
</productname>
33 <contrib>Developer
</contrib>
34 <firstname>Zbigniew
</firstname>
35 <surname>Jędrzejewski-Szmek
</surname>
36 <email>zbyszek@in.waw.pl
</email>
42 <refentrytitle>systemd-journal-gatewayd.service
</refentrytitle>
43 <manvolnum>8</manvolnum>
47 <refname>systemd-journal-gatewayd.service
</refname>
48 <refname>systemd-journal-gatewayd.socket
</refname>
49 <refname>systemd-journal-gatewayd
</refname>
50 <refpurpose>HTTP server for journal events
</refpurpose>
54 <para><filename>systemd-journal-gatewayd.service
</filename></para>
55 <para><filename>systemd-journal-gatewayd.socket
</filename></para>
57 <command>/usr/lib/systemd/systemd-journal-gatewayd
</command>
58 <arg choice=
"opt" rep=
"repeat">OPTIONS
</arg>
63 <title>Description
</title>
65 <para><command>systemd-journal-gatewayd
</command> serves journal
66 events over the network. Clients must connect using
67 HTTP. The server listens on port
19531 by default.
68 If
<option>--cert=
</option> is specified, the server expects
69 HTTPS connections.
</para>
71 <para>The program is started by
72 <citerefentry><refentrytitle>systemd
</refentrytitle><manvolnum>1</manvolnum></citerefentry>
73 and expects to receive a single socket. Use
74 <command>systemctl start systemd-journal-gatewayd.socket
</command> to start
75 the service, and
<command>systemctl enable systemd-journal-gatewayd.socket
</command>
76 to have it started on boot.
</para>
80 <title>Options
</title>
82 <para>The following options are understood:
</para>
86 <term><option>--cert=
</option></term>
88 <listitem><para>Specify the path to a file containing a server
89 certificate in PEM format. This option switches
90 <command>systemd-journal-gatewayd
</command> into HTTPS mode
91 and must be used together with
92 <option>--key=
</option>.
</para></listitem>
96 <term><option>--key=
</option></term>
98 <listitem><para>Specify the path to a file containing a server
99 key in PEM format corresponding to the certificate specified
100 with
<option>--cert=
</option>.
</para></listitem>
104 <term><option>-D
<replaceable>DIR
</replaceable></option></term>
105 <term><option>--directory=
<replaceable>DIR
</replaceable></option></term>
107 <listitem><para>Takes a directory path as argument. If
108 specified,
<command>systemd-journal-gatewayd
</command> will serve the
109 specified journal directory
<replaceable>DIR
</replaceable> instead of
110 the default runtime and system journal paths.
</para></listitem>
113 <xi:include href=
"standard-options.xml" xpointer=
"help" />
114 <xi:include href=
"standard-options.xml" xpointer=
"version" />
119 <title>Supported URLs
</title>
121 <para>The following URLs are recognized:
</para>
125 <term><uri>/browse
</uri></term>
127 <listitem><para>Interactive browsing.
</para></listitem>
131 <term><uri>/entries[?option1
&option2=value…]
</uri></term>
133 <listitem><para>Retrieval of events in various formats.
</para>
135 <para>The
<option>Accept:
</option> part of the HTTP header
136 determines the format. Supported values are described below.
139 <para>The
<option>Range:
</option> part of the HTTP header
140 determines the range of events returned. Supported values are
144 <para>GET parameters can be used to modify what events are
145 returned. Supported parameters are described below.
</para>
150 <term><uri>/machine
</uri></term>
152 <listitem><para>Return a JSON structure describing the machine.
</para>
155 <programlisting>{
"machine_id" :
"8cf7ed9d451ea194b77a9f118f3dc446",
156 "boot_id" :
"3d3c9efaf556496a9b04259ee35df7f7",
157 "hostname" :
"fedora",
158 "os_pretty_name" :
"Fedora 19 (Rawhide)",
159 "virtualization" :
"kvm",
166 <term><uri>/fields/
<replaceable>FIELD_NAME
</replaceable></uri></term>
168 <listitem><para>Return a list of values of this field present in the logs.
</para>
175 <title>Accept header
</title>
178 <option>Accept:
<replaceable>format
</replaceable></option>
181 <para>Recognized formats:
</para>
185 <term><constant>text/plain
</constant></term>
187 <listitem><para>The default. Plaintext syslog-like output,
188 one line per journal entry
189 (like
<command>journalctl --output short
</command>).
</para>
194 <term><constant>application/json
</constant></term>
196 <listitem><para>Entries are formatted as JSON data structures,
198 (like
<command>journalctl --output json
</command>).
200 url=
"https://www.freedesktop.org/wiki/Software/systemd/json">Journal
201 JSON Format
</ulink> for more information.
</para>
206 <term><constant>text/event-stream
</constant></term>
208 <listitem><para>Entries are formatted as JSON data structures,
209 wrapped in a format suitable for
<ulink
210 url=
"https://developer.mozilla.org/en-US/docs/Server-sent_events/Using_server-sent_events">
211 Server-Sent Events
</ulink>
212 (like
<command>journalctl --output json-sse
</command>).
218 <term><constant>application/vnd.fdo.journal
</constant></term>
220 <listitem><para>Entries are serialized into a binary (but
221 mostly text-based) stream suitable for backups and network
223 (like
<command>journalctl --output export
</command>).
225 url=
"https://www.freedesktop.org/wiki/Software/systemd/export">Journal
226 Export Format
</ulink> for more information.
</para>
233 <title>Range header
</title>
236 <option>Range: entries=
<replaceable>cursor
</replaceable>[[:
<replaceable>num_skip
</replaceable>]:
<replaceable>num_entries
</replaceable>]
</option>
240 <option>cursor
</option> is a cursor string,
241 <option>num_skip
</option> is an integer,
242 <option>num_entries
</option> is an unsigned integer.
245 <para>Range defaults to all available events.
</para>
249 <title>URL GET parameters
</title>
251 <para>Following parameters can be used as part of the URL:
</para>
255 <term><uri>follow
</uri></term>
257 <listitem><para>wait for new events
258 (like
<command>journalctl --follow
</command>, except that
259 the number of events returned is not limited).
</para>
264 <term><uri>discrete
</uri></term>
266 <listitem><para>Test that the specified cursor refers to an
267 entry in the journal. Returns just this entry.
</para>
272 <term><uri>boot
</uri></term>
274 <listitem><para>Limit events to the current boot of the system
275 (like
<command>journalctl --this-boot
</command>).
</para></listitem>
279 <term><uri><replaceable>KEY
</replaceable>=
<replaceable>match
</replaceable></uri></term>
281 <listitem><para>Match journal fields. See
282 <citerefentry><refentrytitle>systemd.journal-fields
</refentrytitle><manvolnum>7</manvolnum></citerefentry>.
</para>
289 <title>Examples
</title>
290 <para>Retrieve events from this boot from local journal
292 url=
"https://www.freedesktop.org/wiki/Software/systemd/export">Journal
293 Export Format
</ulink>:
294 <programlisting>curl --silent -H'Accept: application/vnd.fdo.journal' \
295 'http://localhost:
19531/entries?boot'
</programlisting>
298 <para>Listen for core dumps:
299 <programlisting>curl 'http://localhost:
19531/entries?follow
&MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'
</programlisting></para>
303 <title>See Also
</title>
305 <citerefentry><refentrytitle>systemd
</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
306 <citerefentry><refentrytitle>journalctl
</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
307 <citerefentry><refentrytitle>systemd-journald.service
</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
308 <citerefentry><refentrytitle>systemd.journal-fields
</refentrytitle><manvolnum>7</manvolnum></citerefentry>,