首页主机资讯CentOS环境下如何监控网站流量

CentOS环境下如何监控网站流量

时间2025-10-24 10:49:03发布访客分类主机资讯浏览1186
导读:一、通过Web服务器内置模块监控(精准到网站维度) 1. Nginx:使用stub_status模块 Nginx内置的stub_status模块可提供实时连接数、请求数等基础流量指标,需通过配置开启。 步骤1:编辑Nginx配置文件(通常...

一、通过Web服务器内置模块监控(精准到网站维度)

1. Nginx:使用stub_status模块

Nginx内置的stub_status模块可提供实时连接数、请求数等基础流量指标,需通过配置开启。

  • 步骤1:编辑Nginx配置文件(通常为/usr/local/nginx/conf/nginx.conf/etc/nginx/nginx.conf),在server块内添加以下内容:
    location /nginx_status {
        
        stub_status on;
                  # 开启状态统计
        access_log off;
                  # 关闭该路径日志(减少冗余)
        allow 127.0.0.1;
                 # 仅允许本地访问(安全加固,生产环境可限制为特定IP)
        deny all;
                    # 拒绝其他IP访问
    }
        
    
  • 步骤2:重启Nginx使配置生效
    systemctl restart nginx
    
  • 步骤3:验证状态页
    在服务器本地执行curl http://127.0.0.1/nginx_status,输出结果包含:
    • Active connections:当前活跃连接数(包括“正在读取请求”“正在返回响应”“等待请求”的连接);
    • server accepts handled requests:已接受的连接总数、成功处理的连接数、已处理的请求数(因Keep-Alive特性,requests通常大于handled)。
      若需远程访问,可将allow改为对应客户端IP,并通过浏览器访问http://服务器IP/nginx_status

2. Apache:使用mod_status模块

Apache的mod_status模块可提供更详细的请求级统计(如请求处理时间、每秒请求数),需启用并配置。

  • 步骤1:启用mod_status模块
    编辑Apache配置文件(/etc/httpd/conf/httpd.conf/etc/apache2/apache2.conf),取消以下行注释:
    LoadModule status_module modules/mod_status.so
    
  • 步骤2:配置状态页访问权限
    在配置文件中添加以下内容(通常放在< VirtualHost> 或全局配置中):
    <
        Location "/server-status">
        
        SetHandler server-status
        Require ip 127.0.0.1       # 仅允许本地访问(生产环境可替换为客户端IP)
    <
        /Location>
        
    
  • 步骤3:重启Apache服务
    systemctl restart httpd
    
  • 步骤4:访问状态页
    在服务器本地执行curl http://127.0.0.1/server-status?auto,或通过浏览器访问http://服务器IP/server-status,输出结果包含:
    • Total accesses:总请求数;
    • Total traffic:总流量(如“9.6 MB”);
    • CPU Usage:CPU占用率(如“0.0135%”);
    • 1 requests currently being processed:当前正在处理的请求数;
    • 4 idle workers:空闲工作进程数。

二、使用命令行工具监控(快速定位流量异常)

1. iftop:实时监控网卡带宽占用

iftop可按IP地址和端口实时显示网络带宽使用情况,快速识别占用流量的客户端或服务。

  • 安装iftop
    sudo yum install iftop -y
    
  • 运行iftop
    sudo iftop -i eth0  # 替换为服务器网卡名称(如ens33,可通过`ip a`查看)
    
    输出结果中,左侧为IP地址和端口,右侧为带宽占用(=> 表示发送流量,< =表示接收流量),可快速定位高流量来源。

2. nethogs:监控进程级带宽使用

nethogs可按进程显示网络带宽占用,帮助定位具体应用(如Nginx、MySQL)的流量消耗。

  • 安装nethogs
    sudo yum install nethogs -y
    
  • 运行nethogs
    sudo nethogs eth0  # 替换为服务器网卡名称
    
    输出结果中,PID列表示进程ID,USER列表示进程所有者,DEV列表示网卡,SENTRECV列表示发送和接收的流量。

3. apachetop:实时监控Apache请求

apachetop可实时显示Apache访问日志中的请求信息(如URL、请求频率、响应时间),适合分析Apache网站的流量细节。

  • 安装apachetop
    sudo yum install apachetop -y
    
  • 运行apachetop
    sudo apachetop -f /var/log/httpd/access_log  # 替换为Apache访问日志路径
    
    输出结果中,URL列表示请求的URL,Count列表示请求数,Bandwidth列表示带宽占用,可快速识别热门页面或异常请求。

4. netstat/ss:查看实时连接状态

netstat(传统工具)或ss(更高效的替代工具)可查看当前网络连接状态,统计活跃连接数或异常连接。

  • 查看HTTP(80端口)活跃连接数
    netstat -ant | grep ':80' | grep ESTABLISHED | wc -l  # 统计ESTABLISHED状态的连接数
    ss -ant | grep ':80' | grep ESTABLISHED | wc -l      # ss命令更高效
    
  • 查看异常IP连接(如同一IP大量连接)
    netstat -ant | grep ':80' | grep ESTABLISHED | awk '{
    print $5}
        ' | cut -d: -f1 | sort | uniq -c | sort -nr | head -20  # 统计每个IP的连接数,排序取前20
    
    输出结果中,左侧为连接数,右侧为IP地址,可快速识别CC攻击或异常客户端。

三、使用第三方监控工具(全面、自动化)

1. Zabbix:企业级综合监控

Zabbix可监控Apache/Nginx的性能指标(如请求数、响应时间、CPU占用率),支持阈值告警和历史数据查询。

  • 部署步骤
    • 在被监控机安装Zabbix Agent:sudo yum install zabbix-agent -y
    • 修改Agent配置文件(/etc/zabbix/zabbix_agentd.conf),指定Zabbix Server IP:Server=ZABBIX_SERVER_IP
    • 重启Agent:systemctl restart zabbix-agent
    • 在Zabbix Server Web界面添加被监控主机,关联Apache/Nginx模板(如“Template App Apache”)。
  • 效果:可在Web界面查看实时流量、历史趋势图,并设置告警(如流量超过100Mbps时发送邮件)。

2. Prometheus + Grafana:可视化监控

Prometheus负责收集指标,Grafana负责可视化,适合大规模部署或自定义监控需求。

  • 部署步骤
    • 安装Prometheus:下载并配置prometheus.yml,添加Apache/Nginx Exporter(如prometheus_apache_exporter);
    • 安装Apache Exporter:sudo yum install prometheus-apache-exporter -y,配置Apache暴露指标端点(如/metrics);
    • 安装Grafana:sudo yum install grafana -y,导入Apache/Nginx监控模板(如“Apache Server Monitoring”);
    • 效果:可在Grafana Dashboard中查看实时流量、请求率、错误率等指标,并设置告警规则。

3. logwatch:日志分析报告

logwatch可定期分析Apache/Nginx日志,生成流量、错误等统计报告,适合离线查看历史数据。

  • 安装logwatch
    sudo yum install logwatch -y
    
  • 配置logwatch
    编辑/etc/logwatch/conf/logwatch.conf,设置输出格式(如Output = html)和范围(如Range = yesterday);
  • 生成报告
    sudo logwatch --output html --range 'yesterday' --service http  # 分析Apache日志
    sudo logwatch --output html --range 'yesterday' --service nginx  # 分析Nginx日志
    
    报告会发送到指定邮箱(需配置),包含请求数、流量、错误数等统计信息。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: CentOS环境下如何监控网站流量
本文地址: https://pptw.com/jishu/734344.html
CentOS中如何进行移动端适配 如何监控服务器性能使用日志

游客 回复需填写必要信息