据我理解,systemd-journald
创建了一对sockets
,它在其中发布日志事件。
# systemctl cat systemd-journald.socket | egrep -v '^ *#'
[Unit]
Description=Journal Socket
Documentation=man:systemd-journald.service(8) man:journald.conf(5)
DefaultDependencies=no
Before=sockets.target
IgnoreOnIsolate=yes
[Socket]
ListenStream=/run/systemd/journal/stdout
ListenDatagram=/run/systemd/journal/socket
SocketMode=0666
PassCredentials=yes
PassSecurity=yes
ReceiveBuffer=8M
Service=systemd-journald.service
那么我该如何解读这些事件呢?我试过:
# netcat -U /run/systemd/journal/stdout
# echo $?
0
# netcat -uU /run/systemd/journal/socket
netcat
立即与stdout
断开连接(exit status
是干净的)。netcat
连接到socket
,但不注册任何事件--我可以使用命令journalctl -f -n0
确认这一点,该命令显示正在进行的事情,而socket
输出是空的。
发布于 2022-10-21 17:15:00
在这种情况下,您可以使用systemd-journal-remote
:
systemd-journal-remote
是一个命令,用于接收序列化的日志事件并将它们存储到日志文件中。输入流在期刊导出格式中,即类似于journalctl output=export
的输出。为了在网络上传输,这个序列化流通常是通过HTTPS连接进行的。
https://unix.stackexchange.com/questions/400321
复制相似问题