journal(五)之systemd-journal-upload.service,systemd-journal-remote.service,systemd-journal-gatewayd

22 篇文章 0 订阅
6 篇文章 0 订阅

写在前面

本文主要是详细介绍了linux系统中systemd管理器中的journal相关的日志管理相关的服务,systemd-journal-upload.service,systemd-journal-remote.service, systemd-journal-gatewayd.service主要翻译自英文原文文档(develop版本,截止到文章记录,最新版本是systemd 255)。

主要是以下页面的翻译:
systemd-journal-upload.service:
https://www.freedesktop.org/software/systemd/man/latest/systemd-journal-upload.service.html#

systemd-journal-remote.service:
https://www.freedesktop.org/software/systemd/man/latest/systemd-journal-remote.service.html#

systemd-journal-gatewayd.service:
https://www.freedesktop.org/software/systemd/man/latest/systemd-journal-gatewayd.service.html#

其他相关文档请参考:systemd专栏

在这里插入图片描述
在这里插入图片描述

systemd-journal-upload.service

概述

systemd-journal-upload.servicesystemd-journal-upload

通过网络发送日志消息

 systemd-journal-upload.service
/usr/lib/systemd/systemd-journal-upload [OPTIONS...] [-u/--url=URL] [SOURCES...]
/usr/lib/systemd/systemd-journal-upload [选项...][-u/--url= URL ][来源...]

描述

systemd-journal-upload 会将日志记录上传到 --url= 指定的 URL

该程序从一个或多个日志文件中读取日志记录,类似于journalctl(1) 。除非受到下面指定的选项之一的限制,否则程序运行的用户可以访问的所有日志记录都将被上传,然后程序将等待并在新记录可用时发送它们。

systemd-journal-upload 传输日志文件的原始内容,并使用 HTTP 作为传输协议。
systemd-journal-upload.service 是使用 systemd-journal-upload日志记录上传到服务器的系统服务。它使用 journal-upload.conf(5) 中的配置。至少必须指定 URL= 选项。

选项

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

--url=[http://]URL[:PORT]

上传到指定地址。 URL 可以只指定主机名,也可以同时指定协议和主机名。 https 是默认值。 端口号可以在冒号 (“ : ”) 后指定,否则将默认使用端口号为 19532

–system, --user

--system, --user
将上传的日志记录限制为来自系统服务和内核的日志记录,或来自当前用户服务的日志记录。这与 journalctl(1) 的含义 --system --user 选项相同。如果两者都未指定,则上传所有可访问的日志记录。

-m, --merge

-m, --merge
上传所有可用日志(包括其他机器)中交错的条目。这与 Journalctl(1)--merge 选项具有相同的含义。

–namespace=NAMESPACE

--namespace=NAMESPACE
将日志命名空间标识符字符串作为参数。从指定的日志命名空间 NAMESPACE 而不是默认命名空间上传条目。这与 Journalctl(1) 的 --namespace= 选项具有相同的含义。

-D, --directory=DIR

-D, --directory=DIR
将目录路径作为参数。从指定的日志目录 DIR (而不是默认运行时和系统日志路径)上传条目。这与 journalctl(1) --directory= 的选项具有相同的含义。

–file=GLOB

--file=GLOB
将文件 glob 作为参数。从匹配 GLOB 的指定日志文件中上传条目,而不是默认运行时和系统日志路径。可以多次指定,在这种情况下,文件将适当地交错。这与 journalctl(1) --file= 的选项具有相同的含义。

–cursor=

--cursor=
从传递的游标指定的日志记录中的位置上传条目。这与 journalctl(1) --cursor= 的选项具有相同的含义。

–after-cursor=

--after-cursor=
从日志记录中此光标指定位置之后的位置上传条目。这与 journalctl(1) --after-cursor= 的选项具有相同的含义。

–save-state[=PATH]

--save-state[=PATH]
从日志中光标指定位置之后的位置上传条目,该位置保存在 PATH 下的文件中(默认为 /var/lib/systemd/journal-upload/state )。成功上传条目后,用该条目的光标更新此文件。

–follow[=BOOL]

--follow[=BOOL]
如果设置为 yes,则 systemd-journal-upload 等待输入。

–key=

--key=
采用 PEM 格式的 SSL 密钥文件的路径,或- 。如果 设置为-,则将禁用客户端证书身份验证检查。默认值为 /etc/ssl/private/journal-upload.pem

–cert=

--cert=
采用 PEM 格式的 SSL 证书文件的路径,或 - 。如果 设置为-,则将禁用客户端证书身份验证检查。默认值为 /etc/ssl/certs/journal-upload.pem 。

–trust=

--trust=
采用 PEM 格式的 SSL CA 证书文件的路径,或 - / all 。如果设置为 - / all ,则证书检查将被禁用。默认值为 /etc/ssl/ca/trusted.pem

-h, --help

打印简短的帮助文本并退出。

–version

--version
打印一个简短的版本字符串并退出。

systemd-journal-remote.service

概述

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...]
/usr/lib/systemd/systemd-journal-remote [选项...][-o/--输出= DIR | FILE ] [来源...]

