如何配置Debian上的JS日志分析工具
导读:一、前置准备:安装必要工具 在Debian上配置JS日志分析工具前,需先安装基础工具和依赖: Node.js与npm:用于运行JS应用及日志库(如Winston)。通过curl -sL https://deb.nodesource.com...
一、前置准备:安装必要工具 在Debian上配置JS日志分析工具前,需先安装基础工具和依赖:
- 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; ```。
二、收集与存储日志
- 进程管理工具:使用PM2管理JS应用进程,自动重启并记录日志。安装PM2:
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 save
。 - 日志轮转:通过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进行高级分析与可视化 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
,内容如下: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 { # 发送数据到Elasticsearch hosts => ["localhost:9200"] index => "js-logs-%{ +YYYY.MM.dd} " # 按日期分索引 } } ```;重启Logstash:`sudo systemctl restart logstash`。
- Elasticsearch:添加Elastic官方仓库(
- 配置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”创建错误数量趋势图)。
- 访问
四、基础命令行分析(可选) 若无需复杂可视化,可使用以下命令行工具快速分析日志:
- 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
。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何配置Debian上的JS日志分析工具
本文地址: https://pptw.com/jishu/722552.html