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