Node.js 日志在 Ubuntu 如何做到实时告警
时间:2026-08-25 | 作者:云端旅人 | 阅读:0在Ubuntu系统里,用Node.js做日志实时告警,这事儿看起来挺技术,其实拆解开来也就那么几招。怎么把日志里的异常信号变成及时的提醒?下面这几种方案,可以根据你的场景挑着用。
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. 用 pm2 和 pm2-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、钉钉等渠道,灵活度很高。
以上三种方案,从轻量到重量,从手动到自动化,基本覆盖了大部分场景。选哪个,取决于你的日志量、告警实时性要求以及团队已有的基础设施。没有最好的,只有最适合的。
免责声明:文中图文均来自网络,如有侵权请联系删除,心愿游戏发布此文仅为传递信息,不代表心愿游戏认同其观点或证实其描述。
相关文章
更多-
- Ubuntu下使用Git管理Swagger项目的完整指南
- 时间:2026-08-31
-
- Ubuntu下GIMP滤镜使用全指南:从基础操作到批量处理
- 时间:2026-08-31
-
- Ubuntu下使用Telnet进行远程管理的完整指南
- 时间:2026-08-31
-
- Ubuntu中如何查看磁盘I/O对CPU的影响:cpustat替代方案
- 时间:2026-08-31
-
- Ubuntu系统使用cpustat查看多核CPU信息的方法
- 时间:2026-08-31
-
- Ubuntu中Rust日志系统配置指南
- 时间:2026-08-27
-
- Ubuntu下Rust集成第三方库完整指南
- 时间:2026-08-27
-
- Ubuntu下Rust跨平台开发:从环境搭建到自动化测试指南
- 时间:2026-08-27
精选合集
更多大家都在玩
大家都在看
更多-
- 为什么湿头发更容易断裂 蚂蚁庄园今日答案9.15
- 时间:2026-09-14
-
- 蚂蚁庄园今天答题答案2026年9月15日
- 时间:2026-09-14
-
- 蚂蚁庄园答题今日答案2026年9月15日
- 时间:2026-09-14
-
- 蚂蚁庄园小课堂2026年9月15日最新题目答案
- 时间:2026-09-14
-
- 小鸡答题今天的答案是什么2026年9月15日
- 时间:2026-09-14
-
- 蚂蚁庄园每日答题答案2026年9月15日
- 时间:2026-09-14
-
- 糖尿病患者禁食所有含糖食物吗 蚂蚁庄园今日答案9月15日
- 时间:2026-09-14
-
- 2026年9月14日蚂蚁新村答案
- 时间:2026-09-14
