写点什么

Squid 可观测性最佳实践

作者:观测云
  • 2025-10-29
    上海
  • 本文字数:1848 字

    阅读完需:约 6 分钟

Squid 可观测性最佳实践

Squid 介绍

Squid Cache(简称 Squid)是一款开源、高性能的代理缓存服务器,支持 HTTP、HTTPS、FTP 等协议;它位于客户端与源站之间,将热门内容缓存在内存或磁盘中,以显著提升访问速度、减少带宽占用,并提供访问控制、日志审计、内容过滤等丰富功能,被广泛用于企业网关、CDN 边缘节点及运营商缓存场景。

Squid 为网站提供了三种代理方式,如下:




Squid 监控通过采集 cache.log / access.logsquid-exporter Prometheus 指标 及 10 分钟滚动命中率DNS 查询量 等实时数据,统一接入观测云,实现命中率、流量、错误、FD/内存/磁盘资源的多维可视化和告警,让用户一眼看清缓存效率与系统瓶颈。

观测云

观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。

部署 DataKit

DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。

登录观测云控制台,在「集成」 - 「DataKit」选择对应安装方式,当前采用 Linux 主机部署 DataKit。



采集器配置

通过 squid-exporter 采集 Squid 的指标数据,DataKit 使用 prom 采集器接收 squid-exporter 发送的指标数据。

Squid 暴露指标

  1. 下载 squid-exporter

  2. 运行 squid-exporter

squid-exporter 暴露了 9301 端口,暴露 Prometheus 格式指标数据

nohup  ./squid-exporter -squid-hostname "localhost" -squid-port 3128 -listen ":9301" &
复制代码

Squid 指标采集

复制 prom.conf.sample 为 squid.conf

cd /usr/local/datakit/conf.d/prom/cp prom.conf.sample squid.conf
复制代码

调整配置文件 squid.conf

  ## Exporter URLs.  urls = ["http://127.0.0.1:9301/metrics"]  ## Stream Size.   ## The source stream segmentation size, (defaults to 1).  ## 0 source stream undivided.   # stream_size = 1  ## Unix Domain Socket URL. Using socket to request data when not empty.  uds_path = ""  ## Ignore URL request errors.  ignore_req_err = false  ## Collector alias.  source = "squid-prom"  ...
复制代码

Squid 日志采集

squid 默认日志输出到 /var/log/squid 目录下:

  • access.log: 访问日志

  • cache.log: 缓存日志

进入 /usr/local/datakit/conf.d/samples 目录,执行以下命令:

cp logging.conf.sample squid.conf
复制代码

调整配置文件:

[[inputs.logging]]  # List of log files, supports batch specification using glob patterns.  # It is recommended to use absolute paths and specify file extensions.  # Narrow the scope as much as possible to avoid collecting unexpected files.  logfiles = [    "/var/log/squid/access.log",    "/var/log/squid/cache.log"  ]  ## Socket currently supports two protocols: tcp/udp. It is recommended to use internal  ## network ports for security.  sockets = [   #"tcp://0.0.0.0:9540",   #"udp://0.0.0.0:9541",  ]  # File path filtering using glob patterns, any file matching these patterns will not be collected  ignore = [""]  # Logging source, defaults to 'default' if empty  source = "squid"  ...
复制代码

关键指标




场景视图

登录观测云控制台,点击「场景」 -「新建仪表板」,输入 “Squid”, 选择 “Squid”,点击 “确定” 即可添加视图。




监控器(告警)

观测云内置了监控器模板,可以选择从模版创建监控器,并开启适合业务的监控器以及时通知相关成员关注问题,触发条件、频率等信息可以依据实际业务进行调整。

登录观测云控制台,点击「监控」 -「新建监控器」,输入 “Squid”, 选择对应的监控器,点击 “确定” 即可添加。



总结

观测云对 Squid-Cache 的监控采用「日志+指标」一体化方案:自动采集 access.log/cache.log 与 squid-exporter Prometheus 指标,实时计算 5 min/60 min 命中率、DNS 查询量、磁盘/内存/FD 使用率等关键 KPI,并在图形仪表盘一键展示,同时内置低命中率、FD 耗尽、后端错误率等多级告警模板,帮助运维在 1 分钟内发现缓存异常并定位根因。

用户头像

观测云

关注

还未添加个人签名 2021-02-08 加入

云时代的系统可观测平台

评论

发布
暂无评论
Squid 可观测性最佳实践_squid_观测云_InfoQ写作社区