描述

systemd-journal-remote 是一个命令,用于接收序列化的日志事件并将其存储到日志文件中。输入流采用日志导出格式,即类似于 journalctl --output=export 的输出。对于通过网络传输,此序列化流通常通过 HTTPS 连接传输。
systemd-journal-remote.service 是使用 systemd-journal-remote 侦听连接的系统服务。 systemd-journal-remote.socket 配置 systemd-journal-remote.service 侦听的网络地址。默认情况下,使用端口 19532。接受哪些连接以及如何存储接收到的数据 可以通过 journal-remote.conf(5) 配置文件进行配置。

来源

源可以是“主动的”(systemd-journal-remote 请求并提取数据),也可以是“被动的”(systemd-journal-remote 等待连接,然后接收另一端推送的事件)。
systemd-journal-remote 一次可以读取多个事件流。它们将在输出文件中交错。在“主动”连接的情况下,每个“源”是一个流,在“被动”连接的情况下,每个连接都可以产生一个单独的流。套接字可以配置为“接受”模式(即只有一个连接)或“侦听”模式(即多个连接,每个连接产生一个流)。
当没有更多的连接,并且无法创建更多连接(没有侦听套接字)时,systemd-journal-remote 将退出。
可以通过以下方式指定活动源:
[SOURCES...]
当作为位置参数给出- 时 ,将从标准输入中读取事件。其他位置参数将被视为要打开和读取的文件名。

–url=ADDRESS

--url=ADDRESS
使用该 --url=ADDRESS 选项,将使用 HTTP 从 ADDRESS 检索事件。这个 URL 应该引用远程 systemd-journal-gatewayd(8) 实例的根目录,例如 http://some.host:19531/ 或 https://some.host:19531/。

–getter=‘PROG [OPTIONS…]’

--getter='PROG [OPTIONS...]'
为了检索数据而调用的程序。必须在标准输出上生成日志事件流。
举例:

--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
--listen-raw=ADDRESS
--listen-http=ADDRESS, --listen-https=ADDRESS

ADDRESS 必须是负整数,在这种情况下,它将被解释为(否定的)文件描述符编号,或者是适合于 ListenStream= (c.f. systemd.socket(5)) 的地址。在第一种情况下,服务器默认侦听端口 19532,并且必须通过 $LISTEN_FDS / $LISTEN_PID 继承匹配的文件描述符。在第二种情况下,将在此端口上生成一个 HTTP 或 HTTPS 服务器,分别为 --listen-http= --listen-https= 。目前,仅支持 /upload 对带有“ Content-Type: application/vnd.fdo.journal ” 的 POST 请求。

$LISTEN_FDS

systemd-journal-remote 支持 $LISTEN_FDS / $LISTEN_PID 协议。通过套接字激活继承的打开套接字的行为与上述打开 --listen-raw= 的套接字类似,除非它们在或 --listen-http=-n --listen-https=-n 上面指定为参数。在后一种情况下,将使用此描述符生成 HTTP 或 HTTPS 服务器,并且必须通过 HTTP 协议建立连接。

