在Debian上配置JS日志分析工具需先安装Node.js与npm,推荐Winston日志库;用PM2管理进程并配置logrotate轮转日志;ELKStack可实现高级分析与可视化,包括安装Elasticsearch、Logstash和Kibana,配置日志输入过滤与索引;另可用grep、awk等命令进行简单排查。
Debian JS日志分析工具配置指南
作者:技术拾光
时间:2026-07-07
浏览:338
文章目录
在Debian上搭建JS日志分析工具并不复杂,但前提是基础环境一次性搭对。下面从工具安装开始,一步步完成整个链路。
一、前置准备:在Debian上安装必要工具

- Node.js与npm:这是运行JS应用和日志库(如Winston)的基础。通过
curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -添加NodeSource仓库,再执行sudo apt install -y nodejs即可完成安装。 - 日志库:推荐使用Winston(功能全面)或Pino(高性能)。以Winston为例,
npm install winston安装后,配置文件示例如下:
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(), // 结构化日志,后续分析更顺手
transports: [
new winston.transports.File({ filename: '/var/log/my-js-app/error.log', level: 'error' }),
new winston.transports.File({ filename: '/var/log/my-js-app/combined.log' })
]
});
module.exports = logger;
二、在Debian上收集与存储JS日志
- 进程管理工具:用PM2管理JS应用进程,自动重启并记录日志。安装:
sudo npm install -g pm2;启动应用并指定日志路径:pm2 start app.js --name my-js-app --out /var/log/my-js-app/out.log --err /var/log/my-js-app/err.log;保存进程列表实现开机自启:pm2 sa ve。 - 日志轮转:用logrotate防止日志撑爆磁盘。创建配置文件
/etc/logrotate.d/my-js-app,内容如下:
/var/log/my-js-app/*.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 root adm
}
(每日轮转、保留7天、压缩旧日志,常规配置足够使用。)
三、使用ELK Stack在Debian上进行高级分析与可视化
ELK(Elasticsearch+Logstash+Kibana)是Debian上最常用的JS日志分析方案,整套搭建不复杂,但有几个关键步骤需要留意。
- 安装ELK组件
- Elasticsearch:添加Elastic官方仓库(
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -;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 install elasticsearch,启动服务sudo systemctl start elasticsearch并设置开机自启。 - Kibana:
sudo apt install kibana,启动服务sudo systemctl start kibana,默认通过http://your-server-ip:5601访问。 - Logstash:
sudo apt install logstash,创建配置文件/etc/logstash/conf.d/js-logs.conf,内容如下:
- Elasticsearch:添加Elastic官方仓库(
input {
file {
path => "/var/log/my-js-app/*.log" # 日志文件路径
start_position => "beginning" # 首次运行从文件开头读取
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{LOGLEVEL:loglevel} %{GREEDYDATA:message}" }
}
date {
match => [ "timestamp", "ISO8601" ]
}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
index => "js-logs-%{+YYYY.MM.dd}" # 按日期分索引
}
}
配置完成后,重启Logstash:sudo systemctl restart logstash。
- 配置Kibana
- 访问
http://your-server-ip:5601,进入“Management”→“Stack Management”→“Index Patterns”,点击“Create index pattern”,输入js-logs-*(匹配Logstash输出的索引),选择时间字段(如timestamp),完成创建。 - 进入“Discover”界面,选择刚创建的索引模式,即可搜索(如
loglevel: "error")、过滤(如timestamp >= "now-1d/d")和可视化日志数据(比如通过“Visualize”创建错误数量趋势图)。
- 访问
四、基础命令行分析(可选)
如果不想使用可视化,直接在Debian命令行中也能快速定位问题,几个常用工具即可:
- grep:搜索特定关键字,例如只看错误日志:
grep "ERROR" /var/log/my-js-app/combined.log。 - awk:提取并统计字段,例如统计错误数量:
awk '/ERROR/ {count++} END {print "Error count:", count}' /var/log/my-js-app/combined.log。 - sed:替换或清理日志内容,例如把“error”替换成“warning”:
sed 's/error/warning/g' /var/log/my-js-app/combined.log。
以上就是Debian上配置JS日志分析工具的全流程,从基础安装到ELK可视化,再到轻量级命令行排查,按需选择即可。关键在于把每一步的配置细节搞对,后续排查问题会节省很多时间。
实用工具推荐
电子包浆
使用 ›绿化、压缩、噪点和虚拟水印,自由调节做旧程度。
图片压缩
使用 ›选择画质和输出格式,预览压缩前后的大小。