Linux JS日志监控配置指南
一 场景与总体架构
二 快速上手 命令行与系统工具
tail -f /path/to/app.logtail -f /path/to/app.log | grep --color=auto 'error\|warn'tail -f /path/to/app.log | less -Swatch -n 1 "grep -c 'ERROR' /path/to/app.log"journalctl -u your-node-service.service -f三 Node.js 应用的标准化与进程管理
npm install winstonconst 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 start app.js --name myapipm2 logs myapipm2 logs myapi --lines 200四 集中化与可视化监控
五 告警与自动化响应
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。