–key=

--key=
采用 PEM 格式的 SSL 密钥文件的路径。默认值为 /etc/ssl/private/journal-remote.pem 。此选项可与 --listen-https= 一起使用。如果路径引用文件系统中的 AF_UNIX 流套接字,则会与该套接字建立连接,并从中读取密钥。

–cert=

--cert=
采用 PEM 格式的 SSL 证书文件的路径。默认值为 /etc/ssl/certs/journal-remote.pem 。此选项可与 --listen-https= 一起使用。如果路径引用文件系统中的 AF_UNIX 流套接字,则会与该套接字建立连接并从中读取证书。

–trust=

--trust=
采用 PEM 格式的 SSL CA 证书文件的路径,或 all ,如果设置了all,则证书检查将被禁用。默认值为 /etc/ssl/ca/trusted.pem 。此选项可与 --listen-https= 一起使用。如果路径引用文件系统中的 AF_UNIX 流套接字,则会与该套接字建立连接并从中读取证书。

–gnutls-log=

--gnutls-log=
采用逗号分隔的 gnutls 日志记录类别列表。此选项可以与 --listen-http=--listen-https= 一起使用。

Sinks 接收器

输出日志的位置可以用 -o 或 --output= 指定。
-o FILE, --output=FILE
写入此日志文件。文件名必须以 .journal .如果文件不存在,则将创建该文件。如有必要(日志文件已满或已损坏),将按照正常的日志规则重命名该文件,并创建一个新的日志文件来代替它。
-o DIR, --output=DIR
将在目录下创建日志文件 DIR 。该目录必须存在。如有必要(日志文件过大或损坏),日志文件将按照正常的日志规则轮换。下面的文件名 DIR 将使用下面描述的规则生成。
如果 --output= 不使用, var/log/journal/remote/ 则将使用输出目录。如果未指定输出文件,则将在所选目录下创建日志文件。将调用 remote-hostname.journal 文件,其中 hostname 部分是连接源端点的转义主机名,如果无法确定主机名,则调用数字地址。
如果“活动”源由位置参数或 --getter= 选项给出,则必须始终显式给出输出文件名。
选项

–split-mode

--split-mode
none 或 host 之一。对于第一个,仅使用一个输出日志文件。对于后者,根据连接的其他终结点的主机名使用单独的输出文件。
如果“活动”源由位置参数或 --getter= 选项给出,则必须始终显式给出输出文件名,并且只 none 允许使用输出文件名。

–compress [BOOL]

--compress [BOOL]
如果设置为“ yes ”,则使用 XZ 压缩日志中的数据。默认值为 “ yes ”。

–seal [BOOL]

--seal [BOOL]
如果设置为“ yes ”,则使用正向安全密封定期对日志中的数据进行签名。默认值为 “ no ”。

-h, --help

–version

--version

示例

将本地日志事件复制到其他日志目录:
journalctl -o export | systemd-journal-remote -o /tmp/dir/foo.journal -
从远程 systemd-journal-gatewayd(8) 实例中检索所有可用事件,并将它们存储在: /var/log/journal/remote/remote-some.host.journal

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

