Ubuntu FTP Server 监控与日志管理
一 监控总览
- 服务状态与健康
- 使用 systemd 查看 vsftpd 状态与日志:sudo systemctl status vsftpd;实时查看服务日志:sudo journalctl -u vsftpd -f。必要时用 sudo systemctl restart vsftpd 恢复服务。
- 资源与性能
- 资源监控:top/htop(CPU/内存)、vmstat 1 5(虚拟内存与 I/O)、free -h(内存)、iostat -xz 1(磁盘 I/O,需安装 sysstat)、df -h/du -sh(磁盘空间)。
- 网络与连接
- 监听与连接:ss -tulnp | grep :21、netstat -tulnp;排查被动模式端口连通性(见下文日志与防火墙)。必要时用 ping/traceroute 检查链路。
- 日志集中与可视化
- 系统日志统一查看:journalctl -xe;搭建 Prometheus + Grafana 做可视化与告警(可选,适合长期运营与容量规划)。
二 日志管理
- 日志位置与实时查看
- vsftpd 常见日志:/var/log/vsftpd.log(传输与会话)、认证类日志常见于 /var/log/auth.log 或 /var/log/secure(PAM/SSH 登录审计)。实时查看:sudo tail -f /var/log/vsftpd.log;关键字检索:grep “关键字” /var/log/vsftpd.log。
- 日志配置要点(/etc/vsftpd.conf)
- 启用传输日志:xferlog_enable=YES
- 指定传输日志文件:xferlog_file=/var/log/vsftpd.log
- 使用标准格式:xferlog_std_format=YES
- 启用系统日志:syslog_enable=YES
- 指定设施:syslog_facility=local2
- 修改后重启:sudo systemctl restart vsftpd
- 输出到系统日志(rsyslog)
- 在 /etc/rsyslog.d/50-default.conf 增加:local2. /var/log/vsftpd.log*
- 重启 rsyslog:sudo systemctl restart rsyslog
- 日志轮转(logrotate)
三 关键配置与防火墙要点
- 被动模式端口范围(便于防火墙放行与观测)
- 在 /etc/vsftpd.conf 设置:pasv_enable=YES、pasv_min_port=10090、pasv_max_port=10100;重启服务生效。
- 防火墙放行
- FTP 控制端口:sudo ufw allow 21/tcp
- 被动模式端口段:sudo ufw allow 10090:10100/tcp
- 若启用 FTPS:sudo ufw allow 990/tcp
- 启用防火墙:sudo ufw enable
- 日志与被动端口的关联
- 传输或登录异常时,结合 /var/log/vsftpd.log 与 /var/log/auth.log 排查,并核对被动端口是否被防火墙放行。
四 故障排查与告警实践
- 快速排查清单
- 服务状态:sudo systemctl status vsftpd;必要时 sudo systemctl start vsftpd
- 配置核对:/etc/vsftpd.conf 中关键项(如 listen、anonymous_enable、local_enable、write_enable、chroot_local_user)
- 日志定位:会话/传输日志 /var/log/vsftpd.log;认证日志 /var/log/auth.log 或 /var/log/secure
- 资源与空间:df -h、du -sh、iostat -xz 1、free -h
- 网络与端口:ss -tulnp | grep :21、netstat -tulnp;必要时 ping/traceroute
- 系统日志:journalctl -xe
- 简单告警示例(cron + 邮件)
- 可视化监控(可选)
- 部署 Prometheus + Grafana,采集节点与应用指标并配置阈值告警,用于容量与可用性长期观测。