插件窝 干货文章 Linux Node.js日志分析工具有哪些

Linux Node.js日志分析工具有哪些

日志 分析 工具 log 870    来源:    2025-05-05

在 Linux 环境下分析 Node.js 日志时,有多种工具可根据需求选择,以下是分类整理和推荐:


1. 基础日志分析工具

  • grep / awk / sed
    快速过滤关键字(如错误、状态码):

    grep "ERROR" app.log | awk '{print $5}' | sort | uniq -c
    
  • tail / less / head
    实时监控日志尾部:

    tail -f app.log | grep "WARN"
    

2. 结构化日志分析工具

  • jq
    解析 JSON 格式日志(需应用输出 JSON 日志):

    cat app.log | jq '. | select(.level == "error")'
    
  • Logstash (ELK Stack)
    复杂日志管道处理,搭配 Elasticsearch + Kibana 实现可视化。


3. 专用日志分析工具

  • Pino
    Node.js 高性能 JSON 日志工具,配套分析命令:

    cat app.log | pino-pretty
    
  • Bunyan
    结构化日志工具,支持 CLI 格式化:

    bunyan app.log -l error
    
  • Winston
    灵活日志库,可输出多种格式,需配合其他工具分析。


4. 实时监控与高级分析

  • LNAV (Log File Navigator)
    交互式日志查看器,支持语法高亮和时间轴:

    lnav app.log
    
  • GoAccess
    实时 HTTP 访问日志分析(适合 Web 服务):

    goaccess access.log --log-format=COMBINED
    
  • Sentry / Datadog
    云端日志监控,提供告警和聚合分析(需集成 SDK)。


5. 日志聚合与可视化

  • Grafana + Loki
    轻量级日志聚合系统,支持 Prometheus 风格查询:

    # 查询错误日志
    {app="my-node-app", level="error"} |~ "timeout"
    
  • Kibana (ELK Stack)
    强大的全文搜索和仪表盘功能,适合大规模日志。


6. 自定义脚本

用 Node.js 快速编写分析脚本(示例):

const fs = require('fs');
const logs = fs.readFileSync('app.log', 'utf-8').split('\n');
logs.filter(line => line.includes('ERROR')).forEach(console.log);

选择建议

  • 简单调试grep + jq
  • 生产环境:ELK 或 Grafana Loki
  • Node.js 专项:Pino/Bunyan + 配套工具
  • 实时性要求高:Sentry/Datadog

根据日志量级(单机/分布式)和是否需要长期存储选择合适的方案。