检索当前引导事件并等待来自远程 systemd-journal-gatewayd(8) 实例的新事件,并将它们存储在 `/var/log/journal/remote/remote-some.host.journal ``

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

https://www.freedesktop.org/software/systemd/man/latest/systemd-journal-gatewayd.service.html#

systemd-journal-gatewayd.service

概述

systemd-journal-gatewayd.service, systemd-journal-gatewayd.socket, systemd-journal-gatewayd — 日志事件的 HTTP 服务器

systemd-journal-gatewayd.service

systemd-journal-gatewayd.socket

/usr/lib/systemd/systemd-journal-gatewayd [OPTIONS...]

/usr/lib/systemd/systemd-journal-gatewayd [选项...]

描述

systemd-journal-gatewayd 通过网络提供日志事件。客户端必须使用 HTTP 进行连接。默认情况下,服务器侦听端口 19531。如果 --cert= 指定,则服务器需要 HTTPS 连接。
该程序由 systemd(1) 启动,并期望接收一个套接字。使用 systemctl start systemd-journal-gatewayd.socket 启动服务,并使用 systemctl enable systemd-journal-gatewayd.socket 在启动时启动服务。

选项

–cert=

--cert=
指定要从中读取服务器证书的文件或 AF_UNIX 流套接字的路径。证书必须采用 PEM 格式。此选项将 systemd-journal-gatewayd 切换到 HTTPS 模式,并且必须与--key= 一起使用。

–key=

--key=
指定文件或 AF_UNIX 流套接字的路径,以读取与使用 --cert= from 指定的证书对应的密钥服务器密钥。密钥必须采用 PEM 格式。

–trust=

--trust=
指定要从中读取 CA 证书的文件或 AF_UNIX 流套接字的路径。证书必须采用 PEM 格式。

–system, --user

--system, --user
将提供的记录限制为来自系统服务和内核的记录,或来自当前用户服务的记录。这与 journalctl(1) 的含义 --system 和 --user 选项相同。如果两者都未指定,则提供所有可访问的记录。

-m, --merge

-m, --merge
提供与所有可用日志(包括其他计算机)交错的条目。这与 journalctl(1) --merge 的选项具有相同的含义。

-D DIR, --directory=DIR

-D DIR, --directory=DIR
将目录路径作为参数。如果指定,systemd-journal-gatewayd 将提供指定的日志目录 DIR 而不是默认的运行时和系统日志路径。

–file=GLOB

--file=GLOB
将文件 glob 作为参数。提供来自指定日志文件的条目, GLOB 而不是默认运行时和系统日志路径。可以多次指定,在这种情况下,文件将适当地交错。这与 journalctl(1) --file= 的选项具有相同的含义。

-h, --help

–version

--version

支持的 URL

可识别以下 URL:

/browse

交互式浏览。

/entries[?option1&option2=value…]

检索各种格式的事件。
HTTP Accept header: 的部分决定了格式。支持的值如下所述。
HTTP Accept header Range: 的部分决定了返回的事件范围。支持的值如下所述。
GET 参数可用于修改返回的事件。支持的参数如下所述。

/machine

返回描述计算机的 JSON 结构。
例:

{ "machine_id" : "8cf7ed9d451ea194b77a9f118f3dc446",
  "boot_id" : "3d3c9efaf556496a9b04259ee35df7f7",
  "hostname" : "fedora",
  "os_pretty_name" : "Fedora 19 (Rawhide)",
  "virtualization" : "kvm",
  …}

/fields/FIELD_NAME

返回日志中存在的此字段的值列表。
Accept header
Accept: format

text/plain

默认值。类似 syslog 的纯文本输出,每个日志条目一行(如 journalctl --output short)。

application/json

条目的格式为 JSON 数据结构,每行一个(如 journalctl --output json)。有关详细信息,请参阅日志JSON 格式。

text/event-stream

条目的格式为 JSON 数据结构,以适合服务器发送事件的格式包装(如 journalctl --output json-sse)。

application/vnd.fdo.journal

条目被序列化为适合备份和网络传输的二进制(但主要是基于文本的)流(如 journalctl --output export)。有关详细信息,请参阅日志记录导出格式。

Range header

Range: entries=cursor[[:num_skip]:num_entries]
其中 cursor 是光标字符串, num_skip 是整数, num_entries 是无符号整数。
范围默认为所有可用事件。

URL GET parameters

follow
等待新事件(如 journalctl --follow ,但返回的事件数不受限制)。

discrete
测试指定的游标是否引用了日志中的条目。仅返回此条目。

boot
将事件限制为系统的当前引导(如 journalctl -b)。

KEY=match
匹配日志记录字段。参见 systemd.journal-fields(7)。

Examples 示例

以日志导出格式从本地日志中检索此引导中的事件:

curl --silent -H'Accept: application/vnd.fdo.journal' \
       'http://localhost:19531/entries?boot'

侦听核心转储:
curl 'http://localhost:19531/entries?follow&MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1'

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值