Apache2在Ubuntu上的性能监控方法
top是Linux系统自带的实时进程监控工具,可显示Apache2进程(通常为apache2或www-data)的CPU、内存占用率及运行状态;htop是top的增强版,提供更直观的界面和排序功能(如按CPU/内存排序)。安装htop需运行sudo apt install htop,运行后通过F6键选择排序方式即可快速定位Apache2的资源消耗。
vmstat:监控系统虚拟内存、CPU利用率及磁盘I/O,安装sysstat包后运行vmstat 1(每秒刷新一次),可查看r(运行队列长度)、free(空闲内存)等指标,反映Apache2的内存压力;iostat:监控CPU及磁盘I/O性能,运行iostat -x 1可查看%util(磁盘利用率)、await(平均I/O等待时间),判断Apache2是否因磁盘IO瓶颈导致性能下降;sar:收集并报告系统活动信息,运行sar -u 10查看CPU利用率,sar -d 10查看磁盘I/O,通过历史数据对比分析Apache2的负载趋势。netstat(或ss)可查看Apache2的网络连接状态,运行sudo netstat -tuln | grep apache2(或ss -tuln | grep apache2)可查看Apache2监听的端口(如80、443)及连接数,判断是否有大量连接处于TIME_WAIT或ESTABLISHED状态,辅助排查连接数过多的问题。
mod_status是Apache自带的性能监控模块,可提供详细的服务器状态信息(如当前连接数、请求数、工作线程状态)。启用步骤:
/etc/apache2/apache2.conf或/etc/apache2/mods-enabled/status.conf),取消LoadModule status_module modules/mod_status.so的注释;ExtendedStatus On开启详细状态;<Location /server-status>
Require local
SetHandler server-status
</Location>
sudo systemctl restart apache2;http://your_server_ip/server-status查看状态页(添加?auto&refresh=5可自动刷新)。/var/log/apache2/access.log记录所有请求信息,使用tail -f /var/log/apache2/access.log实时查看请求频率、响应状态码(如200、500);/var/log/apache2/error.log记录错误信息(如PHP错误、连接超时),通过grep "error" /var/log/apache2/error.log筛选错误日志,结合脚本发送报警(如邮件通知)。apache_exporter(Apache2的Prometheus导出器):wget https://github.com/Lusitaniae/apache_exporter/releases/download/v0.13.0/apache_exporter-0.13.0.linux-amd64.tar.gz,解压后运行./apache_exporter -apache.scrape_uri="http://localhost/server-status?auto";/etc/prometheus/prometheus.yml)添加apache job:scrape_configs:
- job_name: 'apache'
static_configs:
- targets: ['localhost:9117']
Zabbix是企业级开源监控解决方案,支持监控Apache2的多项指标(如请求数、响应时间、CPU/内存使用率)。配置步骤:
apache监控模板(如Template App Apache);Apachetop是实时监控Apache2访问日志的工具,类似top命令,可显示请求频率、响应时间、客户端IP等信息。安装:sudo apt install apachetop,运行:apachetop -f /var/log/apache2/access.log,快速识别高频请求或慢请求。