温馨提示×

debian js日志过大咋办

小樊
47
2026-10-10 02:28:53
栏目: 编程语言

在 Debian 上 JS(Node.js / 前端构建 / 浏览器)日志过大,通常分几种场景,下面按常见情况给你一套“治标 + 治本”的方案。


一、先判断日志是哪来的

常见来源:

  1. Node.js 服务日志(pm2、node 直接跑)
  2. Nginx / Apache 反代日志
  3. 前端构建日志(webpack / vite / npm run build)
  4. 系统 journalctl 日志
  5. Docker 容器日志

二、Node.js 服务日志过大(最常见)

1️⃣ 用 PM2(推荐)

如果你用 pm2:

pm2 install pm2-logrotate

配置示例:

pm2 set pm2-logrotate:max_size 10M
pm2 set pm2-logrotate:retain 7
pm2 set pm2-logrotate:compress true

✅ 效果:

  • 单日志最大 10MB
  • 保留 7 天
  • 自动压缩

2️⃣ 不用 PM2(原生 Node)

用 logrotate 管理:

sudo nano /etc/logrotate.d/node-app

示例:

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

三、Nginx / Apache 日志太大

Nginx

sudo nano /etc/logrotate.d/nginx

默认一般已经有了,确保有:

rotate 14
compress

手动执行:

sudo logrotate -f /etc/logrotate.d/nginx

四、前端构建日志(webpack / vite)

治本方案

  • 不要在生产环境输出详细日志
  • 修改 package.json:
"scripts": {
  "build": "vite build --logLevel warn"
}

或者:

npm run build > /dev/null 2>&1

五、journalctl 日志爆炸(系统级)

sudo journalctl --disk-usage
sudo journalctl --vacuum-size=200M

限制大小:

sudo nano /etc/systemd/journald.conf
SystemMaxUse=500M
MaxRetentionSec=7day

重启:

sudo systemctl restart systemd-journald

六、Docker 日志过大(如果你跑在容器里)

sudo nano /etc/docker/daemon.json
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "5"
  }
}

重启 Docker:

sudo systemctl restart docker

七、快速清理(临时救急)

# 查看大日志
sudo du -sh /var/log/*

# 清空(不删文件)
sudo truncate -s 0 /var/log/xxx.log

八、推荐组合(生产最佳实践)

✅ Node 服务:PM2 + logrotate
✅ Web 服务:Nginx + logrotate
✅ 容器:Docker log limit
✅ 系统:journalctl 限额


如果你能告诉我:

  • 是 Node 服务 / Nginx / Docker / 前端构建
  • 日志路径或报错内容

我可以直接帮你写一份 专属配置。

0 踩