- 首页 >
- 问答 >
-
编程语言 >
- Node.js日志分析工具有哪些Ubuntu推荐
Node.js日志分析工具有哪些Ubuntu推荐
小樊
33
2025-12-09 23:58:34
Ubuntu下Node.js日志分析工具推荐
一 应用内日志库
- Winston:多传输(文件、控制台、HTTP 等)、多级别、易扩展,适合复杂日志路由与落盘策略。
- Pino:极致性能、低开销,默认 JSON 输出,适合高并发服务。
- Bunyan:结构化 JSON 日志,简洁易集成,便于后续聚合分析。
- Log4js:配置驱动、多输出、可与 ELK 等集中式系统配合。
- Morgan:Express 中间件,专注 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;需要高度定制与多传输:选 Winston 或 Log4js。
- 结构化与可聚合:选 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 查看服务日志。