如何监控Debian服务器JS日志
导读:1. 基础命令行工具:实时查看与过滤 在Debian服务器上,可通过命令行快速监控JS日志(适用于临时排查或简单场景): tail -f:实时追踪日志文件更新,例如tail -f /var/log/syslog(系统日志)或tail -f...
1. 基础命令行工具:实时查看与过滤
在Debian服务器上,可通过命令行快速监控JS日志(适用于临时排查或简单场景):
tail -f:实时追踪日志文件更新,例如tail -f /var/log/syslog(系统日志)或tail -f /path/to/your/app.log(应用自定义日志),按Ctrl+C停止。grep:筛选特定关键词(如“error”“warning”),例如tail -f app.log | grep 'error',仅显示包含该关键词的日志条目。less/more:分页查看日志文件,适合查看历史日志,例如less /path/to/your/app.log,按空格翻页、q退出。
2. 进程管理器:集成日志管理与监控
使用PM2(Node.js常用进程管理器)可简化日志收集、轮转及实时查看:
- 安装与启动:全局安装PM2后,启动应用并命名(便于后续管理),例如
pm2 start app.js --name my-js-app。 - 查看日志:通过
pm2 logs命令实时查看所有应用的日志;若需查看特定应用,使用pm2 logs my-js-app;还可限制行数(如pm2 logs my-js-app --lines 100)或跟随日志(pm2 logs my-js-app -f)。 - 日志轮转:PM2内置日志轮转功能,可通过
pm2 set pm2:log_rotate true开启,默认保留7天日志,避免日志文件过大。
3. 日志库:结构化与精细化日志管理
在JS代码中集成日志库(如Winston、Bunyan),可实现日志分级、格式化及多传输(文件、控制台、数据库等):
- Winston示例:安装
npm install winston,配置JSON格式日志及分级存储(错误日志单独保存),例如: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('Application started'); logger.error('Database connection failed'); - Bunyan示例:安装
npm install bunyan,生成结构化JSON日志,便于后续分析,例如:这些日志库可提升日志的可读性与可分析性,适合生产环境。const bunyan = require('bunyan'); const logger = bunyan.createLogger({ name: 'my-js-app' } ); logger.info('Request received', { method: 'GET', url: '/api' } );
4. 集中式日志管理:ELK Stack(Elasticsearch+Logstash+Kibana)
对于大规模或分布式JS应用,可使用ELK Stack实现日志的集中收集、存储、搜索及可视化:
- 安装ELK:在Debian上依次安装Elasticsearch(
sudo apt install elasticsearch)、Logstash(sudo apt install logstash)、Kibana(sudo apt install kibana),并启动服务(systemctl start elasticsearch等)。 - 配置Logstash:创建
/etc/logstash/conf.d/nodejs.conf文件,定义日志输入(如Node.js应用的app.log文件)、过滤(可选)及输出(Elasticsearch),例如:input { file { path => "/path/to/your/nodejs/app.log" start_position => "beginning" } } output { elasticsearch { hosts => ["localhost:9200"] index => "nodejs-logs-%{ +YYYY.MM.dd} " } } - 查看日志:启动Logstash后,访问Kibana(
http://your-debian-ip:5601),创建索引模式(如nodejs-logs-*),通过Discover界面实时查看、搜索及分析日志。
5. 系统日志集成:rsyslog/syslog-ng
将JS应用日志发送到系统日志服务(rsyslog/syslog-ng),统一管理所有系统与服务日志:
- 配置应用日志:修改JS应用代码,将日志输出到
syslog(如Winston配置transports: [new winston.transports.Syslog({ host: 'localhost', port: 514 } )]),或通过命令行重定向(如node app.js > > /var/log/syslog 2> & 1)。 - 查看系统日志:使用
journalctl(systemd工具)查看JS应用日志(若应用以systemd服务运行),例如journalctl -u my-js-app -f(实时查看)或journalctl -u my-js-app --since "1 hour ago"(查看过去1小时日志)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何监控Debian服务器JS日志
本文地址: https://pptw.com/jishu/735896.html
