Linux vsftpd 性能监控与实时状态查看
一 快速实时查看
- 服务与系统日志
- 查看服务状态与最近日志:sudo systemctl status vsftpd
- 实时跟踪 systemd 日志:sudo journalctl -u vsftpd -f
- 说明:可快速判断服务是否存活、是否频繁重启、是否报错退出。
- 端口与连接
- 检查监听与连接:sudo ss -tulnp | grep :21 或 sudo netstat -tulnp | grep :21
- 统计已建立连接数:ss -tnp | grep ‘:21’ | grep ESTAB | wc -l
- 说明:确认 21 端口监听正常,观察 ESTAB 状态会话数量变化。
- 进程资源
- 实时查看 vsftpd 资源:top -p $(pgrep vsftpd) 或 htop(按 P/M 排序查看 CPU/内存)
- 说明:定位 CPU、内存是否成为瓶颈。
- 传输日志
- 实时查看传输记录:sudo tail -f /var/log/xferlog
- 说明:观察文件 上传/下载 的时间、大小、客户端 IP,用于判断吞吐与异常。
二 深入性能定位
- 系统资源瓶颈
- CPU/内存/IO:vmstat 1 5、iostat -x 1、dstat
- 说明:当 vsftpd 吞吐下降时,排查是否受 CPU、内存 或 磁盘 I/O 限制。
- 文件与描述符
- 打开文件与连接:sudo lsof -i :21 或 lsof -p $(pgrep vsftpd)
- 说明:核对进程打开的文件与网络连接,辅助定位 文件描述符 与连接泄漏等问题。
- 网络层抓包
- 抓控制通道:sudo tcpdump -i any port 21 -nn -v
- 抓数据通道(主动模式数据端口通常为 20):sudo tcpdump -i any ‘port 20 or port 21’ -nn -v
- 说明:分析 TCP 握手、重传、控制命令与数据通道行为,定位网络瓶颈与异常。
三 可视化与告警方案
- 轻量可视化
- Monitorix:安装后在 http://服务器IP:8080/monitorix/ 查看,包含 vsftpd 连接数、速率与系统资源趋势。
- NetData:安装后在 http://服务器IP:19999 实时查看,支持自定义告警规则。
- 企业级监控
- Prometheus + Grafana:通过 vsftpd_exporter 采集指标,Grafana 制作连接数趋势、速率热力图等面板,并配置 邮件/短信 告警。
四 一键巡检脚本
- 用途:每分钟采集一次服务状态、连接数、vsftpd CPU 占用,并追加到日志,便于审计与告警联动。
- 脚本示例(保存为 /usr/local/bin/vsftpd_monitor.sh):
#!/usr/bin/env bash
LOGFILE="/var/log/vsftpd_monitor.log"
status=$(systemctl is-active vsftpd)
ts=$(date '+%F %T')
conn=$(ss -tnp | grep ':21' | grep ESTAB | wc -l)
cpu=$(ps -C vsftpd -o %cpu= | awk '{sum+=$1} END {printf "%.1f", sum}')
echo "$ts | status=$status | conn=$conn | cpu=$cpu%" >> "$LOGFILE"
- 定时任务
- 编辑:crontab -e
- 添加:“* * * * * /usr/local/bin/vsftpd_monitor.sh”
- 告警联动
- 可在脚本中增加判断,例如当 status != active 时调用 mail 或企业微信/钉钉机器人发送告警。
五 配置与优化要点
- 日志路径与内容
- 传输日志常见路径:/var/log/xferlog(记录上传/下载文件名、大小、时间、客户端 IP)
- 运行日志常见路径:/var/log/vsftpd/vsftpd.log 或 /var/log/messages(记录登录、错误等)
- 建议:确保日志所在分区 磁盘空间充足,避免因磁盘写满导致服务异常。
- 关键配置项(/etc/vsftpd/vsftpd.conf)
- 并发与性能:max_clients(最大客户端数)、max_per_ip(每 IP 最大连接数)、local_max_rate / anon_max_rate(限速,单位 bytes/s)
- 超时与稳健:idle_session_timeout、data_connection_timeout
- 说明:结合监控数据逐步调优,避免一次性放开导致资源被占满。