关于Journal Log

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Journal Log相关的知识,希望对你有一定的参考价值。

参考技术A

Journal是 systemd 为自己提供的日志系统。使用systemd日志,无须额外提供日志服务(syslog)。读取日志的命令:

默认情况下(当 Storage= 在文件 /etc/systemd/journald.conf 中被设置为 auto ),日志记录将被写入 /var/log/journal/ 。该目录是 systemd 软件包的一部分。若被删除,systemd 不会 自动创建它,直到下次升级软件包时重建该目录。如果该目录缺失,systemd 会将日志记录写入 /run/systemd/journal 。这意味着,系统重启后日志将 丢失

Systemd 日志事件提示信息的记录按照 优先级 和 功能 进行分离,符合经典的 BSD syslog 协议风格([Syslog], RFC 5424 )。

journalctl 可以根据特定字段过滤输出。

如果按上面的操作保留日志的话,默认日志最大限制为所在文件系统容量的 10%,即:如果 /var/log/journal 储存在 50GiB 的根分区中,那么日志最多存储 5GiB 数据。可以修改配置文件指定最大限制。如限制日志最大 50MiB:

还可以通过配置片段而不是全局配置文件进行设置:

修改配置后要立即生效,需 重启 systemd-journald.service 服务。

详情参见 journald.conf(5) .

systemd 提供了 socket /run/systemd/journal/syslog ,以兼容传统日志服务。所有系统信息都会被传入。要使传统日志服务工作,需要让服务链接该 socket,而非 /dev/log ( 官方说明 )。

journald.conf 使用 no 转发socket . 为了使 syslog-ng 配合 journald , 你需要在 /etc/systemd/journald.conf 中设置 ForwardToSyslog=yes . 参阅 Syslog-ng#Overview 了解更多细节.
journald-syslog.c

如果选择使用 rsyslog , 因为 rsyslog 从日志中 直接 读取Log ( sd_journal_open / sd_journal_get_data ),所以不再需要改变那个选项.

rsyslog/plugins/imjournal/imjournal.c

systemd/Journal (简体中文)
systemd-journald.socket (8) - Linux Man Pages

以上是关于关于Journal Log的主要内容,如果未能解决你的问题,请参考以下文章

Journal英语二周练习·10SFEP201707231

关于Kubernetes image垃圾镜像容器的回收

.db-journal如何执行

ceph journal操作

Journal工作原理

Mongodb之journal与oplog