位置:首页 > JavaScript > Node.js 日志在 Ubuntu 如何做到实时告警

Node.js 日志在 Ubuntu 如何做到实时告警

时间:2026-08-25  |  作者:云端旅人  |  阅读:0

在Ubuntu系统里,用Node.js做日志实时告警,这事儿看起来挺技术,其实拆解开来也就那么几招。怎么把日志里的异常信号变成及时的提醒?下面这几种方案,可以根据你的场景挑着用。

Node.js日志在Ubuntu如何做到实时告警

1. 用 tail -f 配合 Node.js 脚本

最直接的办法,就是利用系统自带的 tail -f 实时监听日志文件,然后通过管道把数据喂给Node.js脚本处理。脚本里写好判断逻辑,一旦发现关键字就触发告警。

操作步骤

先写一个Node.js脚本,用来接收数据流并做处理。这里给个最简单的示例,当然你也可以在里面加上邮件、信息或者Webhook的调用。

const fs = require('fs');
const net = require('net');
const logFile = '/path/to/your/logfile.log';
const server = net.createServer((socket) => {
  console.log('Client connected');
  const stream = fs.createReadStream(logFile, { encoding: 'utf8' });
  stream.on('data', (chunk) => {
    socket.write(chunk);
  });
  stream.on('end', () => {
    console.log('Log file ended');
  });
  stream.on('error', (err) => {
    console.error('Error reading log file:', err);
  });
});
server.listen(3000, () => {
  console.log('Server listening on port 3000');
});

然后,在终端里把 tail -f 的输出直接管道给这个脚本:

tail -f /path/to/your/logfile.log | node your-script.js

这样一来,日志每新增一行,脚本就会收到并处理。适合快速验证或小规模场景。

2. 用 pm2pm2-logrotate

如果你的Node.js应用本身就是用 pm2 管理的,那日志这块儿就更省事了。pm2 自带日志管理,还能配合它的生态模块实现轮转和告警。

操作步骤

先全局安装 pm2

npm install pm2 -g

启动应用,并给个名字方便后续管理:

pm2 start app.js --name my-app

想看实时日志,一个命令就搞定:

pm2 logs my-app

至于告警,可以结合 pm2-logrotate 模块做日志轮转,再配合其他工具(比如 email-notifier)实现告警推送。当然,你也可以在 pm2 的进程事件里挂载自定义脚本,比如监听进程异常退出或者日志中间出现特定错误时发通知。

3. 使用第三方监控工具

如果项目规模上去了,或者需要更可视化的告警体系,那就该上专业工具了。常见的组合有:

  • Prometheus + Grafana:监控和告警的黄金搭档,适合需要自定义指标的场景。
  • ELK Stack(Elasticsearch, Logstash, Kibana):日志收集、搜索、分析一条龙,告警可以靠ElastAlert或者Watcher实现。
  • PagerDuty:专注于事件管理和告警通知,和前面两个工具都能集成。

以 Prometheus + Grafana 为例

先下载并启动Prometheus:

wget https://github.com/prometheus/prometheus/releases/download/v2.30.3/prometheus-2.30.3.linux-amd64.tar.gz
tar xvfz prometheus-2.30.3.linux-amd64.tar.gz
cd prometheus-2.30.3.linux-amd64
./prometheus --config.file=prometheus.yml

然后编辑 prometheus.yml,把Node.js应用的监控端点加进去。接着安装Grafana:

sudo apt-get install -y software-properties-common apt-transport-https wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main"
sudo apt-get update
sudo apt-get install grafana

启动Grafana:

sudo systemctl start grafana-server

最后在Grafana里配置数据源(Prometheus),创建监控面板,并设置告警规则。告警通知可以选Email、Slack、钉钉等渠道,灵活度很高。

以上三种方案,从轻量到重量,从手动到自动化,基本覆盖了大部分场景。选哪个,取决于你的日志量、告警实时性要求以及团队已有的基础设施。没有最好的,只有最适合的。

免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。

相关文章

更多

精选合集

更多

大家都在玩

热门话题

大家都在看

更多