温馨提示×

debian日志为何不记录

小樊
38
2026-10-24 16:02:14
栏目: 智能运维

在 Debian 系统中,“日志不记录”通常不是单一原因,而是日志系统配置、服务状态或权限问题导致的。下面按最常见原因逐条说明,并给出排查方法。


一、Debian 日志系统基础(先确认用的是哪个)

Debian 常见日志方案有两种:

  1. rsyslog(传统,最常见)
  2. systemd-journald(systemd 自带)

日志位置:

  • /var/log/syslog
  • /var/log/messages
  • /var/log/auth.log
  • journalctl(内存或 /var/log/journal)

二、常见原因及排查

1️⃣ rsyslog 服务未运行(最常见)

systemctl status rsyslog

如果未运行:

systemctl start rsyslog
systemctl enable rsyslog

✅ 未启动就不会写 /var/log/*


2️⃣ 日志被“关闭”或重定向到 /dev/null

检查 rsyslog 配置:

grep -R "null" /etc/rsyslog.conf /etc/rsyslog.d/

例如:

*.* /dev/null

或:

*.* stop

3️⃣ 日志级别设置过高

如果配置成只记录 crit 以上:

*.crit /var/log/syslog

普通 info 日志不会写。

查看:

grep -R "*.info" /etc/rsyslog.conf

4️⃣ 磁盘满 / inode 满

df -h
df -i

如果 100%:

  • 日志无法写入
  • 旧日志可能被清掉

5️⃣ 日志文件权限错误

ls -l /var/log/syslog

正常应为:

-rw-r----- 1 root adm

修复:

chown root:adm /var/log/syslog
chmod 640 /var/log/syslog

6️⃣ systemd 服务没用 syslog

有些程序只输出到 journalctl

查看:

journalctl -u 服务名

如果这里有,但 /var/log 没有,是正常的。


7️⃣ journald 没持久化

默认 journal 在内存中:

cat /etc/systemd/journald.conf | grep Storage

若:

Storage=volatile

改为:

Storage=persistent

然后:

mkdir -p /var/log/journal
systemctl restart systemd-journald

8️⃣ 日志被 logrotate 清掉

ls -lh /var/log/

可能已被轮转或删除。


三、快速自检清单 ✅

systemctl status rsyslog
df -h
df -i
ls -l /var/log
journalctl -xe

四、如果你愿意,可告诉我:

  • Debian 版本(如 11 / 12)
  • 是系统日志还是某个程序日志
  • 用的是 rsyslog 还是 journald
  • 具体“不记录”的表现(完全没文件?有文件但空?)

我可以直接帮你定位配置问题。

0 踩