systemd-journal-upload 中文手册

译者:金步国


版权声明

本文译者是一位开源理念的坚定支持者,所以本文虽然不是软件,但是遵照开源的精神发布。

其他作品

本文译者十分愿意与他人分享劳动成果,如果你对我的其他翻译作品或者技术文章有兴趣,可以在如下位置查看现有的作品集:

联系方式

由于译者水平有限,因此不能保证译文内容准确无误。如果你发现了译文中的错误(哪怕是错别字也好),请来信指出,任何提高译文质量的建议我都将虚心接纳。


手册索引 . 指令索引systemd-235

名称

systemd-journal-upload — 通过网络向远程发送日志

大纲

systemd-journal-upload [OPTIONS...] [-u/--url=URL] [SOURCES...]

描述

systemd-journal-upload 能够将日志发送到 --url 选项指定的目标。 除非使用了下面的某个选项进行限制, 否则将会发送运行此进程的用户所能够访问的全部日志, 在发送完既有的日志之后,此程序将会继续等待新日志的产生, 并且持续不断的发送新生成的日志。

选项(OPTIONS)

-u, --url=[https://]URL, --url=[http://]URL

设置将日志发送到哪个地址。 注意,既可以同时指定传输协议与目标主机, 也可以仅指定目标主机而省略传输协议。 如果省略传输协议,那么表示默认使用 https 协议。

--system, --user

--system 表示仅发送内核与系统服务生成的日志, --user 表示仅发送运行此进程的用户服务生成的日志。 此二选项的含义与 journalctl(1)--system--user 选项相同。 如果这两个选项都没有使用,那么将会发送运行此进程的用户所能够访问的全部日志。

-m, --merge

混合发送包括来自于其他远程主机的日志在内的所有可见日志。 此选项与 journalctl(1)--merge 选项的含义相同。

-D, --directory=DIR

接受一个以绝对路径表示的目录, 表示仅发送指定目录下的日志(而不是默认的运行时和系统日志目录中的日志)。 此选项与 journalctl(1)--directory 选项的含义相同。

--file=GLOB

GLOB 是一个可以包含"?"与"*"的文件路径匹配模式。 表示仅发送与 GLOB 模式匹配的文件中的日志(而不是默认的运行时和系统日志目录中的日志)。 可以多次使用此选项以指定多个匹配模式(多个模式之间用"OR"逻辑连接)。 此选项与 journalctl(1)--file 选项的含义相同。

--cursor=

仅发送从指定的游标(cursor)开始的日志。 此选项与 journalctl(1)--cursor 选项的含义相同。

--after-cursor=

仅发送从指定的游标(cursor)之后开始的日志。 此选项与 journalctl(1)--after-cursor 选项的含义相同。

--save-state[=PATH]

仅发送从 PATH 文件中记录的游标(cursor)之后开始的日志。 PATH 的默认值是 /var/lib/systemd/journal-upload/state 。 注意,每成功上传一个日志事件, PATH 文件的内容都将被自动同步更新为该日志事件的游标(cursor)值。

-h, --help

显示简短的帮助信息并退出。

--version

显示简短的版本信息并退出。

退出状态

返回值为 0 表示成功, 非零返回值表示失败代码。

例子

例 1. 设置用于身份认证的证书

一方面,由可信CA签名的证书可以用于验证接收日志的服务器是否真实可信。 另一方面,也可以使用证书来验证发送日志的客户端是否真实可信。

可以使用 openssl 工具来生成证书以及对证书进行签名:

openssl req -newkey rsa:2048 -days 3650 -x509 -nodes \
      -out ca.pem -keyout ca.key -subj '/CN=Certificate authority/'

cat >ca.conf <<EOF
[ ca ]
default_ca = this

[ this ]
new_certs_dir = .
certificate = ca.pem
database = ./index
private_key = ca.key
serial = ./serial
default_days = 3650
default_md = default
policy = policy_anything

[ policy_anything ]
countryName             = optional
stateOrProvinceName     = optional
localityName            = optional
organizationName        = optional
organizationalUnitName  = optional
commonName              = supplied
emailAddress            = optional
EOF

touch index
echo 0001 >serial

SERVER=server
CLIENT=client

openssl req -newkey rsa:1024 -nodes -out $SERVER.csr -keyout $SERVER.key -subj "/CN=$SERVER/"
openssl ca -batch -config ca.conf -notext -in $SERVER.csr -out $SERVER.pem

openssl req -newkey rsa:1024 -nodes -out $CLIENT.csr -keyout $CLIENT.key -subj "/CN=$CLIENT/"
openssl ca -batch -config ca.conf -notext -in $CLIENT.csr -out $CLIENT.pem

生成的 ca.pem, server.pem, server.key 文件应该安装到接收日志的服务器端; 而生成的 ca.pem, client.pem, client.key 文件应该安装到发送日志的客户端。 这些文件的位置可以分别使用 /etc/systemd/journal-remote.conf/etc/systemd/journal-upload.conf 配置文件中的 TrustedCertificateFile=, ServerCertificateFile=, ServerKeyFile= 选项来指定。 这些文件的默认位置可以使用 systemd-journal-remote --helpsystemd-journal-upload --help 命令来显示。


参见

systemd-journal-remote(8), journalctl(1), systemd-journald.service(8), systemd-journal-gatewayd.service(8)