在Linux系统中,查看服务器日志是系统管理和故障排查的核心操作,日志记录了系统运行状态、服务活动及错误信息,通过分析日志可快速定位问题,本文将详细介绍Linux查看日志的常用方法、工具及实践技巧。

Linux日志通常存储在/var/log目录下,不同服务或功能模块的日志分文件存放,如系统日志/var/log/syslog、内核日志/var/log/kern.log、应用日志(如Nginx的/var/log/nginx/access.log)等,查看日志时,需根据需求选择合适的工具,以下是常用方法:
基础查看命令
-
cat/less/more:适合查看小文件或快速浏览。cat /var/log/syslog:直接输出全部日志,适合短日志文件。less /var/log/kern.log:分页显示,支持上下翻页、关键词搜索(/keyword)。more /var/log/auth.log:类似less,但仅支持向前翻页。
-
tail:实时查看日志末尾内容,适合监控最新动态。tail -f /var/log/nginx/error.log:实时跟踪日志更新,Ctrl+C退出。tail -n 100 /var/log/syslog:显示最后100行日志。
-
head:查看日志开头部分。
(图片来源网络,侵删)head -n 50 /var/log/boot.log:显示系统启动日志前50行。
高级过滤与分析工具
-
grep:按关键词过滤日志,支持正则表达式。grep "error" /var/log/syslog:筛选包含"error"的行。grep -i "warning" /var/log/app.log:忽略大小写匹配"warning"。grep -A 3 -B 3 "failed" /var/log/auth.log:显示匹配行及其前后3行上下文。
-
awk:按列处理日志,适合结构化日志分析。awk '{print $1, $4}' /var/log/access.log:提取日志的第1列(IP)和第4列(时间)。awk '/POST/ {count++} END {print "POST请求总数:", count}' /var/log/nginx/access.log:统计POST请求数量。
-
sed:编辑或替换日志内容,谨慎使用。sed 's/192.168.1.1/XXX/g' /var/log/access.log:替换IP地址为"XXX"(仅输出不修改原文件)。
-
journalctl:查看systemd管理的系统日志(CentOS 7+/Ubuntu 16.04+)。
(图片来源网络,侵删)journalctl -u nginx.service:查看Nginx服务的日志。journalctl --since "2025-10-01" --until "2025-10-02":查看指定时间范围的日志。journalctl -p err:仅显示错误级别及以上日志。
日志轮转与归档
Linux通过logrotate工具管理日志轮转,避免单个日志文件过大,配置文件位于/etc/logrotate.conf,例如Nginx日志默认每天轮转,保留7天备份:
/var/log/nginx/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
create 644 nginx nginx
}
实践技巧
- 实时监控:结合
tail -f和grep实时过滤关键信息,如tail -f /var/log/syslog | grep "CRITICAL"。 - 日志权限:部分日志需root权限查看,使用
sudo或切换至root用户。 - 日志级别:区分
debug、info、warn、error等级别,快速定位问题严重性。
以下为常用日志文件及用途说明:
| 日志文件路径 | 用途说明 |
|---|---|
/var/log/syslog |
系统日志,记录内核和服务信息 |
/var/log/messages |
通用系统消息日志 |
/var/log/auth.log |
认证日志,记录登录失败/成功信息 |
/var/log/kern.log |
内核日志,记录硬件驱动和内核事件 |
/var/log/apache2/error.log |
Apache错误日志 |
/var/log/mysql/error.log |
MySQL数据库错误日志 |
相关问答FAQs
Q1: 如何快速定位日志中的错误信息?
A1: 可使用grep结合错误关键词过滤,例如grep -i "error\|exception\|failed" /var/log/app.log,或通过journalctl -p err查看系统级错误日志,若需上下文,可添加-A 5 -B 5显示错误行前后5行内容。
Q2: 日志文件过大导致查看缓慢,如何高效处理?
A2: 可采用以下方法:
- 使用
less或vim打开大文件,避免cat一次性加载; - 通过
split -l 10000 large.log分割日志为小文件; - 使用
zgrep直接查询压缩日志(如.gz文件); - 调整
logrotate配置,缩短轮转周期或限制单个文件大小。
