Node.js日志Ubuntu如何监控

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

在Ubuntu上监控Node.js日志可以通过多种方法实现,以下是一些常用的方法和工具:

使用journalctl命令查看系统日志

通过以下命令可以查看与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.js应用程序时指定了日志文件的路径,可以直接查看该文件。例如:

node app.js logs/app.log 2>&1 &

这会将应用程序的输出重定向到 logs/app.log 文件中。你可以使用 catlesstail 等命令查看日志文件内容:

cat logs/app.log
less logs/app.log
tail -f logs/app.log

使用第三方日志管理工具

还可以使用诸如Logstash、Fluentd或Graylog等第三方日志管理工具来收集、分析和存储Node.js日志。这些工具可以帮助你更方便地查看和分析日志数据。

使用Winston和Bunyan进行日志记录

Winston

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

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进行集中式日志管理

ELK Stack(Elasticsearch、Logstash、Kibana)是一个流行的集中式日志管理系统。你可以将Node.js应用程序的日志发送到Elasticsearch,然后使用Kibana进行实时日志搜索和分析。

  1. 安装和配置Elasticsearch
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
  1. 安装和配置Logstash
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
  1. 配置Logstash

编辑 /opt/logstash/conf/logstash.conf 文件,配置输入和输出插件。

  1. 安装和配置Kibana
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
  1. 配置Kibana

编辑 /opt/kibana/config/kibana.yml 文件,配置Elasticsearch的URL。

  1. 启动Elasticsearch、Logstash和Kibana
sudo /opt/logstash/bin/logstash -f /opt/logstash/conf/logstash.conf
sudo /opt/kibana/bin/kibana
  1. 在Node.js应用程序中使用Winston发送日志到Logstash
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系统清理网络缓存技巧