您的位置:首页 >CentOS上Node.js日志如何查看与分析
发布于2026-05-02 阅读(0)
扫一扫,手机访问
排查问题、监控应用状态,日志是关键。在CentOS服务器上管理Node.js应用,掌握日志的定位、查看和分析方法,是每一位开发者和运维人员的必修课。下面,我们就来系统地梳理一下。
首先,得知道日志在哪。Node.js应用的日志输出方式多样,常见的位置和查找方式有:
logs/ 文件夹,或者开发者自定义的路径中,比如 app.log、error.log、combined.log。node app.js > logs/app.log 2>&1 &,那么标准输出和错误输出都会被重定向到指定的文件。journalctl -u your-nodejs-service-name 命令查看其所有输出。/var/log/ 目录下的自定义子目录。ps -ef | grep node 找到应用的进程ID(PID),再用 lsof -p 命令查看该进程打开了哪些文件,从中找出日志文件路径。找到日志后,如何高效地查看和检索信息?这些命令能帮上大忙。
tail -f /var/log/nodejs/app.log,实时追踪日志尾部的新内容。journalctl -u nodejs.service -f,实时查看服务的日志流。pm2 logs my-app,直接查看由PM2管理的应用日志。grep ‘error’ /var/log/nodejs/app.log,快速筛选出所有错误行。grep ‘error’ /var/log/nodejs/app.log | wc -l,统计错误出现的次数。less /var/log/nodejs/app.log,方便上下翻页查看大文件。journalctl -u nodejs.service --since “10 minutes ago”journalctl -u nodejs.service -S “2025-10-30” -U “2025-10-30 23:59:59”原始的文本日志不利于机器解析。采用结构化日志,能让后续的分析事半功倍。
npm i winstonconst winston = require(‘winston’);const logger = winston.createLogger({level: ‘info’,format: winston.format.json(),transports: [new winston.transports.File({ filename: ‘logs/error.log’, level: ‘error’ }),new winston.transports.File({ filename: ‘logs/combined.log’ }),new winston.transports.Console()]});node app.js > logs/app.log 2>&1pm2 start app.js --name my-app,查看日志:pm2 logs my-app日志文件会不断增长,必须有一套轮转和清理机制,以防磁盘被撑满。
const DailyRotateFile = require(‘winston-daily-rotate-file’);const transport = new DailyRotateFile({filename: ‘logs/myapp-%DATE%.log’,datePattern: ‘YYYY-MM-DD’,zippedArchive: true,maxFiles: ‘14’});/etc/logrotate.d/nodejs_app 文件。
/path/to/your/nodejs/app/logs/*.log {dailyrotate 7compressmissingoknotifemptycreate 0640 root root}sudo logrotate -f /etc/logrotate.d/nodejs_apppm2 install pm2-logrotatepm2 set pm2-logrotate:max_size 10M、pm2 set pm2-logrotate:retain 7、pm2 set pm2-logrotate:compress true、pm2 set pm2-logrotate:rotateInterval “0 0 * * *”。当服务器和应用数量增多时,分散的日志难以管理。集中式日志系统是必然选择。
filebeat.inputs:
type: logenabled: truepaths:
/var/log/nodejs/app.logoutput.logstash:
hosts: [“localhost:5044”]input { file { path => “/var/log/nodejs/app.log” start_position => “beginning” } }filter {json { source => “message” }date { match => [“timestamp”, “ISO8601”] }}output { elasticsearch { hosts => [“localhost:9200”] index => “nodejs-logs-%{+YYYY.MM.dd}” } }http://:5601 ,创建索引模式 nodejs-logs-*,之后便可以在 Discover 页面中按 level: error 等条件进行检索,在 Visualize/Dashboard 模块构建错误趋势、响应时间等可视化图表。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9