在Ubuntu上设置Node.js日志监控可以通过多种方式实现,以下是一些常见的方法:
pm2
进行进程管理和日志监控安装pm2
:
npm install pm2 -g
启动Node.js应用:
使用pm2
启动你的Node.js应用,并指定日志文件路径。
pm2 start app.js --name my-app --log /path/to/your/logfile.log
查看日志:
pm2 logs my-app
设置日志轮转:
pm2
默认会进行日志轮转,但你也可以手动配置。
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7
tail
命令实时监控日志启动Node.js应用:
node app.js
使用tail
命令实时查看日志:
tail -f /path/to/your/logfile.log
logrotate
进行日志轮转安装logrotate
(如果尚未安装):
sudo apt-get install logrotate
创建或编辑logrotate
配置文件:
sudo nano /etc/logrotate.d/my-app
添加以下内容:
/path/to/your/logfile.log {
daily
missingok
rotate 7
compress
notifempty
create 640 root adm
}
测试logrotate
配置:
sudo logrotate -f /etc/logrotate.d/my-app
安装ELK Stack
(Elasticsearch, Logstash, Kibana):
这是一个强大的日志管理和分析工具组合。
配置Logstash
收集Node.js日志:
编辑Logstash
配置文件,添加一个输入插件来收集Node.js日志。
配置Kibana
进行日志可视化:
使用Kibana
创建仪表板和图表来可视化日志数据。
syslog
进行日志管理配置Node.js应用将日志发送到syslog
:
在Node.js应用中使用syslog
模块。
const syslog = require('syslog');
syslog.openlog('my-app', { facility: syslog.LOG_USER, tag: 'my-app' });
syslog.syslog(syslog.LOG_INFO, 'This is an info message');
syslog.closelog();
配置rsyslog
接收syslog
消息:
编辑/etc/rsyslog.conf
或创建一个新的配置文件,例如/etc/rsyslog.d/50-default.conf
。
if $programname == 'my-app' then /var/log/my-app.log
& stop
重启rsyslog
服务:
sudo systemctl restart rsyslog
通过以上方法,你可以在Ubuntu上有效地设置Node.js日志监控,确保你的应用日志得到妥善管理和分析。