Apache Web Server 如何监控

王玉松 2024-09-25 12:50:10

Apache 是老一辈 Web Server,LAMP 中的 A 就是 Apache,占据了很高的市场份额。Apache 的进程是 httpd,其服务稳定性至关重要,本文讲解如何使用 Categraf 监控 Apache 的性能指标,及时发现可能的故障,保障 Apache Web Server 的稳定性。

Apache 监控测试环境

  • 操作系统 版本: Centos 8.2
  • Categraf 版本: v0.3.79

安装 Apache

在基于 RHEL 的发行版中,Apache 软件包和服务被称为 httpd。想要安装 Apache,使用 root 或者其他有 sudo 权限的用户身份,运行下面的命令:

sudo yum install -y httpd

安装 httpd 可能遇到的问题

如若 yum 安装报如下错:

  • 段错误
  • cache错误
  • Repository AppStream is listed more than once in the configuration
  • Repository extras is listed more than once in the configuration
  • Repository PowerTools is listed more than once in the configuration
  • Repository centosplus is listed more than once in the configuration

请参考 此博客 进行排查修复。

配置 Apache stub status

编辑 Apache 的配置文件(通常位于 /etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf)并确保包含以下内容:

<Location "/server-status">
    SetHandler server-status
</Location>
  • <Location "/server-status">:Location 指令用于匹配客户端请求的 URL 路径。在这个例子中,/server-status 是客户端请求的路径
  • SetHandler server-status:SetHandler 指令告诉 Apache 对该路径使用 server-status 处理程序。server-status 是 Apache 提供的一个内置处理程序,负责输出服务器的状态信息。这些信息包括当前的请求处理情况、工作线程状态、系统性能等。

启动 Apache

# 设置 httpd 服务开机自启
sudo systemctl enable httpd
# 启动 httpd 服务
sudo systemctl start httpd
# 查看 httpd 服务状态
sudo systemctl status httpd

关于 Apache stub status 的详细信息,请查阅:Apache stub staus

Categraf Apache 监控插件

Categraf Apache 监控插件的配置文件路径是:conf/input.apache/apache.toml,配置样例如下:

[[instances]]
scrape_uri = "http://localhost/server-status/?auto"
host_override = ""
insecure = false
custom_headers = {}
log_level = "info"

完成配置之后,可以通过 Categraf test 命令来测试是否能够采集到 Apache 的性能指标:

./categraf --test --inputs apache

如果一切正常,可以看到类似如下的输出: Apache stub status指标

监控指标中包含了CPU 占用、Worker 数量、连接数等信息。之后通过 systemctl restart categraf 重启 Categraf 服务,即可开始监控 Apache 的性能指标,稍等片刻,理论上就可以在时序库中查到 Apache 的性能指标。

如此便完成了 Apache Web Server 的监控数据采集,希望对您有帮助。

关于作者

本文作者王玉松,文章可转载,转载请注明出处,尊重技术人员的成果。

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云
OpenSource
开源版
Flashcat
Flashcat
FlashDuty
Flashduty