Linux vsftp性能监控与实时诊断
一 核心监控指标与定位路径
二 命令行实时观测清单
systemctl status vsftpdss -tulnp | grep :21 或 netstat -tulnp | grep :21top -p $(pgrep vsftpd) 或 htop(需安装)ps aux | grep vsftpdvmstat 1(关注 r、b、si/so、wa)mpstat -P ALL 1free -miostat -x 1(关注 %util、await、svctm)iotop(需安装)dstat -d(需安装)iftop -i any 'port 21'nloadvnstat -i eth0tcpdump -i any port 21 -w vsftpd_traffic.pcapnethogs(需安装)tail -f /var/log/xferlogjournalctl -u vsftpd -fiostat/dstat 属于 sysstat 工具集,Debian/Ubuntu 可 sudo apt-get install sysstat,CentOS/RHEL 可 sudo yum install sysstat。三 日志与带宽限速配置要点
/etc/vsftpd.conf 中确保
xferlog_enable=YESxferlog_file=/var/log/xferlogxferlog_std_format=YESsystemctl restart vsftpdtail -f /var/log/xferlog(字段包含传输字节数与时间,可用于计算吞吐)/etc/vsftpd.conf
local_max_rate=(本地用户最大速率,单位 字节/秒)anon_max_rate=(匿名用户最大速率)systemctl restart vsftpd四 可视化与告警方案
五 一键巡检脚本与阈值建议
/usr/local/bin/vsftpd_monitor.sh,chmod +x)#!/usr/bin/env bash
TS=$(date '+%F %T')
echo "[$TS] vsftpd status: $(systemctl is-active vsftpd)"
echo "[$TS] FTP 21 port: $(ss -tulnp | grep ':21 ' | wc -l) listening sockets"
echo "[$TS] ESTABLISHED: $(ss -tulnp | grep ':21 ' | grep ESTAB | wc -l)"
echo "[$TS] vsftpd CPU%: $(ps -C vsftpd -o %cpu= | awk '{sum+=$1} END {printf \"%.1f\", sum}')"
echo "[$TS] Load avg: $(awk '{printf "%.2f %.2f %.2f", $1,$2,$3}' /proc/loadavg)"
echo "[$TS] Mem free: $(free -m | awk '/Mem:/ {print $4}') MB"
echo "[$TS] Disk util%: $(iostat -x 1 2 | awk '/^avg-cpu/ {getline; getline; print $14}')"
echo "[$TS] xferlog last 60s: $(tail -n 1000 /var/log/xferlog | awk -v d="$(date -d '60 seconds ago' '+%b %d %H:%M:%S')" '$0 >= d {n++} END {print n+0}')"
echo "---"
* * * * * /usr/local/bin/vsftpd_monitor.sh >> /var/log/vsftpd_monitor.log 2>&1vsftpd 非 active以上方案覆盖从命令行实时观测、日志与限速配置,到可视化与告警的完整链路;按需组合即可在分钟级定位 vsftpd 的性能瓶颈与异常。