如何配置Linux JS日志监控
导读:Linux JS日志监控配置指南 一 场景与总体架构 适用对象:运行在 Linux 上的 Node.js 或前端构建/运行时的 JavaScript 日志(如打包日志、浏览器控制台日志采集后落盘)。 采集链路建议:应用日志 → 本地落盘或...
Linux JS日志监控配置指南
一 场景与总体架构
- 适用对象:运行在 Linux 上的 Node.js 或前端构建/运行时的 JavaScript 日志(如打包日志、浏览器控制台日志采集后落盘)。
- 采集链路建议:应用日志 → 本地落盘或标准输出 → 采集器(如 Fluentd/Logstash)→ 存储与检索(如 Elasticsearch)→ 可视化告警(如 Kibana/Grafana)。
- 快速落地路径:
- 开发/单机:用 tail/grep 实时查看与过滤。
- 生产 Node.js:用 PM2 托管与日志聚合,必要时接入 ELK 或 Grafana Loki。
- 规范化:使用 Winston/Bunyan/Pino 输出结构化日志,便于检索与告警。
二 快速上手 命令行与系统工具
- 实时查看日志尾部:
- 命令:
tail -f /path/to/app.log
- 命令:
- 关键字高亮与过滤:
- 命令:
tail -f /path/to/app.log | grep --color=auto 'error\|warn'
- 命令:
- 分页实时查看:
- 命令:
tail -f /path/to/app.log | less -S
- 命令:
- 定时统计关键字出现次数:
- 命令:
watch -n 1 "grep -c 'ERROR' /path/to/app.log"
- 命令:
- 若应用由 systemd 托管,可直接查看服务日志:
- 命令:
journalctl -u your-node-service.service -f
- 命令:
- 以上命令适合临时排查与验证日志输出是否正常。
三 Node.js 应用的标准化与进程管理
- 使用 Winston 输出结构化日志(示例):
- 安装:
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('服务启动', { port: 3000 } ); logger.error('数据库连接失败', { retry: true } );
- 代码示例:
- 安装:
- 使用 PM2 托管与集中查看日志:
- 启动应用:
pm2 start app.js --name myapi - 实时查看:
pm2 logs myapi - 按时间查看:
pm2 logs myapi --lines 200
- 启动应用:
- 建议:统一日志目录(如 /var/log/myapp/),并设置 logrotate 做按日切分与保留。
四 集中化与可视化监控
- 自建开源方案:
- ELK Stack(Elasticsearch + Logstash + Kibana):Logstash/Fluentd 采集与解析,Elasticsearch 存储检索,Kibana 构建仪表盘与告警。
- Grafana Loki + Promtail:轻量日志聚合,与 Grafana 深度集成,适合云原生与成本敏感场景。
- Graylog:集中式日志管理,支持丰富查询与告警能力。
- 云托管方案:
- LogDNA、Amazon CloudWatch Logs 等,减少自建运维成本,适合快速上线与跨区域集中。
- 接入要点:
- 统一字段:如 timestamp、level、service、msg、trace_id。
- 结构化输出:优先 JSON,便于分析与聚合。
- 采样与脱敏:避免记录敏感信息(如密码、密钥)。
五 告警与自动化响应
- 日志关键字触发告警(示例思路):
- 命令:
tail -F /var/log/myapp/combined.log | awk '/ERROR/ { system("curl -X POST -H 'Content-Type: application/json' -d '{ \"text\":\"ERROR 发现于 $(date)\"} ' https://hooks.example.com/alert") } ' - 说明:
-F更健壮地处理日志轮转;生产环境建议使用 Fluentd/Logstash 的告警插件或对接 Alertmanager/Prometheus。
- 命令:
- 可视化告警:在 Kibana 或 Grafana 配置阈值与通知渠道(如 Webhook/企业微信/钉钉/Slack)。
- 建议:为不同级别(如 error、warn)设置不同策略;结合 trace_id 实现链路追踪与快速定位。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何配置Linux JS日志监控
本文地址: https://pptw.com/jishu/771299.html
