温馨提示×

Apache在CentOS上的性能监控怎么做

小樊
33
2025-12-07 15:11:14
栏目: 智能运维

监控目标与总体思路

  • 覆盖三层指标:
    1. Apache 业务指标(吞吐、并发、响应、慢请求);
    2. 系统资源(CPU、内存、磁盘 I/O、网络);
    3. 日志与可视化(实时查看、报表、告警)。
  • 建议采用“实时看板 + 历史趋势 + 阈值告警”的组合,便于定位瓶颈与复盘。

开箱即用的实时监控

  • 启用并访问 mod_status
    1. 在配置中增加:
      <Location “/server-status”>
      SetHandler server-status
      Require host 127.0.0.1 # 生产环境请限制来源

      如使用 ExtendedStatus On,可获得更细的计分板指标;完成后执行:systemctl restart httpd。
    2. 访问 http://服务器IP/server-status 或使用 http://服务器IP/server-status?auto 获取机器可读状态。
  • 终端实时查看:
    • 安装并使用 apachetop:sudo yum install -y apachetop;sudo apachetop。
  • 可视化报表:
    • 安装并使用 GoAccess:sudo yum install -y goaccess;goaccess /var/log/httpd/access_log -o report.html --log-format=COMBINED。
  • 系统资源监控:
    • 使用 top/htop、vmstat、iostat 观察 CPU、内存、I/O 与负载变化,配合 Apache 指标联动判断瓶颈归属(应用 vs 系统)。

指标采集与可视化方案

  • 轻量采集器方案(推荐对接企业时序库/监控平台):
    1. 使用 Categraf 的 Apache 插件采集 server-status?auto 指标:
      • 配置 conf/input.apache/apache.toml:
        [[instances]]
        scrape_uri = “http://localhost/server-status/?auto”
        insecure = false
      • 校验:./categraf --test --inputs apache;无误后启动采集服务。
    2. 常见采集项:BusyWorkers、IdleWorkers、Total Accesses、Total kBytes、Uptime、CPU 占用、各 Worker 状态 等,可直接用于绘制吞吐、并发、响应耗时趋势图与阈值告警。
  • 日志到可视化:
    • GoAccess 生成 HTML/JSON 报表,便于非实时复盘与分享。
  • 日志摘要与告警:
    • 使用 Logwatch 生成 HTML/邮件 日报/周报,快速了解错误与异常趋势。

负载与压力测试配合监控

  • 基准/负载/压力测试工具与用法:
    • ab(ApacheBench):sudo yum install -y httpd-tools;ab -n 10000 -c 100 http://目标/。
    • http_load:模拟多并发持续访问,适合长时稳定负载对比。
    • httperf:更贴近真实会话与连接行为,便于发现连接瓶颈。
  • 执行要点:
    • 在测试期间同步观察 mod_status 与系统资源,定位是 并发连接、Worker 数、带宽/磁盘/CPU 哪一环节受限;
    • 测试环境尽量接近生产(网络、实例规格、文件缓存、数据库等),测试时间要足够长以观察稳定性与内存泄漏迹象。

关键指标与阈值示例

  • 建议重点关注的指标与经验阈值(需结合实际业务调优):
    • 并发与队列
      • BusyWorkers 接近 MaxRequestWorkers/MaxClients 时,说明并发吃满;
      • 伴随 IdleWorkers 长时间接近 0,且请求排队/超时增多,应提升并发能力或优化应用。
    • 吞吐与延迟
      • Requests per second(RPS)Time per request 的趋势是否稳定;RPS 下降且延迟升高常见于后端/数据库瓶颈或连接数不足。
    • 连接健康
      • KeepAlive 场景下关注 KeepAliveTimeout 与后端处理能力匹配,避免长连接占用 Worker。
    • 错误与慢请求
      • 5xx/4xx 比例突增、以及 Longest/Mean 请求时间 异常,优先排查应用与依赖服务。
    • 系统资源
      • CPU 持续打满、I/O 等待升高、内存紧张或网络带宽饱和,都可能限制 Apache 表现。
  • 并发能力调优方向(与监控联动验证):
    • event/worker/prefork 之间选择更契合业务的 MPM
    • 合理提升 MaxRequestWorkers/MaxClients、ThreadsPerChild
    • 调整 KeepAlive On、MaxKeepAliveRequests、KeepAliveTimeout
    • 启用 mod_deflate 压缩、mod_cache/mod_cache_disk 缓存;
    • 必要时引入 Nginx/HAProxy 做反向代理与负载均衡,分摊并发与静态资源压力。

0