systemd-journald日志管理服务详解
journald参考文档:
journald.confhttps://www.freedesktop.org/software/systemd/man/latest/journald.conf.html
Amazonlinux2023系统默认不再安装rsyslog,因此在amazonlinux2中的诸多日志文件例如/var/log/message默认不可用。
AWS官方文档建议使用systemd的journalctl接口和相关包文件。
systemd-journald:
journald系统主要由三个系统日志服务组件组成:
守护程序:systemd-journald
配置文件:/etc/systemd/journald.conf
日志搜索程序:journalctl
配置文件主要配置:
配置文件路径:/etc/systemd/journald.conf
所有选项都在[Journal]部分配置
[Journal] #Storage=auto
Storage可选的值有:volatile、persistent、auto、none
volatile:日志数据文件存储在内存中,即/run/log/journal下
persistent:日志数据文件存储在磁盘中,即/var/log/journal下
auto:日志数据文件存储在磁盘中,即/var/log/journal下,但是这个目录必须存在
none:关闭存储,丢弃所有日志数据
[Journal] Compress=yes Seal=yes SplitMode=none
Compress:布尔值,默认启用,日志数据会被压缩
Seal:布尔值,数据加密
SplitMode:可选值有:uid和none,uid会将日志文件按用户uid进行切割,none则所有日志记录在一个文件中,但是非root用户无法访问自己的日志数据。
[Journal] SystemMaxUse=50M SystemMaxFileSize=50M SystemMaxFiles=1 RuntimeMaxUse=50M RuntimeMaxFileSize=50M RuntimeMaxFiles=1
SystemMaxUse:日志最多可以使用多少空间,默认为自己文件系统的10%
SystemMaxFileSize:日志文件最大大小
SystemMaxFiles:保留的最多文件数
RuntimeMaxUse=50M:存储在内存中的日志文件大小
RuntimeMaxFileSize=50M:存储在内存中最大文件大小
RuntimeMaxFiles=1:存储的最多文件数
journalctl主要用法
查看所有系统文件:journalctl
默认是分页显示的,可以正则匹配,输入? 内容进行匹配
只查看内核日志:journalctl -k
查看某个服务日志:journalctl -u mariadb
-u 指定服务单元,systemd下面的所有service都可以指定
按时间查找日志:
几种写法:
journalctl --since "2023-11-01 00:00:00" --until "2023-11-03 00:00:00"
journalctl --since yesterday
journalctl --since 09:00
journalctl --since 09:00 --until "1 hour ago"
journalctl默认以当前系统时间显示日志,可以指定时区显示
查看最新的日志:journalctl -r
按日志级别查找日志:journalctl -p
可以按数字:journalctl -p 0 (0-8)
可以按等级:emerg alert crit err warning notice info debug none
查看某个用户的日志:
journalctl _UID=1000 --since today