温馨提示×

怎样过滤debian日志内容

小樊
32
2026-09-01 03:34:10
栏目: 智能运维

在 Debian 系统中,“日志”通常指 系统日志(rsyslog / journald)应用日志(如 Nginx、Apache)自定义文本日志文件。下面按常见场景说明如何“过滤”日志内容。


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

Debian 默认使用 systemd-journald,日志可用 journalctl 查看。

1. 按服务过滤

journalctl -u nginx
journalctl -u ssh.service

2. 按时间过滤

journalctl --since "2024-01-01 00:00:00"
journalctl --since "1 hour ago"
journalctl --until "2024-01-02"

3. 按优先级(错误日志)

journalctl -p err
journalctl -p warning

4. 按关键字过滤

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

5. 实时过滤

journalctl -f | grep "timeout"

二、使用 grep 过滤日志文件

传统日志文件通常在 /var/log/

/var/log/syslog
/var/log/auth.log
/var/log/kern.log

基本过滤

grep "error" /var/log/syslog

忽略大小写

grep -i "fail" /var/log/auth.log

显示上下文

grep -C 3 "panic" /var/log/kern.log

多关键字

grep -E "error|warn|fail" /var/log/syslog

排除内容

grep -v "cron" /var/log/syslog

三、按时间过滤日志文件(rsyslog)

查看某一天

grep "Jan 12" /var/log/syslog

时间范围(awk)

awk '$1=="Jan" && $2>=10 && $2<=12' /var/log/syslog

四、使用 logrotate + 过滤分析(进阶)

如果你只想分析某类日志:

zcat /var/log/syslog.1.gz | grep "sshd"

五、使用 journalctl + 输出格式(脚本处理)

journalctl -u nginx -o json | jq 'select(.PRIORITY==3)'

六、常见实用示例

查看登录失败

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

查看 root 登录

grep "session opened for user root" /var/log/auth.log

查看 Nginx 错误

journalctl -u nginx | grep "emerg"

如果你能补充:

  • systemd 日志还是文件日志
  • 想过滤 什么内容(错误、IP、服务)
  • 是否用于 实时监控或脚本

我可以直接给你一条可用命令。

0