温馨提示×

Node.js日志分析工具有哪些Ubuntu推荐

小樊
33
2025-12-09 23:58:34
栏目: 编程语言

Ubuntu下Node.js日志分析工具推荐

一 应用内日志库

  • Winston:多传输(文件、控制台、HTTP 等)、多级别、易扩展,适合复杂日志路由与落盘策略。
  • Pino:极致性能、低开销,默认 JSON 输出,适合高并发服务。
  • Bunyan:结构化 JSON 日志,简洁易集成,便于后续聚合分析。
  • Log4js:配置驱动、多输出、可与 ELK 等集中式系统配合。
  • MorganExpress 中间件,专注 HTTP 请求日志,便于 API 访问分析。
  • TSLog:基于 TypeScript,提供多输出、等级过滤、归档与压缩等能力。

二 系统级与命令行工具

  • journalctl:systemd 日志查询,支持按服务、时间等过滤,如:journalctl -u your-node-app。
  • tail -f / less / cat:实时追踪与分页查看日志文件。
  • grep / awk / sed:关键词检索、字段提取与文本处理。
  • Logrotate:按时间/大小切分、压缩与清理日志,防止单文件过大。
  • Rsyslog:高性能日志处理与转发,支持多格式与过滤规则。

三 集中式日志平台

  • ELK Stack(Elasticsearch + Logstash + Kibana):强大的全文检索、聚合分析与可视化,适合复杂查询与审计。
  • Graylog:集中式日志管理,搜索与可视化能力强,便于团队协作。
  • Grafana Loki:与 Grafana 深度集成,轻量高效,适合 Kubernetes/微服务 场景。
  • Prometheus + Grafana:偏指标监控,配合客户端库(如 prom-client)记录请求耗时、内存等指标,可与日志联动排查。

四 进程与运行时日志管理

  • PM2:进程守护与内置日志管理,支持日志聚合、轮转与实时查看(如:pm2 logs myapi),适合生产部署。

五 选型建议与快速上手

  • 选型建议
    • 追求性能与资源效率:优先 Pino;需要高度定制与多传输:选 WinstonLog4js
    • 结构化与可聚合:选 Bunyan;仅 Express 请求日志:用 Morgan
    • 单机快速排查:用 tail/grep/awk/sed + journalctl
    • 团队与多服务集中化:选 ELK/Graylog/Loki;需要指标与可视化:配合 Prometheus + Grafana
    • 生产进程与日志统一:用 PM2;避免磁盘撑爆:配置 Logrotate
  • 快速上手示例(Winston,JSON 输出到文件)
    • 安装:npm install winston
    • 配置:
      • const winston = require(‘winston’);
      • const logger = winston.createLogger({
        • level: ‘info’,
        • format: winston.format.json(),
        • transports: [
          • new winston.transports.Console(),
          • new winston.transports.File({ filename: ‘error.log’, level: ‘error’ }),
          • new winston.transports.File({ filename: ‘combined.log’ })
        • ]
      • });
      • logger.info(‘Server started on port 3000’);
      • logger.error(‘Database connection failed’);
    • 查看:tail -f combined.log | grep error;或用 journalctl -u your-node-app 查看服务日志。

0