Debian 环境下查看 JS 访问记录的实用步骤
一、先确认日志来源
- 前端 JS 本身不产生服务器访问日志,访问记录通常来自反向代理或网关(如 Nginx/Apache),路径一般为:/var/log/nginx/access.log、/var/log/apache2/access.log。
- 若是 Node.js 服务,访问日志取决于你的代码或日志库(如 Winston/Bunyan)配置;若未显式写文件,常把 console.log/console.error 打到 stdout/stderr,由进程管理器或容器捕获。
- 若服务注册为 systemd 单元,可用 journalctl -u <service_name> 查看其输出。
- 若接入了远程日志平台(如 Loggly/Papertrail/Datadog),需登录对应平台查看历史与聚合报表。
二、快速查看与检索命令
- 实时查看 Nginx 访问日志:tail -f /var/log/nginx/access.log
- 过滤特定 IP:grep ‘1.2.3.4’ /var/log/nginx/access.log
- 统计某路径的访问次数:awk ‘$7==“/api/v1”’ /var/log/nginx/access.log | wc -l
- 查看最近 100 行并高亮错误:tail -n 100 /var/log/nginx/access.log | grep --color=auto " 500 |$"
- 查看 Node.js 服务日志(systemd):journalctl -u my-js-app.service -f
- 若日志为 JSON 格式(常见于结构化日志):tail -n 200 app.log | jq ‘select(.level==“info” or .level==“error”)’
- 组合检索示例:查找 4xx 并提取来源 IP
grep '" 4[0-9][0-9] ’ /var/log/nginx/access.log | awk ‘{print $1}’ | sort | uniq -c | sort -nr | head
以上命令覆盖实时查看、关键字过滤、统计与 JSON 解析等常见场景。
三、结构化与可视化分析
- 使用 GoAccess 生成可视化报告(终端或 HTML):
goaccess /var/log/nginx/access.log -a -o report.html --log-format=COMBINED
- 日志量大时,建议接入 ELK Stack(Elasticsearch/Logstash/Kibana) 或 Graylog 做集中存储、检索与仪表板。
- 对 JSON 日志可用 jq 做字段筛选与聚合,便于排查接口耗时、状态码分布等。
四、常见场景与排查路径
- 前端页面异常:优先用 浏览器开发者工具 的 Network 面板查看请求与响应;若页面由 Nginx 提供服务,再对照 access.log/error.log 定位 4xx/5xx 与后端连通性。
- Node.js 服务无文件日志:检查进程启动方式(如 systemd、PM2、Docker),改用 journalctl -u 或容器日志驱动查看;必要时在代码或日志库中显式写入文件。
- 权限或路径问题:查看 /var/log/ 下文件时可能需要 sudo;若日志分散在自定义目录,先确认应用配置与当前工作目录。
五、日志维护与最佳实践
- 使用 logrotate 做按日/按大小轮转,避免磁盘被日志撑满。
- 为 Node.js 选择成熟的日志库(如 Winston),合理配置日志级别(如 error/warn/info/http/debug)与多传输(文件、控制台、远程)。