智睿享
白蓝主题五 · 清爽阅读
首页  > 软件指南

服务器日志怎么查看:快速定位问题的实用方法

服务日志是排查系统异常、网站访问问题和安全事件的重要依据。很多刚接触运维的朋友一听到“日志”就头大,其实只要掌握基本操作,查看日志并没有想象中那么复杂。

常见的日志存放位置

大多数 Linux 服务器的日志默认存放在 /var/log 目录下。比如:

  • /var/log/messages:系统级通用日志(CentOS/RHEL)
  • /var/log/syslog:系统综合日志(Ubuntu/Debian)
  • /var/log/auth.log:登录认证相关记录
  • /var/log/nginx/access.log:Nginx 的访问日志
  • /var/log/apache2/error.log:Apache 错误日志

进入对应目录,用 ls 命令看看有哪些文件,就能大概判断服务运行情况。

用命令行实时查看日志

最常用的命令是 tail。比如想看最近 10 行 Nginx 访问日志:

tail -n 10 /var/log/nginx/access.log

如果正在排查某个接口报错,可以用 -f 参数动态追踪新增内容:

tail -f /var/log/nginx/error.log

这时候你刷新网页,对应的错误信息就会实时刷出来,就像监控摄像头一样直观。

搜索关键字定位问题

日志文件动辄几百兆,手动翻不现实。结合 grep 能快速过滤关键信息。例如查找所有包含 “404” 的访问记录:

grep "404" /var/log/nginx/access.log

还可以加上时间范围缩小结果,比如查某天下午的异常:

grep "15:30" /var/log/nginx/error.log | grep "500"

有时候 IP 攻击频繁,可以通过统计访问最多的 IP 来识别异常:

cut -d' ' -f1 /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10

用 journalctl 查看 systemd 服务日志

现在很多新系统使用 systemd 管理服务,可以用 journalctl 直接查看服务运行记录。比如查看 Nginx 的最新日志:

journalctl -u nginx.service

加个 -f 参数也能实时跟踪:

journalctl -u nginx.service -f

如果想知道昨天的服务状态,可以指定日期:

journalctl -u nginx.service --since yesterday

图形化工具也不是不行

如果你更习惯点鼠标,像 Logwatch、GoAccess 这类工具可以把日志生成网页报表。特别是 GoAccess,几行命令就能把访问日志变成可视化页面:

goaccess /var/log/nginx/access.log -o report.html --log-format=COMBINED

生成的 report.html 打开就能看到访问来源、热门页面、响应状态分布,适合给非技术人员看。

权限问题别忽略

普通用户执行上述命令时可能提示“Permission denied”。这时候需要加 sudo 提权:

sudo tail -f /var/log/auth.log

尤其是涉及登录、SSH 尝试这类敏感日志,系统默认只允许 root 或 wheel 组查看。

遇到服务突然无法访问,先看日志往往比重启来得更快。熟练使用这几个命令,日常排障效率能提升一大截。