温馨提示×

怎样提取Debian系统日志

小樊
42
2026-07-11 13:05:38
栏目: 智能运维

在 Debian 系统中,日志提取主要依赖 systemd-journald 和传统的 rsyslog/syslog 机制。下面按“常用 → 进阶 → 自动化”的方式给你一个完整说明。


一、查看和提取系统日志的常用方法

1️⃣ 使用 journalctl(推荐,systemd 系统)

Debian 默认使用 systemd,日志由 systemd-journald 管理。

查看所有日志

journalctl

查看本次启动的日志

journalctl -b

查看上一次启动的日志

journalctl -b -1

实时查看日志(类似 tail -f)

journalctl -f

按服务提取日志

journalctl -u ssh.service
journalctl -u nginx.service

按时间范围提取

journalctl --since "2025-01-01" --until "2025-01-31"
journalctl --since "1 hour ago"

导出为文本文件

journalctl -u nginx.service > nginx.log

2️⃣ 查看传统日志文件(/var/log)

如果系统仍使用 rsyslog,日志以文件形式存在。

常见日志路径

/var/log/syslog        # 通用系统日志
/var/log/messages      # 部分系统
/var/log/auth.log      # 登录、sudo、SSH
/var/log/kern.log      # 内核日志
/var/log/dpkg.log      # 软件安装日志
/var/log/apt/

查看示例

cat /var/log/syslog
less /var/log/syslog
tail -f /var/log/auth.log

提取某一天的日志

grep "2025-01-21" /var/log/syslog > today.log

二、按场景提取日志

✅ 查看内核日志

dmesg
dmesg -T        # 显示可读时间
dmesg > dmesg.log

✅ 查看 SSH 登录日志

journalctl -u ssh
# 或
grep sshd /var/log/auth.log

✅ 查看某个时间段的错误日志

journalctl -p err..alert --since "2025-01-20"

✅ 查看某个进程崩溃日志

journalctl -u 服务名
coredumpctl list
coredumpctl info <PID>

三、日志导出与归档

导出 journal 日志为文件

journalctl --no-pager > system.log
journalctl -u nginx > nginx.log

打包日志(用于排查问题)

tar czf logs.tar.gz /var/log

四、远程或自动化提取(进阶)

1️⃣ 使用 rsyslog 发送远程日志

编辑:

/etc/rsyslog.conf

添加:

*.* @@logserver:514

2️⃣ 使用 journal-remote(systemd)

systemd-journal-remote

五、常见问题排查

❓ 没有 /var/log/syslog?

可能未安装 rsyslog:

sudo apt install rsyslog
sudo systemctl enable --now rsyslog

❓ journalctl 没有历史日志?

可能日志被限制大小:

journalctl --disk-usage

调整:

/etc/systemd/journald.conf
# SystemMaxUse=200M

六、快速总结(推荐命令)

需求 命令
查看系统日志 journalctl
实时日志 journalctl -f
某个服务 journalctl -u 服务名
传统日志 /var/log/syslog
导出日志 journalctl > file.log

如果你能说明 具体用途(如:排查宕机、SSH 被爆破、程序崩溃、取证、合规审计),我可以给你一套精准提取方案或脚本

0