温馨提示×

怎么监控linux ftpserver

小樊
40
2026-10-05 05:27:03
栏目: 智能运维

监控 Linux 上的 FTP 服务器(如 vsftpd、ProFTPD、Pure-FTPd 等)可以从服务状态、连接情况、日志、性能、安全几个层面来做。下面按常见场景给你一个实用方案。


一、确认 FTP 服务类型

先确认你用的是哪种 FTP 服务:

ps aux | grep -E "vsftpd|proftpd|pure-ftpd"

或者:

systemctl list-units | grep ftp

二、基础服务监控(是否存活)

1. systemd 服务状态

systemctl status vsftpd

设置开机自启并监控:

systemctl enable vsftpd

2. 进程监控

pgrep vsftpd

三、实时监控连接情况

1. 查看当前 FTP 连接

netstat -antp | grep :21
# 或
ss -antp | grep :21

2. 统计连接数

ss -ant | grep :21 | wc -l

3. 查看登录用户(vsftpd)

watch -n 1 "ps -ef | grep ftp"

四、日志监控(最重要)

vsftpd 日志位置

/var/log/vsftpd.log
/var/log/messages

实时查看:

tail -f /var/log/vsftpd.log

常见关注点:

  • 登录成功/失败
  • 匿名登录
  • 文件上传/下载
  • 异常 IP 暴力破解

示例:

grep "FAIL" /var/log/vsftpd.log

五、自动化监控方案

1. 使用 fail2ban(防爆破)

apt install fail2ban

配置:

[vsftpd]
enabled = true
port = ftp
logpath = /var/log/vsftpd.log
maxretry = 5

2. 使用 Zabbix / Prometheus

  • 监控项:
    • FTP 端口存活
    • 连接数
    • 日志错误频率
  • 示例 Zabbix key:
net.tcp.listen[21]

六、安全与性能建议

  • 禁用匿名登录
  • 限制最大连接数(vsftpd.conf):
max_clients=50
max_per_ip=5
  • 使用 FTPS(SSL)而非明文 FTP
  • 定期检查异常登录 IP

七、简单一键监控脚本示例

#!/bin/bash
if ! systemctl is-active --quiet vsftpd; then
  echo "vsftpd is down!" | mail -s "FTP Alert" admin@xxx.com
fi

如果你能告诉我:

  • 用的 哪种 FTP 服务
  • 是 内网还是公网
  • 想监控 性能 / 安全 / 运维告警 哪一类

我可以给你更精确的配置示例。

0 踩