1. 服务状态检查
使用systemctl命令(CentOS 7及以上)检查FTP服务(如vsftpd、proftpd)的运行状态,确认服务是否处于active (running)状态。例如:
sudo systemctl status vsftpd
若服务未运行,可通过sudo systemctl start vsftpd启动,并通过sudo systemctl enable vsftpd设置开机自启。
2. 端口监听状态验证
FTP服务器通常监听21端口(控制端口),使用netstat、ss或lsof命令检查端口是否处于监听状态:
sudo netstat -tuln | grep 21
sudo ss -tuln | grep 21
sudo lsof -i :21
若端口未监听,需检查FTP服务配置(如vsftpd.conf中的listen=YES)并重启服务。
3. 实时日志监控与分析
FTP日志(vsftpd默认路径为/var/log/vsftpd.log,proftpd为/var/log/proftpd/proftpd.log)记录了用户操作、错误信息等关键数据。使用以下命令实时查看日志:
sudo tail -f /var/log/vsftpd.log
结合grep过滤关键信息(如错误、登录尝试):
sudo tail -f /var/log/vsftpd.log | grep "error"
sudo grep "user login attempt" /var/log/vsftpd.log
通过awk提取特定字段(如IP、时间):
awk '{print $1, $8}' /var/log/vsftpd.log # 提取IP和操作时间
使用logwatch工具定期分析日志(需安装并配置):
sudo yum install logwatch
sudo logwatch --service=vsftpd --detail=High
4. 系统资源监控
使用top、htop(需安装)监控系统CPU、内存占用,识别FTP服务是否导致资源瓶颈:
top
htop # 更直观的交互式监控
使用vmstat监控虚拟内存、磁盘I/O:
vmstat 1 # 每秒刷新一次
使用iftop(需安装)监控FTP流量(默认网卡为eth0):
sudo iftop -i eth0
5. 专业监控工具部署
node_exporter收集系统指标,ftp_exporter(若有)收集FTP特定指标,存储至Prometheus,再通过Grafana可视化(如服务状态仪表盘、流量趋势图),并设置报警通知。check_ftp插件监控FTP服务可用性(如连接测试、文件上传/下载测试),配置报警机制(邮件、短信)。6. 自定义监控脚本
编写Shell脚本定期检查FTP服务状态,若异常则发送邮件通知。例如check_ftp.sh:
#!/bin/bash
if systemctl is-active --quiet vsftpd; then
echo "vsftpd服务运行正常"
else
echo "vsftpd服务未运行" | mail -s "FTP服务警报" your_email@example.com
fi
通过cron设置定时任务(每5分钟执行一次):
crontab -e
*/5 * * * * /path/to/check_ftp.sh
7. FTP客户端测试
使用命令行FTP客户端(如ftp)测试服务器连接及基本操作(上传/下载),验证服务可用性:
ftp localhost
登录后执行put(上传)、get(下载)命令,观察是否成功。若连接失败,需检查防火墙(firewalld或iptables)是否放行21端口:
sudo firewall-cmd --add-service=ftp --permanent
sudo firewall-cmd --reload