温馨提示×

如何过滤debian日志

小樊
39
2026-09-07 04:16:24
栏目: 智能运维

在 Debian 系统中,“日志”通常指 系统日志(syslog / journald)内核日志应用日志(如 Nginx、Apache) 等。下面按常见场景介绍如何“过滤”日志。


一、使用 journalctl(systemd 日志,推荐)

Debian 9+ 默认使用 systemd-journald

1️⃣ 按服务过滤

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

2️⃣ 按时间过滤

journalctl --since "2026-01-01 00:00:00"
journalctl --since "1 hour ago"
journalctl --since yesterday --until today

3️⃣ 按优先级(错误/警告)

journalctl -p err
journalctl -p warning

优先级:

emerg > alert > crit > err > warning > notice > info > debug

4️⃣ 结合 grep 过滤关键字

journalctl | grep "Failed password"
journalctl -u ssh | grep -i "authentication failure"

5️⃣ 实时跟踪 + 过滤

journalctl -f -u nginx
journalctl -f | grep "error"

二、使用传统 syslog 文件

日志通常在 /var/log/

文件 说明
/var/log/syslog 系统日志
/var/log/auth.log 登录、SSH
/var/log/kern.log 内核日志
/var/log/dpkg.log 软件安装

1️⃣ grep 过滤

grep "error" /var/log/syslog
grep "Failed password" /var/log/auth.log

2️⃣ 时间范围过滤

grep "Jan 20" /var/log/syslog

3️⃣ 实时监控

tail -f /var/log/syslog
tail -f /var/log/auth.log | grep sshd

三、按 IP / 用户 / 服务过滤(实战示例)

SSH 暴力破解分析

grep "Failed password" /var/log/auth.log
grep "192.168.1.100" /var/log/auth.log

Nginx 错误日志

grep -i "error" /var/log/nginx/error.log

查看某个用户的操作

grep "username" /var/log/auth.log

四、高级工具(可选)

1️⃣ awk 按列过滤

awk '$1=="Jan" && $2>20' /var/log/syslog

2️⃣ logwatch(每日汇总)

apt install logwatch
logwatch

3️⃣ lnav(日志浏览器)

apt install lnav
lnav /var/log/syslog

五、如果你告诉我:

  • ✅ 想过滤 哪种日志(系统 / SSH / Nginx / 内核)
  • ✅ 想按 什么字段(时间 / IP / 错误级别)
  • ✅ 是 实时 还是 历史

我可以给你精确的命令示例

0