当前位置: 首页 > 文档资料 > systemd 中文手册 >

systemd-journal-remote.service 中文手册

优质
小牛编辑
139浏览
2023-12-01

名称

systemd-journal-remote.service, systemd-journal-remote.socket, systemd-journal-remote — 通过网络接收远程日志

大纲

systemd-journal-remote.service

systemd-journal-remote.socket

/usr/lib/systemd/systemd-journal-remote [OPTIONS...] [-o/--output=DIR|FILE] [SOURCES...]

描述

systemd-journal-remote 用于接收经过序列化的远程日志,并将其保存到本机的日志池中。输入流必须符合Journal Export Format格式,也就是 journalctl --output=export 命令的输出格式。经过序列化之后的日志流一般使用 HTTPS 连接进行网络传输。

系统服务 systemd-journal-remote.service 使用systemd-journal-remote 工具监听连接。systemd-journal-remote.socket 用于配置systemd-journal-remote.service 监听的网络地址(默认监听 19532 端口)。接受哪些连接、如何存储接收到的日志数据,可以通过journal-remote.conf(5)配置文件来设置。

日志源(SOURCES)

日志源既可以是"主动源"(systemd-journal-remote 主动向远端发起请求并拉取日志),也可以是"被动源"(systemd-journal-remote被动等待远端连接并接收远端推送的日志)。

systemd-journal-remote 能够同时读取多个日志流,并将他们存储到输出文件(日志池)中。对于"主动源"来说,每一个"源"就是一个日志流;对于"被动源"来说,每一个连接就是一个日志流。网络套接字可以被配置为"accept"模式(单个连接) 或者"listen"模式(多个连接,每个连接都是一个日志流)。

如果所有连接都已经断开,并且不能再创建新连接(没有监听套接字),那么systemd-journal-remote 将会自动退出。

"主动源"可以使用下列方式指定:

[SOURCES...]

将 SOURCES 参数设为 - 表示从标准输入读取日志流。将 SOURCES 参数设为文件路径 表示打开这些文件并从中读取日志流。

--url=ADDRESS

使用 --url=ADDRESS 选项,表示使用 HTTP 协议从 ADDRESS 读取日志流。此处的URL必须指向远程 systemd-journal-gatewayd 实例的根目录(例如 http://some.host:19531/ 或 https://some.host:19531/)。

--getter='PROG [OPTIONS...]'

指定用于读取远程日志的外部程序。生成的日志流必须发送到标准输出(STDOUT)。

例子:

--getter='curl "-HAccept: application/vnd.fdo.journal" https://some.host:19531/'
--getter='wget --header="Accept: application/vnd.fdo.journal" -O- https://some.host:19531/'

"被动源"可以使用下列方式指定:

--listen-raw=ADDRESS

ADDRESS 必须是一个适用于 ListenStream= 的地址(参见 systemd.socket(5))。systemd-journal-remote 将在此地址的套接字上监听并等待远程连接。每一个连接都将被视为一个日志流。

--listen-http=ADDRESS, --listen-https=ADDRESS

ADDRESS 必须是 一个负整数("-"后面的整数将被视为文件描述符的编号),或者是一个适用于 ListenStream= 的地址(参见 systemd.socket(5))。对于第一种情况(负整数),服务器默认在 19532 端口监听,匹配的文件描述符必须被 $LISTEN_FDS/$LISTEN_PID 继承。对于第二种情况(套接字地址),将会根据 --listen-http=--listen-https= 的指示,在此端口上启动 HTTP 或 HTTPS 服务。目前,仅支持对 /upload 路径的 POST 请求("Content-Type: application/vnd.fdo.journal")。

$LISTEN_FDS

systemd-journal-remote 支持 $LISTEN_FDS/$LISTEN_PID 协议。一般情况下,打开从套接字启动机制继承的套接字,与打开上文 --listen-raw= 指定的套接字完全相同。但是,如果此变量的值来自于 --listen-http=-n--listen-https=-n 选项的值(负整数),那么将会使用此文件描述符启动 HTTP 或 HTTPS 服务,并且必须通过 HTTP 协议建立连接。

--key=

PEM 格式的 SSL 私钥文件的路径。 默认值是 /etc/ssl/private/journal-remote.pem 。 此选项仅可与 --listen-https= 一起使用。

--cert=

PEM 格式的 SSL 证书文件的路径。 默认值是 /etc/ssl/certs/journal-remote.pem 。 此选项仅可与 --listen-https= 一起使用。

--trust=

PEM 格式的 SSL CA 证书文件的路径。 特殊值 all 表示 禁止检查证书的有效性。 默认值是 /etc/ssl/ca/trusted.pem 。 此选项仅可与 --listen-https= 一起使用。

--gnutls-log=

接受一个逗号分隔的 gnutls 日志类别列表。 此选项可与 --listen-http=--listen-https= 一起使用。

日志池

本机上用于保存远程日志的文件或目录被称为"日志池"。具体位置可以通过 -o--output= 选项指定。

--output=FILE

使用指定的 FILE 文件作为保存远程日志的"日志池"。文件的名称必须以 .journal 作为后缀。如果指定的文件不存在,那么将会被自动创建。在必要的情况下(例如日志文件损坏或大小超限),现有的老日志文件会被按照日志滚动规则改名,然后再创建一个全新的日志文件取代它。

--output=DIR

使用指定的 DIR 目录作为保存远程日志的"日志池"。日志文件将会存储在此目录下。此目录必须是一个已经存在的目录。在必要的情况下(例如日志文件损坏或大小超限),现有的老日志文件会被按照日志滚动规则改名,然后再创建一个全新的日志文件取代它。对于 DIR 目录下日志文件的名称,将按照下文所描述的规则生成。

如果未设置 --output= 选项,那么将使用 /var/log/journal/remote/ 目录作为"日志池"。如果没有明确指定日志文件的名称,那么将直接在"日志池"目录下创建日志文件,并且日志文件将按照remote-hostname.journal格式命名,其中的 hostname是经过转义之后的日志源主机名(如果无法获取主机名则直接使用IP地址)。

如果通过 SOURCES 参数或者 --getter= 选项指定了一个"主动源",那么必须明确设置日志文件的名称。

选项(OPTIONS)

可以使用的命令行选项如下:

--split-mode

设为 none 表示仅使用一个单独的日志文件。设为 host 表示分别为每一个远程主机(日志源) 使用一个专属的日志文件。

如果通过 SOURCES 参数或者 --getter= 选项指定了一个"主动源",那么必须明确设置日志文件的名称,同时必须将此选项设为 none

--compress [BOOL]

默认值 "yes" 表示将日志流使用 XZ 压缩之后再存储到日志文件中。

--seal [BOOL]

设为 "yes" 表示 使用FSS(Forward Secure Sealing)对日志数据进行周期性签名。默认值是 "no"

-h, --help

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

--version

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

例子

将本地日志复制到另一个不同的日志目录中:

journalctl -o export | systemd-journal-remote -o /tmp/dir/foo.journal -

从远程systemd-journal-gatewayd实例读取日志流,并将读取到的日志存储在/var/log/journal/remote/remote-some.host.journal 文件中:

systemd-journal-remote --url http://some.host:19531/

从远程systemd-journal-gatewayd实例读取本次启动的日志事件以及后继日志,并将读取到的日志存储在/var/log/journal/remote/remote-some.host.journal 文件中:

systemd-journal-remote --url http://some.host:19531/entries?boot&follow

参见

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