在Ubuntu下監控Node.js日志有多種方法,以下是一些常用的工具和命令:
在您的Node.js代碼中,使用console.log()
輸出常規日志信息,使用console.error()
輸出錯誤信息。這些日志將直接發送到控制臺。
如果您的Node.js應用程序將日志輸出到文件(例如:/var/log/myapp.log
),您可以使用tail -f
命令實時查看日志。在終端中輸入以下命令:
tail -f /var/log/myapp.log
這將顯示日志文件的最后幾行,并在文件更新時實時顯示新內容。
multitail
是一個強大的日志查看工具,可以同時監控多個日志文件,并提供實時更新、顏色高亮等功能。首先,您需要安裝multitail
:
sudo apt-get install multitail
然后,使用以下命令監控Node.js應用程序的日志文件:
multitail /var/log/myapp.log
您可以使用第三方日志管理工具,如logstash
、fluentd
或pm2
等,這些工具可以幫助您收集、分析和監控Node.js應用程序的日志。例如,使用pm2
監控日志:
sudo npm install pm2 -g
app.js
替換為您的入口文件):pm2 start app.js
Sentry是一個開源的錯誤跟蹤和日志聚合平臺,可以幫助您實時監控和修復崩潰。以下是使用Sentry的基本步驟:
git clone https://github.com/getsentry/self-hosted.git
或從這里下載對應的tar.gz
文件。
tar xvf self-hosted-21.8.0.tar.gz
mv self-hosted-21.8.0 self-hosted
cd self-hosted
./install.sh
(注意:安裝過程中會檢查最小配置,最低配置為4核8GB。)
docker-compose up -d
ELK套件提供了強大的日志收集、存儲和可視化功能。以下是使用ELK的基本步驟:
sudo apt-get install elasticsearch kibana
const { ElasticsearchTransport } = require('winston-elasticsearch');
const elasticsearchTransport = new ElasticsearchTransport({
clientOpts: { node: 'http://localhost:9200' }
});
const logger = winston.createLogger({
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' }),
elasticsearchTransport
]
});
通過上述方法,您可以有效地監控Ubuntu上的Node.js應用程序日志,確保應用程序的穩定運行和問題的快速排查。