在Ubuntu上监控Node.js日志可以通过多种方法实现,以下是一些常用的方法和工具:
通过以下命令可以查看与Node.js相关的系统日志:
journalctl -u your-nodejs-service-name -t
其中 your-nodejs-service-name
是你的Node.js服务名称。你可以在启动Node.js服务时指定一个服务名称,例如:
node app.js --name my-nodejs-app
然后使用:
journalctl -u my-nodejs-app -t
查看相关日志。
如果你在启动Node.js应用程序时指定了日志文件的路径,可以直接查看该文件。例如:
node app.js logs/app.log 2>&1 &
这会将应用程序的输出重定向到 logs/app.log
文件中。你可以使用 cat
、less
或 tail
等命令查看日志文件内容:
cat logs/app.log
less logs/app.log
tail -f logs/app.log
还可以使用诸如Logstash、Fluentd或Graylog等第三方日志管理工具来收集、分析和存储Node.js日志。这些工具可以帮助你更方便地查看和分析日志数据。
Winston是Node.js中非常流行的日志库,支持多种传输方式(如控制台、文件、HTTP等),以及灵活的格式化配置。
安装Winston:
npm install winston
配置和使用Winston:
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' }),
new winston.transports.Console(),
],
});
logger.info('This is an info log.');
logger.error('This is an error log.');
Bunyan是一个轻量级、高性能的日志库,特别适用于大型Node.js应用。它的特点是日志输出格式化为JSON,便于进一步的自动化处理和集成。
安装Bunyan:
npm install bunyan
使用Bunyan:
const bunyan = require('bunyan');
const logger = bunyan.createLogger({
name: 'myapp',
streams: [
{ level: 'info', stream: process.stdout },
{ level: 'error', path: 'app-error.log' },
],
});
logger.info('This is an info log.');
logger.error('This is an error log.');
ELK Stack(Elasticsearch、Logstash、Kibana)是一个流行的集中式日志管理系统。你可以将Node.js应用程序的日志发送到Elasticsearch,然后使用Kibana进行实时日志搜索和分析。
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
sudo apt-get update && sudo apt-get install elasticsearch
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.1-linux-x86_64.tar.gz
tar -xzf logstash-7.10.1-linux-x86_64.tar.gz
sudo mv logstash-7.10.1 /opt/logstash
编辑 /opt/logstash/conf/logstash.conf
文件,配置输入和输出插件。
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.1-linux-x86_64.tar.gz
tar -xzf kibana-7.10.1-linux-x86_64.tar.gz
sudo mv kibana-7.10.1 /opt/kibana
编辑 /opt/kibana/config/kibana.yml
文件,配置Elasticsearch的URL。
sudo /opt/logstash/bin/logstash -f /opt/logstash/conf/logstash.conf
sudo /opt/kibana/bin/kibana
const winston = require('winston');
const { ElasticsearchTransport } = require('winston-elasticsearch');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new ElasticsearchTransport({
client: {
host: 'localhost',
port: 9200,
},
}),
],
});
logger.info('This is an info log.');
logger.error('This is an error log.');
通过上述方法,你可以在Ubuntu上有效地监控和管理Node.js应用程序的日志。选择合适的工具和配置方式,可以帮助你更好地跟踪和分析应用程序的运行状况。
辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
推荐阅读: Ubuntu系统清理网络缓存技巧