如何通过日志追踪Ubuntu Node.js请求流程

347
2025/4/5 3:32:55
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

在Ubuntu系统中,通过日志追踪Node.js应用程序的请求流程可以帮助你了解应用程序的运行状况、性能瓶颈以及潜在的问题。以下是一些步骤和工具,可以帮助你实现这一目标:

1. 启用Node.js日志

首先,确保你的Node.js应用程序已经配置了日志记录。你可以使用内置的console.log,或者更高级的日志库如winstonmorgan等。

使用console.log

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  console.log('Request received at', new Date());
  res.send('Hello World!');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});

使用winston

const express = require('express');
const winston = require('winston');
const app = express();

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' })
  ]
});

if (process.env.NODE_ENV !== 'production') {
  logger.add(new winston.transports.Console({
    format: winston.format.simple()
  }));
}

app.get('/', (req, res) => {
  logger.info('Request received at', new Date());
  res.send('Hello World!');
});

app.listen(3000, () => {
  logger.info('Server is running on port 3000');
});

2. 使用pm2管理Node.js进程

pm2是一个流行的Node.js进程管理器,可以帮助你监控和管理Node.js应用程序。

安装pm2

sudo npm install pm2 -g

启动应用程序

pm2 start app.js --name my-app

查看日志

pm2 logs my-app

3. 使用nginx作为反向代理

如果你使用nginx作为反向代理,可以通过配置nginx日志来追踪请求流程。

配置nginx

编辑/etc/nginx/sites-available/default文件,添加以下内容:

server {
    listen 80;
    server_name yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        access_log /var/log/nginx/access.log;
        error_log /var/log/nginx/error.log;
    }
}

重启nginx

sudo systemctl restart nginx

4. 使用tcpdump抓包分析

如果你需要更详细的网络流量分析,可以使用tcpdump工具。

安装tcpdump

sudo apt-get install tcpdump

抓包

sudo tcpdump -i eth0 port 80 -w capture.pcap

5. 使用Wireshark分析抓包文件

Wireshark是一个强大的网络协议分析器,可以帮助你分析抓包文件。

安装Wireshark

sudo apt-get install wireshark

打开抓包文件

启动Wireshark并打开capture.pcap文件进行分析。

通过以上步骤和工具,你可以有效地追踪和分析Ubuntu系统中Node.js应用程序的请求流程。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: Python脚本在Ubuntu上如何运行