温馨提示×

debian js日志为何占用过高

小樊
41
2026-09-28 09:13:52
栏目: 编程语言

在 Debian 系统上,JS(JavaScript)相关日志占用磁盘过高,通常不是系统本身的问题,而是由运行在 Debian 上的应用或服务产生的。下面按「常见原因 → 排查方法 → 解决方案」来说明。


一、常见原因

1. Node.js 应用日志未限制

  • 使用 console.log 大量输出
  • 未配置日志级别(debug / info 全开)
  • 未做日志切割(logrotate)

典型目录:

/var/log/
~/logs/
项目目录/logs/

2. PM2 日志无限增长

PM2 默认会把 stdout / stderr 写入:

~/.pm2/logs/

如果不配置:

  • 文件只增不减
  • 多个应用叠加后非常占空间

3. Nginx + 前端 JS 报错日志

  • 前端 JS 报错被记录到:
/var/log/nginx/access.log
/var/log/nginx/error.log
  • 爬虫、扫描器频繁访问导致日志暴涨

4. systemd 服务日志(journalctl)

JS 服务以 systemd 运行:

journalctl -u yourapp.service

默认日志可能:

  • 不限制大小
  • 长期累积

5. Docker 容器日志

若 JS 应用在 Docker 中:

/var/lib/docker/containers/

默认 json-file 日志无限增长


二、快速排查方法

1. 找出大日志文件

sudo du -sh /var/log/*
sudo find / -name "*.log" -size +100M

2. 查看 JS 相关日志位置

ps aux | grep node
ls -lh ~/.pm2/logs/

3. 查看 systemd 日志大小

journalctl --disk-usage

4. Docker 日志检查

docker ps
sudo du -sh /var/lib/docker/containers/*

三、解决方案

✅ 1. 配置 logrotate(强烈推荐)

示例(Node.js 日志):

sudo nano /etc/logrotate.d/nodejs

内容:

/var/log/nodejs/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    copytruncate
}

✅ 2. PM2 日志限制

pm2 install pm2-logrotate
pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7

✅ 3. 减少日志输出

  • 使用日志库(winston / pino)
  • 生产环境关闭 debug
logger.level = 'info'

✅ 4. 限制 systemd 日志

sudo nano /etc/systemd/journald.conf

修改:

SystemMaxUse=500M
MaxRetentionSec=7day

然后:

sudo systemctl restart systemd-journald

✅ 5. Docker 日志限制

/etc/docker/daemon.json:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}
sudo systemctl restart docker

四、总结一句话

Debian 本身不写 JS 日志,问题几乎都出在 Node.js / PM2 / Nginx / Docker 的日志管理不当。

如果你愿意,可以告诉我:

  • 是 Node / PM2 / Nginx / Docker
  • 日志路径或报错内容

我可以直接帮你写一份针对性配置。

0 踩