Linux 系统日志存于 /var/log 目录,核心文件包括 syslog、auth.log、dmesg 等,记录系统、认证及内核信息;使用 t ail、grep、less命令可实时查看与筛选日志;systemd 系统通过 journalctl 管理二进制日志,支持按服务、时间、优先级过滤,如 journalctl -u nginx.service –since “2024-04-05″;journald 默认不持久,需配置 Storage=persistent 实现长期存储;logrotate工具 按策略轮转日志,防止磁盘溢出,配置文件 为 /etc/logrotate.conf 及 /etc/logrotate.d/ 目录下服务专属配置。

在 Linux 系统中,查看 服务器 日志是排查故障、监控系统运行状态和分析安全 事件 的重要手段。不同发行版的日志管理方式略有差异,但核心机制相似。掌握日志的存储位置、查看方法以及日志系统的运作原理,能显著提升运维效率。
常见日志文件位置与用途
Linux 系统中的日志通常存放在 /var/log 目录下,每个文件记录特定类型的信息:
- /var/log/messages:通用系统日志,记录非内核和非服务的常规信息(CentOS/RHEL 等传统系统)
- /var/log/syslog:Ubuntu/Debian 等系统的主要日志文件,包含所有系统消息
- /var/log/auth.log:记录用户登录、sudo 操作、SSH 访问等认证相关事件
- /var/log/dmesg:内核环缓冲日志,显示硬件检测、驱动加载等启动时的详细信息
- /var/log/boot.log:系统启动过程中的服务启动日志
- /var/log/kern.log:专门记录内核产生的消息
- /var/log/nginx/access.log 或 /var/log/apache2/access.log:Web 服务器访问日志
- /var/log/secure(RHEL/CentOS):记录安全相关的操作,如 SSH 登录尝试
可通过 ls /var/log 查看当前系统中存在的日志文件,结合 tail、less 或grep命令进行筛选和浏览。
使用 journalctl 管理 systemd 日志
现代 Linux 发行版大多采用 systemd 作为初始化系统,其自带的日志服务 journald 将日志以二进制格式存储,支持更强大的查询功能。
- 查看全部日志:journalctl
- 实时跟踪日志:journalctl -f
- 查看特定服务日志:journalctl -u nginx.service
- 按时间过滤:journalctl –since “2024-04-05” –until “2024-04-06 10:00”
- 查看本次启动的日志:journalctl -b
- 显示错误级别日志:journalctl -p err
journald 日志默认不持久保存,重启后可能丢失。若需长期保留,可启用持久化存储,修改配置文件 /etc/systemd/journald.conf,取消Storage=auto 注释并设为Storage=persistent。
常用日志查看命令技巧
熟练使用文本处理命令可以快速定位问题。
- tail -f /var/log/syslog:动态查看日志新增内容,适合监控实时输出
- grep “Failed password” /var/log/auth.log:查找 SSH 暴力破解尝试记录
- less /var/log/dmesg:分页查看内核日志,支持搜索和上下翻阅
- cat /proc/cpuinfo 和 dmesg | grep CPU:结合查看硬件初始化信息
- journalctl -u docker.service –no-pager | tail -20:查看 Docker 服务最近 20 条日志
对于长时间运行的服务,建议结合时间范围和关键词双重过滤,避免输出过多干扰信息。
日志轮转与清理机制
日志文件会不断增长,系统通过 logrotate 工具 自动管理日志轮转,防止磁盘被占满。
- 配置文件位于 /etc/logrotate.conf,服务特定配置在/etc/logrotate.d/ 目录下
- 典型策略包括按天轮转、压缩旧日志、保留一定数量的备份文件
- 手动执行轮转:logrotate -f /etc/logrotate.conf
- 查看 logrotate 状态:/var/lib/logrotate/status
定期检查日志保留策略是否合理,避免因日志过大影响系统性能,也防止关键信息被过早删除。
基本上就这些。理解日志来源、掌握查看工具、熟悉过滤技巧,就能高效应对大多数服务器问题排查场景。