监控CentOS网站的流量需结合实时流量查看、历史数据统计及进程/连接级分析,以下是具体方法和工具推荐:
实时监控可快速定位流量峰值、异常连接或带宽占用过高的进程,适合排查网站访问慢、流量激增等问题。
iftop是类似top的实时流量工具,可显示每个连接的实时带宽(发送/接收)、IP地址及端口,帮助识别占用带宽的客户端或服务。
sudo yum install iftop -ysudo iftop -i eth0(eth0为网站服务器网卡,可通过ip a命令确认)P键显示端口,按N键隐藏IP(仅显示域名)。nload以柱状图+数字形式展示总体入站/出站流量,界面简洁,适合快速查看流量趋势。
sudo yum install nload -ysudo nload eth0(支持多网卡切换,按左右箭头)。nethogs可显示每个进程的网络带宽占用,帮助定位是哪个应用(如Apache/Nginx、数据库)消耗了大量流量。
sudo yum install nethogs -ysudo nethogs eth0(实时刷新,按q退出)。历史统计数据可用于评估网站流量增长、制定带宽规划或排查长期异常。
vnstat以数据库形式记录网络接口的流量数据(支持按天、月、年统计),无需实时运行,资源占用低。
sudo yum install vnstat -ysudo vnstat -u -i eth0(启动数据收集)vnstat -d -i eth0vnstat -m -i eth0vnstat -l -i eth0(实时模式)。sar是Linux系统自带的性能监控工具,可记录网络接口的接收/发送数据包、字节数(需提前开启sysstat服务)。
sudo yum install sysstat -ysudo systemctl enable sysstat && sudo systemctl start sysstatsar -n DEV 1 10(每秒收集1次,共10次,显示各接口的流量统计)。若需分析流量的具体内容(如请求的URL、协议类型、来源IP),可使用以下工具:
tcpdump是强大的包分析工具,可捕获指定网卡的流量,并通过过滤条件(如端口、IP)定位网站相关流量。
sudo yum install tcpdump -ysudo tcpdump -i eth0 port 80 -nnsudo tcpdump -i eth0 port 443 -nnsudo tcpdump -i eth0 -w website_traffic.pcap。若网站运行在Apache或Nginx上,可直接使用其自带的模块查看流量:
/etc/httpd/conf/httpd.conf,添加ExtendedStatus On和<Location /server-status> SetHandler server-status </Location>,重启Apache。http://服务器IP/server-status,查看请求总数、带宽使用、最耗资源的URL等。/etc/nginx/nginx.conf,添加location /nginx_status { stub_status; },重启Nginx。http://服务器IP/nginx_status,查看活跃连接数、请求数、接收/发送字节数。eth0、ens33),可通过ip a命令查看。以上工具可根据需求组合使用,例如用vnstat查看长期趋势,用iftop排查实时异常,用tcpdump分析具体流量内容。