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 2014 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-upload" conditional='HAVE_MICROHTTPD'
25 xmlns:xi="http://www.w3.org/2001/XInclude">
28 <title>systemd-journal-upload</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-upload</refentrytitle>
43 <manvolnum>8</manvolnum>
47 <refname>systemd-journal-upload</refname>
48 <refpurpose>Send journal messages over the network</refpurpose>
53 <command>systemd-journal-upload</command>
54 <arg choice="opt" rep="repeat">OPTIONS</arg>
55 <arg choice="opt" rep="norepeat">-u/--url=<replaceable>URL</replaceable></arg>
56 <arg choice="opt" rep="repeat">SOURCES</arg>
61 <title>Description</title>
64 <command>systemd-journal-upload</command> will upload journal
65 entries to the URL specified with <option>--url</option>. Unless
66 limited by one of the options specified below, all journal
67 entries accessible to the user the program is running as will be
68 uploaded, and then the program will wait and send new entries
69 as they become available.
74 <title>Options</title>
78 <term><option>-u</option></term>
79 <term><option>--url=<optional>https://</optional><replaceable>URL</replaceable></option></term>
80 <term><option>--url=<optional>http://</optional><replaceable>URL</replaceable></option></term>
82 <listitem><para>Upload to the specified
83 address. <replaceable>URL</replaceable> may specify either
84 just the hostname or both the protocol and
85 hostname. <constant>https</constant> is the default.
90 <term><option>--system</option></term>
91 <term><option>--user</option></term>
93 <listitem><para>Limit uploaded entries to entries from system
94 services and the kernel, or to entries from services of
95 current user. This has the same meaning as
96 <option>--system</option> and <option>--user</option> options
98 <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>. If
99 neither is specified, all accessible entries are uploaded.
104 <term><option>-m</option></term>
105 <term><option>--merge</option></term>
107 <listitem><para>Upload entries interleaved from all available
108 journals, including other machines. This has the same meaning
109 as <option>--merge</option> option for
110 <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para></listitem>
114 <term><option>-D</option></term>
115 <term><option>--directory=<replaceable>DIR</replaceable></option></term>
117 <listitem><para>Takes a directory path as argument. Upload
118 entries from the specified journal directory
119 <replaceable>DIR</replaceable> instead of the default runtime
120 and system journal paths. This has the same meaning as
121 <option>--directory</option> option for
122 <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
127 <term><option>--file=<replaceable>GLOB</replaceable></option></term>
129 <listitem><para>Takes a file glob as an argument. Upload
130 entries from the specified journal files matching
131 <replaceable>GLOB</replaceable> instead of the default runtime
132 and system journal paths. May be specified multiple times, in
133 which case files will be suitably interleaved. This has the same meaning as
134 <option>--file</option> option for
135 <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
140 <term><option>--cursor=</option></term>
142 <listitem><para>Upload entries from the location in the
143 journal specified by the passed cursor. This has the same
144 meaning as <option>--cursor</option> option for
145 <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.</para></listitem>
149 <term><option>--after-cursor=</option></term>
151 <listitem><para>Upload entries from the location in the
152 journal <emphasis>after</emphasis> the location specified by
153 the this cursor. This has the same meaning as
154 <option>--after-cursor</option> option for
155 <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>.
161 <term><option>--save-state</option><optional>=<replaceable>PATH</replaceable></optional></term>
163 <listitem><para>Upload entries from the location in the
164 journal <emphasis>after</emphasis> the location specified by
165 the cursor saved in file at <replaceable>PATH</replaceable>
166 (<filename>/var/lib/systemd/journal-upload/state</filename> by default).
167 After an entry is successfully uploaded, update this file
168 with the cursor of that entry.
172 <xi:include href="standard-options.xml" xpointer="help" />
173 <xi:include href="standard-options.xml" xpointer="version" />
178 <title>Exit status</title>
180 <para>On success, 0 is returned; otherwise, a non-zero
181 failure code is returned.</para>
185 <title>Examples</title>
187 <title>Setting up certificates for authentication</title>
189 <para>Certificates signed by a trusted authority are used to
190 verify that the server to which messages are uploaded is
191 legitimate, and vice versa, that the client is trusted.</para>
193 <para>A suitable set of certificates can be generated with
194 <command>openssl</command>:</para>
196 <programlisting>openssl req -newkey rsa:2048 -days 3650 -x509 -nodes \
197 -out ca.pem -keyout ca.key -subj '/CN=Certificate authority/'
199 cat >ca.conf <<EOF
211 policy = policy_anything
214 countryName = optional
215 stateOrProvinceName = optional
216 localityName = optional
217 organizationName = optional
218 organizationalUnitName = optional
219 commonName = supplied
220 emailAddress = optional
229 openssl req -newkey rsa:1024 -nodes -out $SERVER.csr -keyout $SERVER.key -subj "/CN=$SERVER/"
230 openssl ca -batch -config ca.conf -notext -in $SERVER.csr -out $SERVER.pem
232 openssl req -newkey rsa:1024 -nodes -out $CLIENT.csr -keyout $CLIENT.key -subj "/CN=$CLIENT/"
233 openssl ca -batch -config ca.conf -notext -in $CLIENT.csr -out $CLIENT.pem
236 <para>Generated files <filename>ca.pem</filename>,
237 <filename>server.pem</filename>, and
238 <filename>server.key</filename> should be installed on server,
239 and <filename>ca.pem</filename>,
240 <filename>client.pem</filename>, and
241 <filename>client.key</filename> on the client. The location of
242 those files can be specified using
243 <varname>TrustedCertificateFile=</varname>,
244 <varname>ServerCertificateFile=</varname>,
245 <varname>ServerKeyFile=</varname>, in
246 <filename>/etc/systemd/journal-remote.conf</filename> and
247 <filename>/etc/systemd/journal-upload.conf</filename>
248 respectively. The default locations can be queried by using
249 <command>systemd-journal-remote --help</command> and
250 <command>systemd-journal-upload --help</command>.</para>
255 <title>See Also</title>
257 <citerefentry><refentrytitle>systemd-journal-remote</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
258 <citerefentry><refentrytitle>journalctl</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
259 <citerefentry><refentrytitle>systemd-journald.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>,
260 <citerefentry><refentrytitle>systemd-journal-gatewayd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>