OPNsense 日志设置指南

本文摘要在 OPNsense 中,默认的日志配置非常容易“爆盘”,会导致出现以下问题:Web 管理页面打不开或极慢网络转发明显卡顿、CPU 飙高config.xml、/var 写满,服务异常甚至系统只读、需要进单用户模式清理为了避免出现日志爆满的情况,在系统运行平稳以后,建议关闭以下日志选项。系统设置导航到 系统 > 设置 > 日志,限制保留文件数量和最大文件大小。如果不需要记录系统日志,可以...

在 OPNsense 中,默认的日志配置非常容易“爆盘”,会导致出现以下问题:

  • Web 管理页面打不开或极慢
  • 网络转发明显卡顿、CPU 飙高
  • config.xml、/var 写满,服务异常
  • 甚至系统只读、需要进单用户模式清理

为了避免出现日志爆满的情况,在系统运行平稳以后,建议关闭以下日志选项。

系统设置

导航到 系统 > 设置 > 日志,限制保留文件数量和最大文件大小。如果不需要记录系统日志,可以关闭启用本地日志选项,并清除日志文件。

系统日志设置页面截图

防火墙日志

导航到 防火墙 > 设置 > 高级,关闭日志记录选项。这些日志对日常使用没有任何有益的帮助。

防火墙高级设置截图

导航到 防火墙 > 规则,关闭各个接口规则的日志记录选项。

防火墙规则关闭日志截图

流量日志

转到 报告 > 流量设置,如果不需要查看流量记录,可以关闭本地捕获。

流量设置截图

DNS 日志

转到 服务 > Unbound DNS > 高级,关闭日志记录查询等功能。

Unbound DNS高级设置截图

转到 报告 > 设置,不需要查看 DNS 解析和拦截数据,建议关闭 Unbound DNS 统计功能。

Unbound DNS统计设置截图

入侵检测

开启 IDS/IPS 功能,默认设置会记录非常多的日志,为了避免爆盘,建议调整默认日志选项。转到 服务 > 入侵检测 > 管理,将保存日志数量设置为较少的值,或直接设置为 0,不保存任何日志。

入侵检测日志管理截图

插件日志

部分插件有日志记录功能,在插件使用正常后,可以考虑关闭日志选项。例如,clash 或 sing-box 配置选项当中,可以把日志记录层级“level”设置为最低的 “error”。

{
  "log": {
    "disabled": false,
    "level": "error",
    "timestamp": true
  }
}

爆盘处理

已经爆盘,出现了打不开 Web 配置界面时,可以采取以下删除日志方式进行应急处理。

1. 手动删除日志

查看日志大小:

du -sh /var/log/*

清空 /var/log 目录下所有日志内容:

find /var/log -type f -exec truncate -s 0 {} \;

2. 一键清理脚本

将以下内容保存为 /root/clean_logs.sh

#!/bin/sh
# ========= 基本配置 =========
LOG_DIR="/var/log"
DAYS=3                    # 删除 3 天前的轮转日志
MAX_SIZE="50M"            # 超过 50MB 的日志强制清空

echo "[*] log cleanup start: $(date)"

# 1. 清空当前正在写的日志(安全方式)
find "$LOG_DIR" -type f -name "*.log" -exec truncate -s 0 {} \;

# 2. 删除旧的 logrotate 文件
find "$LOG_DIR" -type f \( -name "*.log.*" -o -name "*.gz" \) -mtime +"$DAYS" -exec rm -f {} \;

# 3. 强制清空异常大的日志文件
find "$LOG_DIR" -type f -size +"$MAX_SIZE" -exec truncate -s 0 {} \;

# 4. 清理 Unbound / Suricata 等可能残留的缓存
rm -f /var/unbound/*.log 2>/dev/null
rm -f /var/log/suricata/*.log 2>/dev/null

echo "[*] log cleanup done: $(date)"

添加执行权限:

chmod +x /root/clean_logs.sh

手动执行:

sh /root/clean_logs.sh

通过 crontab 自动执行:

crontab -e

加入一行(每天凌晨 3 点自动清理):

0 3 * * * /root/clean_logs.sh >/dev/null 2>&1

觉得内容不错?我要

评论 暂无评论
暂无评论,快来抢沙发吧~