温馨提示×

Debian系统JS日志查询技巧

小樊
41
2025-12-24 06:01:43
栏目: 编程语言

Debian 环境下 JavaScript 日志查询与定位

一 定位日志来源与路径

  • 先确认日志来自哪类组件:前端(浏览器)、Node.js 后端、或 Nginx/Apache 等 Web 服务器。
  • 常见路径与用途一览:
    • 系统与服务日志:/var/log/syslogjournalctl -u (适用于 systemd 管理的服务)
    • Node.js 应用:标准输出/错误(stdout/stderr),或由日志库写入自定义文件
    • Web 服务器:/var/log/nginx/access.log/var/log/nginx/error.log/var/log/apache2/access.log/var/log/apache2/error.log
  • 快速判断示例:
    • 前端 JS 错误优先在浏览器开发者工具 Console 面板查看
    • Node.js 服务:检查进程是否由 systemd 托管并查看服务日志
    • 反向代理/静态资源问题:查看 Nginx/Apache 错误日志

二 命令行快速检索与过滤

  • 基础查看与检索
    • 查看文件:cat /path/file.logless -S /path/file.log
    • 关键字搜索:grep -i ‘error’ /path/file.log
    • 多关键字:grep -E ‘error|warn|exception’ /path/file.log
    • 实时跟踪:tail -f /path/file.log
  • 时间与范围
    • 按时间过滤(systemd):journalctl -u myapp --since “2025-12-24 00:00:00” --until “2025-12-24 12:00:00”
  • 上下文与统计
    • 上下文:grep -C 5 ‘error’ file.log(前后各 5 行)
    • 计数:grep -c ‘timeout’ file.log
  • 结构化日志(JSON)
    • 提取字段:jq -r ‘.level + " " + .msg’ app.log
    • 条件过滤:jq ‘select(.level==“error”) | .msg’ app.log
  • 实用组合示例
    • 实时查看 Node.js 服务最近 100 行并高亮错误:journalctl -u myapp -n 100 -f | grep --color=auto -i ‘error’
    • 统计 Nginx 错误日志中 5xx 数量:grep -E ’ 5[0-9]{2} ’ /var/log/nginx/error.log | wc -l
    • 查看某时间段的 JS 异常并输出堆栈所在行:grep -n -A 10 -B 2 ‘Exception’ app.log

三 常见场景与命令清单

  • Node.js 后端
    • 直接输出到文件或分离错误流:
      • 仅标准输出:node app.js > app.log 2>/dev/null
      • 分离错误:node app.js > app.log 2> error.log
      • 同时捕获:node app.js > app.log 2>&1
    • 查看服务日志:journalctl -u myapp -f
  • Nginx/Apache
    • Nginx 错误定位:tail -f /var/log/nginx/error.log | grep -i ‘js’
    • Apache 访问与错误:tail -f /var/log/apache2/error.log
  • 前端 JS 错误
    • 浏览器开发者工具 Console 查看报错与堆栈
    • 若通过 Node.js 渲染/服务端日志输出前端错误,按 Node.js 方式检索

四 查询性能与维护优化

  • 日志轮转与保留
    • 使用 logrotate 控制单文件大小与保留天数,避免超大文件拖慢检索
    • 示例(/etc/logrotate.d/myapp):
      • /var/log/myapp/*.log { daily; rotate 7; compress; delaycompress; missingok; notifempty; create 640 root adm }
  • 查询效率
    • 缩小时间窗口与关键词范围,避免全量扫描
    • 采用结构化日志(JSON),便于 jq 快速过滤与聚合
    • 大流量场景引入集中式方案(如 ELK Stack)做索引与全文检索
  • 运行与资源监控
    • 实时资源与进程:topps aux
    • 内核与启动信息:dmesg
  • 存储与系统
    • 优先 SSD 存储日志目录,提升 I/O 性能
    • 设置合理的保留策略与监控告警,防止磁盘被占满

0