日志文件存储位置
Linux日志通常位于/var/log
目录,关键日志包括:
- 系统日志:
/var/log/syslog
(Debian/Ubuntu)或/var/log/messages
(CentOS/RHEL) - 认证日志:
/var/log/auth.log
(记录登录、sudo操作) - 内核日志:
/var/log/kern.log
- 应用日志:如Nginx(
/var/log/nginx/
)、Apache(/var/log/apache2/
) - 启动日志:
/var/log/boot.log
查看日志的常用命令
基础查看工具
cat
:一次性显示全部内容(适合小文件)cat /var/log/syslog
less
/more
:分页查看(支持上下翻页)less /var/log/auth.log # 按`q`退出,`/关键词`搜索
head
/tail
:查看首尾部分tail -n 20 /var/log/syslog # 显示最后20行 head -n 10 /var/log/nginx/access.log # 显示前10行
实时监控日志更新
tail -f
:动态跟踪日志新增内容(故障排查常用)tail -f /var/log/nginx/access.log # 实时显示新条目
关键词过滤
grep
:筛选包含特定关键词的行grep "ERROR" /var/log/syslog # 查找所有ERROR记录 grep -C 3 "failed" /var/log/auth.log # 显示匹配行及前后3行
- 多条件组合:
cat /var/log/syslog | grep "error" | grep "httpd" # 查找httpd相关错误
查看压缩日志
日志轮转后可能被压缩(如.gz
格式):
zcat
/zgrep
:直接操作压缩文件zcat /var/log/syslog.1.gz # 解压并显示 zgrep "404" /var/log/nginx/access.log.2.gz # 搜索压缩文件
Systemd系统的日志管理(journalctl)
若系统使用systemd
(如Ubuntu 16.04+、CentOS 7+),用journalctl
统一管理日志:
journalctl -u nginx.service # 查看Nginx服务日志 journalctl -f -u apache2 # 实时跟踪Apache日志 journalctl --since "2025-10-01" --until "2025-10-02" # 按时间范围过滤 journalctl -p err..alert # 仅显示错误及以上级别日志
最佳实践与注意事项
- 权限问题:普通用户可能无权访问日志,需用
sudo
提权:sudo tail -f /var/log/syslog
- 日志轮转机制:
- 日志文件过大时会被分割压缩(由
logrotate
管理),旧文件以数字后缀命名(如syslog.1.gz
)。
- 日志文件过大时会被分割压缩(由
- 高效搜索技巧:
- 组合命令:
grep -A 5 "error" /var/log/syslog | less
(显示错误及后5行) - 按时间过滤:
journalctl --since "10 min ago"
- 组合命令:
- 安全与存储:
- 避免直接修改日志文件。
- 定期清理旧日志(如配置
/etc/logrotate.conf
)。
掌握日志查看技能是Linux运维的基础,关键步骤包括:
- 定位日志路径(
/var/log/
) - 根据需求选择命令(实时跟踪用
tail -f
,过滤用grep
,分页用less
) - 对
systemd
系统使用journalctl
高效查询 - 注意权限与日志轮转机制
引用说明基于Linux官方文档(kernel.org)及《Linux系统管理技术手册》(Richard Blum, Christine Bresnahan著)中的运维实践整理,确保方法通用且可靠,具体日志路径可能因发行版或应用配置略有差异,请以实际环境为准。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7732.html