Ubuntu环境下监控网站流量的常用方法
iftop是Ubuntu默认仓库中的命令行工具,可实时显示网卡上的主机间带宽使用情况,支持按IP、端口过滤。
sudo apt install iftopsudo iftop -i eth0(eth0替换为你的网卡名,如ens33);常用参数:-n(显示IP而非域名)、-P(显示端口)、-F 192.168.1.0/24(限定网段)。q退出。nload以直观的柱状图展示每个网卡的实时流量,支持切换接口、查看总量和峰值。
sudo apt install nloadsudo nload;按左右箭头切换网卡,按q退出。nethogs可定位具体进程的网络消耗,解决“哪个程序在占用带宽”的问题。
sudo apt install nethogssudo nethogs eth0(eth0为网卡名);显示内容包括进程名、PID、发送/接收速率,按q退出。vnStat记录历史流量数据,生成每日/每月报表,适合长期监控。
sudo apt install vnstatsudo vnstat -u -i eth0(激活指定网卡监控);需等待1-2天生成有效数据。vnstat -d(今日流量)、vnstat -m(本月流量)、vnstat -l(实时流量)。GoAccess可将Web日志转换为HTML报告,展示访问量、热门页面、状态码、客户端分布等信息。
sudo apt install goaccessgoaccess /var/log/nginx/access.log(交互式界面);goaccess /var/log/nginx/access.log -o /var/www/html/report.html --log-format=COMBINED(COMBINED为Nginx默认日志格式,需与access_log配置一致);--real-time-html参数,通过浏览器访问http://your_server_ip/report.html查看实时数据。log_format COMBINED '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"';)。Webalizer生成静态HTML报告,适合快速查看访问统计(如访问量、时间分布、来源)。
sudo apt install webalizersudo webalizer /var/log/apache2/access.log.1(分析前一天的Apache日志);报告默认保存在/var/www/html/webalizer/,通过浏览器访问查看。mod_status提供Apache的性能概况(如活动连接、请求速率、CPU使用率),需通过Web界面访问。
sudo vim /etc/apache2/mods-enabled/status.conf;Require ip指令,允许你的IP访问(如Require ip 192.168.1.100);sudo systemctl restart apache2;http://your_server_ip/server-status(添加?refresh=5可自动刷新)。Nginx需手动启用状态模块,查看基本连接信息(如活动连接、请求总数)。
sudo vim /etc/nginx/nginx.conf;server块中添加:location /nginx_status {
stub_status;
allow 192.168.1.100; # 允许的IP
deny all;
}
sudo systemctl restart nginx;http://your_server_ip/nginx_status。Active connections(活动连接)、server accepts handled requests(请求总数)等信息。适合需要集中监控多台服务器或关联其他指标(如CPU、内存)的场景。