在 Linux 系统管理中,日志是排查故障、监控系统状态、分析用户行为的核心数据来源,Linux 系统通过日志服务(如 syslog、systemd-journald)记录内核、系统服务、应用程序等运行过程中的关键信息,掌握日志读取方法,是运维人员和开发者的必备技能,本文将系统介绍 Linux 日志的读取方法、常用工具及实用技巧。

Linux 日志存储位置
Linux 日志主要存储在 /var/log 目录下,不同类型的日志由不同文件或服务管理,常见的日志文件包括:
/var/log/syslog:记录系统内核和应用程序的通用日志(Debian/Ubuntu 系统)。/var/log/messages:记录标准系统信息(CentOS/RHEL 系统)。/var/log/auth.log或/var/log/secure:记录用户认证、登录相关信息。/var/log/kern.log:记录内核消息。/var/log/dmesg:记录系统启动时的内核环缓冲区信息。/var/log/nginx/或/var/log/apache2/:Web 服务器的访问和错误日志。/var/log/mysql/或/var/log/postgresql/:数据库服务日志。
systemd 系统的日志可通过 journalctl 命令统一管理,存储在 /var/log/journal/ 目录下。
基础日志读取命令
cat 与 less:查看完整日志
cat 命令可直接输出日志文件全部内容,适合小文件查看:
cat /var/log/syslog
less 命令支持分页浏览,适合大文件:
less /var/log/messages
在 less 界面中,可通过 搜索关键词、q 退出、上下箭头翻页。
tail:实时监控日志更新
tail 是排查实时问题的利器,常用选项包括:

-f:持续跟踪文件新增内容(如tail -f /var/log/nginx/access.log)。-n:显示文件末尾指定行数(如tail -n 100 /var/log/syslog)。
head:查看日志开头内容
与 tail 相反,head 用于显示文件开头内容,适合查看日志起始部分:
head -n 50 /var/log/auth.log
高级日志过滤与分析工具
grep:关键词过滤
grep 可从日志中提取包含特定关键词的行,结合正则表达式功能强大:
grep "ERROR" /var/log/syslog # 搜索包含 ERROR 的行 grep -i "failed" /var/log/auth.log # 忽略大小写搜索 failed grep -A 5 -B 5 "192.168.1.100" /var/log/nginx/access.log # 显示匹配行及前后 5 行
常用选项:-i(忽略大小写)、-c(统计匹配行数)、-v(反向匹配)。
awk:结构化数据处理
awk 适合按列处理日志,例如提取 Nginx 访问日志的 IP 地址和状态码:
awk '{print $1, $9}' /var/log/nginx/access.log
结合条件过滤:
awk '$9 == 404 {print $1, $7}' /var/log/nginx/access.log # 提取 404 错误的 IP 和请求路径
sed替换与删除
sed 可用于编辑日志内容,例如删除临时调试信息:

sed '/DEBUG/d' /var/log/app.log > /var/log/app_clean.log # 删除包含 DEBUG 的行
systemd 日志管理:journalctl
对于使用 systemd 的现代 Linux 系统,journalctl 是统一管理日志的核心工具:
- 查看所有日志:
journalctl - 实时跟踪日志:
journalctl -f - 查看内核日志:
journalctl -k - 查看特定服务日志:
journalctl -u nginx.service - 按时间过滤:
journalctl --since "2023-10-01" --until "2023-10-02" - 按优先级过滤(如错误及以上级别):
journalctl -p err
日志分析实用技巧
日志轮转与归档
Linux 通过 logrotate 工具自动管理日志轮转,避免单个日志文件过大,配置文件通常位于 /etc/logrotate.d/,Nginx 日志轮转配置:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 644 root root
}
日志级别与优先级
日志按重要性分为不同级别(如 emerg、alert、crit、err、warning、notice、info、debug),通过调整服务配置可控制日志详细程度,Nginx 的 error_log 可设置 error_log /var/log/nginx/error.log warn;。
常见日志问题排查场景
| 问题场景 | 排查命令 |
|---|---|
| 服务启动失败 | journalctl -u 服务名.service |
磁盘空间不足 du -sh /var/log/* |
|
网络连接异常 grep "connection refused" /var/log/syslog |
|
用户登录失败 grep "Failed password" /var/log/auth.log |
Linux 日志读取是系统运维的基础技能,从基础的 cat、tail 到高级的 awk、journalctl,不同工具适用于不同场景,熟练掌握日志过滤、分析技巧,并结合日志轮转机制,可高效定位问题、保障系统稳定运行,在实际工作中,建议根据业务需求定制日志策略,如集中日志管理(ELK Stack、Graylog)和日志告警(Prometheus + Alertmanager),进一步提升日志管理效率。



















