Debian LNMP流量监控方法
使用Linux自带工具实时查看服务器整体网络流量及进程级带宽占用,快速定位流量异常来源。
sudo apt install iftop;使用:sudo iftop -i eth0(eth0替换为实际网卡)。sudo apt install nload;使用:nload eth0。sudo apt install nethogs;使用:sudo nethogs eth0。针对Nginx服务器本身的请求、连接等流量指标进行监控,了解网站访问情况。
/etc/nginx/nginx.conf),添加:location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1; # 仅本地访问,生产环境可限制为特定IP
deny all;
}
② 重启Nginx:sudo systemctl restart nginx;③ 访问http://服务器IP/nginx_status(需本地访问)。/var/log/nginx/access.log)统计流量趋势、热门页面、客户端来源等。使用awk、grep等工具分析,例如:# 统计今日访问量
awk -v date="$(date '+%d/%b/%Y')" '$4 ~ date {count++} END {print count}' /var/log/nginx/access.log
# 统计Top 10访问IP
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | head -10
监控数据库的查询流量、连接数等,避免数据库成为流量瓶颈。
sudo mysqladmin -u root -p status(显示连接数、查询/秒)、sudo mysqladmin -u root -p extended-status | grep -E "Queries|Connections"(详细指标)。/etc/mysql/mysql.conf.d/mysqld.cnf,添加:slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2 # 超过2秒的查询视为慢查询
重启MySQL:sudo systemctl restart mysql;使用mysqldumpslow分析日志:sudo mysqldumpslow -s t /var/log/mysql/slow.log(按时间排序)。通过专业工具实现长期流量趋势监控、告警及可视化,适合生产环境。
sudo apt install prometheus grafana;配置:修改Prometheus的targets文件添加监控目标,Grafana中导入Nginx、MySQL模板。sudo apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent;配置:通过Web界面添加主机,设置流量监控项(如网络接口接收/发送速率)。通过集中式日志管理分析流量趋势、异常请求,适合大规模环境。
sudo apt install elasticsearch logstash kibana;配置:修改Logstash的nginx.conf解析访问日志,Kibana中创建Dashboard。