• 教你如何监控 Apache?


    什么是 Apache?

    Apache 是一款 HTTP 服务器软件,现在更名为 "http",而 Apache 则成了一个(包含httpd的项目)巨大的基金组织,根据习惯后文都用 Apache 特指 Apache HTTP Server(httpd)。Apache 诞生于1995年,且从 96 年 4 月起就一直是全球最流行的 web 服务器。该项目的定位是一个开源且跨平台(支持类 UNIX 系统和 Windows 系统)的 HTTP 服务器,旨在提供与当前 HTTP 标准同步,安全、高效、可拓展的服务。

    监控Apache的参数

    Apache提供哪些监控参数

    现在主要使用的 Apache 版本是 Version 2.0,Version 2.2 和 Version 2.4。提供的监控参数基本没有变化,下表是 Apache2.2 提供的主要监控参数(相对实用的)。

    参数名称 参数描述
    Total Accesses 服务器自启动来接收到的请求连接数
    Total kBytes 传输的总数据量,单位是KB
    CPULoad NCPU负荷
    Uptime 运行时间,单位秒
    ReqPerSec 每秒请求数
    BytesPerSec 每秒传输数据量,单位B/s
    BytesPerReq 平均每个请求的数据传输量(事实上就是BytesPerSec/BytesPerSec)
    BusyWorkers 在跑的进程数
    IdleWorkers 空闲的进程数

    此外,还有其他监控参数如当前使用的 Apache 版本号、每个进程状态,以及 Apache2.4 提供的新参数如当前的系统时间、Apache 安装时间等等。这些数据犹如鸡肋,有用却并不是我们想在监控页需要看到的。

    简单说明一下

    Total Accesses 就是服务器启动后,总访问数,Total kBytes 对应于这些访问共用了多少数据传输量,单位是 KB。

    CPULoad 是指当前服务器占用 CPU 的负荷值。值的一提的是,在 2.4 版本里还有 Server Load1,Server Load5 和 Server Load15 三个参数,分别表示前 1、5 和 15 分钟内 cpu 的平均负荷。

    Uptime 就是从启动到你看到不间断的运行时间,单位秒。在 2.4 版里也多了个 ServerUptime 参数,表示结果也人性化一点,会分开显示天时分秒,然而这也改变不了它没有什么用命运。

    ReqPerSec,BytesPerSec 和 BytesPerReq,这个就不用解释了就是字面上的意思,前两个分别是每秒请求数、每秒传输的数据量。第三个参数是前两个参数计算来的,计算公式是BytesPerReq=BytesPerSec/ReqPerSec

    BusyWorkers,IdleWorkers 分别是在跑的进程和空闲的进程数。IdleWorkers 就是负责等待新的访问(连接请求),而 BusyWorkers 就是在读请求和发送回应。监控参数 Scoreboard 里面的'_'对应于 IdleWorkers,'W' 和 'R' 对应于 BusyWorkers。

    具体参数可看示例官网状态页,另外这个页面是为了方便抓取数据而设置的。

    下图是通过定时抓取这些参数值制作的图表。

    apache折线图

    如何获取Apache监控参数

    Apache性能监控参数会在一个监控页面上显示,这个监控页需要开启 Apache 的 mod_status 模块。这就要求在 Apache 的配置文件 httpd.conf 里添加一段 Location。在版本 2.0 和 2.2 里面,添加如下

    <Location /server-status>
    	SetHandler server-status
    
    	Order Deny,Allow
    	Deny from all
    	Allow from example.com
    </Location>
    

    在版本 2.4 里面添加如下

    <Location "/server-status">
    	SetHandler server-status
    	Require host example.com
    </Location>
    

    在版本 2.3.6 之后指令 ExtendedStatus 默认处于 On 的状态。所以,在版本 2.3.6 之前,想要看到全部的监控参数,需要在 httpd.conf 中添加如下:

    ExtendedStatus On
    

    官网上也说了,把这个打开的话会影响到 Apache 的速度。请根据自身情况和实际需求,酌情使用。

    配置完了需要重起一下 Apache,然后就会在你your.server.name/server-status上看到监控页面,大概是这个样子:

    Apache-example

    如果需要定时刷新的话,只需要把网址改为your.server.name/server-status?refresh=N,每 N 秒自动刷新一次。如果需要采集数据的话,这个your.server.name/server-status?auto对你帮助会大一些。

    顺便安利一下,装一个Ci,就能看到前面关于 Apache 基于时间的运行状态的图了。免费注册免费使用,还能设置报警策略。具体,戳这里

    Cloud Insight 集监控、管理、计算、协作、可视化于一身,帮助所有 IT 公司,减少在系统监控上的人力和时间成本投入,让运维工作更加高效、简单。

    本文转自 OneAPM 官方博客

  • 相关阅读:
    解决DataGridView中回车换行的问题
    几条经典的SQL语句
    SQL中把一个表中的数据导出到一个新表中
    [转载]TCP的网络编程中一些典型的问题,以及一些分析和解决方案
    Delphi调用C#web服务参数无法接收的问题
    IIS服务器不支持中文文件名的解决方法
    SQL SERVER2005导入导出工具
    为远程IP服务器取个本地认识的主机名
    Win Form中如何把ENter回车键转换成Tab键
    CheckedListBox 用法
  • 原文地址:https://www.cnblogs.com/oneapm/p/5167136.html
Copyright © 2020-2023  润新知