Диск заполнен на 97%, основная причина - логи fail2ban занимают ~33GB из-за записи каждого запроса от локального IP в INFO уровне.
# Общая информация по разделам df -h # Размер основных директорий sudo du -h --max-depth=1 / 2>/dev/null | sort -rh | head -10 # Размер логов sudo du -sh /var/log/* | sort -rh | head -20 # Проверка размера journald journalctl --disk-usage
# Что занимает место в Docker docker system df # Размер Docker директорий sudo du -sh /var/lib/docker/overlay2 sudo du -sh /var/lib/docker/volumes sudo du -sh /var/lib/docker/containers
# Проверка логов fail2ban sudo tail -100 /var/log/fail2ban.log # Проверка активных jail sudo fail2ban-client status # Количество записей от локального IP grep "192.168.0.1" /opt/fail2ban/logs/nginx-access.log | wc -l
# Редактирование конфига sudo nano /etc/fail2ban/fail2ban.conf
Найти и изменить:
[DEFAULT] loglevel = WARNING
Важно: Изменить с INFO на WARNING чтобы не логировать каждое игнорирование локального IP.
# Проверка текущих прав ls -ld /var/log # Исправление прав (если нужно) sudo chmod 755 /var/log # Проверка результата ls -ld /var/log
Должно быть: drwxr-xr-x вместо drwxrwxr-x
sudo nano /etc/logrotate.d/fail2ban
Содержимое файла:
/var/log/fail2ban.log {
daily
rotate 3
maxsize 50M
compress
notifempty
delaycompress
missingok
su root root
postrotate
fail2ban-client flushlogs 1>/dev/null || true
endscript
create 640 root adm
}
Изменения:
daily - ротация каждый деньrotate 3 - хранить 3 архиваmaxsize 50M - ротация при достижении 50MBsu root root - исправление проблемы с правами# Тест конфигурации sudo logrotate -d /etc/logrotate.d/fail2ban # Должно быть без ошибок "insecure permissions"
# Очистка больших логов fail2ban sudo truncate -s 0 /var/log/fail2ban.log sudo truncate -s 0 /var/log/fail2ban.log.1 sudo rm -f /var/log/fail2ban.log.*.gz # Проверка результата df -h / ls -lh /var/log/fail2ban*
# Перезапуск сервиса sudo systemctl restart fail2ban # Проверка статуса sudo systemctl status fail2ban # Проверка применения loglevel sudo fail2ban-client get loglevel
Должно вывести: WARNING или 30
# Подождать минуту sleep 60 # Размер лога должен остаться маленьким ls -lh /var/log/fail2ban.log # Последние строки - только важные сообщения tail -50 /var/log/fail2ban.log
# Проверка размера journalctl --disk-usage # Очистка старше 3 дней sudo journalctl --vacuum-time=3d # Или ограничение размером sudo journalctl --vacuum-size=500M
# Удаление неиспользуемых образов, контейнеров, volumes docker system prune -a --volumes # Или избирательно docker image prune -a docker volume prune docker container prune
sudo apt autoremove sudo apt autoclean sudo apt clean
После выполнения всех шагов:
# Регулярная проверка дискового пространства df -h # Проверка размера логов sudo du -sh /var/log/fail2ban.log # Проверка топ-10 больших файлов sudo find /var/log -type f -exec du -h {} + | sort -rh | head -10
Дата создания: 2025-12-13
Проверено на: Ubuntu 24.04 LTS
Fail2ban версия: любая