journal使用日志
journal 是 systemd 的一个组件,它负责日志的查看与管理任务。该组件旨在作为对旧有日志守护进程(如 rsyslogd)的并行运行选择或替代方案,其开发初衷是为了解决与旧的日志记录有关的问题。它深度集成了系统的各个部分,支持多样化的日志记录技术和访问管理日志文件。
1. 查看日志文件
systemd-journald 管理的日志可以通过多种方式进行查看。
-
使用
journalctl命令:
journalctl是查看和管理systemd-journald日志的主要工具。例如,要查看所有日志(包括系统组件和用户产生的消息):journalctl要查看特定服务的日志,可以使用
-u选项:journalctl -u sshd.service -
限制输出:
可以通过添加时间范围、优先级等参数来限制journalctl的输出。例如,查看今天的日志:journalctl --since today
2. 访问控制
journalctl支持基于角色的访问控制,通过配置 /etc/systemd/journald.conf 文件中的 `AccessControls指令来启用。
-
启用访问控制:
在/etc/systemd/journald.conf文件中设置AccessControls=yes,然后重启systemd-journald服务或整个系统以应用更改。 -
配置用户和组的访问权限:
可以通过在/etc/systemd/journald.conf中添加ForwardToSyslog=no(防止日志被转发到syslog)和配置/etc/systemd/journald.conf.d/目录下的文件来详细指定哪些用户和组可以访问日志。
3. 使用Live view
journalctl支持实时查看日志更新,类似于 tail -f。
-
实时查看日志:
使用-f或--follow选项来实时查看日志更新:journalctl -f该命令返回十个最新的日志行列表。journalctl工具将保持运行,等待新的消息并立即显示他们。
4. 过滤消息
journalctl 提供了强大的过滤功能,允许用户根据各种条件(如时间、优先级、服务名等)来过滤日志消息。
-
基于优先级的过滤:
使用-p或--priority选项来过滤特定优先级的日志。例如,仅查看错误和警告消息:journalctl -p err..warning -
基于字段的过滤:
可以使用_SYSTEMD_UNIT、_COMM等字段来过滤特定服务或进程的日志。例如,查看所有由sshd生成的日志:journalctl _COMM=sshd
5. 使能持续存储
systemd-journald 默认会限制日志文件的存储大小,并在达到限制时删除旧日志。要调整这些设置以实现持续存储,可以编辑 /etc/systemd/journald.conf 文件。
-
调整存储限制:
修改SystemMaxUse=和RuntimeMaxUse=参数来设置日志文件的最大大小。例如,设置系统日志最大为10GB:SystemMaxUse=10G -
配置日志轮转:
虽然systemd-journald不直接支持传统意义上的日志轮转,但你可以通过配置外部脚本或使用logrotate(针对systemd-journald导出的日志)来定期清理或归档旧日志。 -
导出日志:
使用journalctl的导出功能将日志保存到文件中,以便长期存储或分析。例如,导出特定服务的日志到文件中:journalctl -u sshd.service > sshd_logs.txt通过以上步骤,你可以有效地使用
systemd-journald组件来管理和分析Linux系统的日志。

5526

被折叠的 条评论
为什么被折叠?



