{% extends "base.html" %} {% block title %}日志状态 - Squid Manager{% endblock %} {% block content %}

📘 日志轮转原理

Squid 默认会把请求/缓存/存储事件持续写入 access.log / cache.log / store.log,不会自动截断或归档,长期运行会让磁盘塞满。 常见的做法是结合 logrotatesquid -k rotate 信号:

  1. logrotate 周期性地把当前日志改名 (access.log.1, access.log.2.gz …),并创建新的空日志文件;
  2. logrotate 在 postrotate 钩子里执行 squid -k rotate,让 Squid 关闭旧 fd 并重新打开日志,避免日志写到被改名的旧文件里;
  3. 老化的日志按 rotate N 自动清理/压缩,既能保留审计又不会撑爆磁盘。

下表实时读取每个日志文件的元信息;颜色标识来自阈值:<{{ (warn_bytes / 1024 / 1024) | int }} MB 正常,≥{{ (warn_bytes / 1024 / 1024) | int }} MB 黄色,≥{{ (crit_bytes / 1024 / 1024 / 1024) | round(1) }} GB 红色。

{% if entries %} {% for e in entries %} {% endfor %}
日志文件 大小 状态 最后修改 年龄 可写 操作
{{ e.path }} {% if e.error %}
⚠ {{ e.error }}
{% endif %}
{{ e.size_human }} ({{ '{:,}'.format(e.size_bytes) }} B) {% if not e.exists %} ● 不存在 {% elif e.size_bytes >= crit_bytes %} ● 过大 (≥ {{ (crit_bytes / 1024 / 1024 / 1024) | round(1) }} GB) {% elif e.size_bytes >= warn_bytes %} ● 偏大 (≥ {{ (warn_bytes / 1024 / 1024) | int }} MB) {% else %} ● 正常 {% endif %} {{ e.mtime_human or '-' }} {% if e.age_days is not none %}{{ e.age_days }} 天{% else %}-{% endif %} {% if e.is_writable %} {% else %} {% endif %}
{% set parent_dir = e.path.rsplit('/', 1)[0] if '/' in e.path else '.' %} 📁 {{ parent_dir }}
{% else %}
📂

未在「路径设置」里配置任何日志路径。

{% endif %}

🔧 工具状态

logrotate 可执行 {% if logrotate_available %}可用 {% else %}未找到 请安装 logrotate 包 (apt: logrotate){% endif %}
Squid 二进制{{ binary }}
日志轮转配置 🔁 前往日志轮转 安装 logrotate.d/squid 后会按计划自动轮转

ℹ️ 提示

{% endblock %}