Systemd 提供了强大的日志系统 journald,它收集并管理来自内核、系统服务和应用程序的日志。以下是关于 systemd 日志维护的全面指南。
journalctl
journalctl -u service_name.service
journalctl -f
journalctl --since "2023-01-01 00:00:00" --until "2023-01-02 12:00:00"
journalctl -p err
journalctl --disk-usage
编辑 /etc/systemd/journald.conf
文件:
[Journal]
SystemMaxUse=500M
RuntimeMaxUse=200M
然后重启 journald 服务:
systemctl restart systemd-journald
# 保留最近2天的日志
journalctl --vacuum-time=2d
# 保留500MB的日志
journalctl --vacuum-size=500M
# 保留1000条日志条目
journalctl --vacuum-files=1000
默认情况下,日志存储在 /run/log/journal
中,重启后会丢失。要永久保存:
mkdir -p /var/log/journal
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal
systemctl restart systemd-journald
journalctl -u nginx.service > nginx_logs.txt
journalctl -o json
journalctl _PID=1234
journalctl _UID=1000
journalctl -u failed.service -b --no-pager | grep -i fail
journalctl -b | grep "Startup finished in"
journalctl -u sshd -f | grep "Failed password"
配置 /etc/systemd/journald.conf
:
[Journal]
ForwardToSyslog=yes
然后配置 syslog 服务(如 rsyslog)将日志转发到远程服务器。
rm -rf /var/log/journal/*
systemctl restart systemd-journald
journalctl -o cat
journalctl -o verbose
通过合理配置和维护 systemd 日志系统,您可以有效地监控系统运行状况,快速定位问题,并保持日志文件在可控范围内。