Показать страницуИстория страницыСсылки сюдаНаверх Эта страница только для чтения. Вы можете посмотреть её исходный текст, но не можете его изменить. Сообщите администратору, если считаете, что это неправильно. ====== Очистка диска Ubuntu и настройка fail2ban ====== ===== Проблема ===== Диск заполнен на 97%, основная причина - логи fail2ban занимают ~33GB из-за записи каждого запроса от локального IP в INFO уровне. ===== Диагностика ===== ==== Проверка свободного места ==== <code bash> # Общая информация по разделам 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 </code> ==== Проверка Docker ==== <code bash> # Что занимает место в 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 </code> ===== Решение проблемы с fail2ban ===== ==== Шаг 1: Проверка текущего состояния ==== <code bash> # Проверка логов 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 </code> ==== Шаг 2: Изменение уровня логирования ==== <code bash> # Редактирование конфига sudo nano /etc/fail2ban/fail2ban.conf </code> Найти и изменить: <file> [DEFAULT] loglevel = WARNING </file> **Важно:** Изменить с ''INFO'' на ''WARNING'' чтобы не логировать каждое игнорирование локального IP. ==== Шаг 3: Исправление прав на /var/log ==== <code bash> # Проверка текущих прав ls -ld /var/log # Исправление прав (если нужно) sudo chmod 755 /var/log # Проверка результата ls -ld /var/log </code> Должно быть: ''drwxr-xr-x'' вместо ''drwxrwxr-x'' ==== Шаг 4: Настройка logrotate ==== <code bash> sudo nano /etc/logrotate.d/fail2ban </code> Содержимое файла: <file> /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 } </file> **Изменения:** * ''daily'' - ротация каждый день * ''rotate 3'' - хранить 3 архива * ''maxsize 50M'' - ротация при достижении 50MB * ''su root root'' - исправление проблемы с правами ==== Шаг 5: Тестирование logrotate ==== <code bash> # Тест конфигурации sudo logrotate -d /etc/logrotate.d/fail2ban # Должно быть без ошибок "insecure permissions" </code> ==== Шаг 6: Очистка логов ==== <code bash> # Очистка больших логов 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* </code> ==== Шаг 7: Перезапуск fail2ban ==== <code bash> # Перезапуск сервиса sudo systemctl restart fail2ban # Проверка статуса sudo systemctl status fail2ban # Проверка применения loglevel sudo fail2ban-client get loglevel </code> Должно вывести: ''WARNING'' или ''30'' ==== Шаг 8: Проверка через время ==== <code bash> # Подождать минуту sleep 60 # Размер лога должен остаться маленьким ls -lh /var/log/fail2ban.log # Последние строки - только важные сообщения tail -50 /var/log/fail2ban.log </code> ===== Дополнительная очистка (опционально) ===== ==== Очистка journald ==== <code bash> # Проверка размера journalctl --disk-usage # Очистка старше 3 дней sudo journalctl --vacuum-time=3d # Или ограничение размером sudo journalctl --vacuum-size=500M </code> ==== Очистка Docker ==== <code bash> # Удаление неиспользуемых образов, контейнеров, volumes docker system prune -a --volumes # Или избирательно docker image prune -a docker volume prune docker container prune </code> ==== Очистка APT кеша ==== <code bash> sudo apt autoremove sudo apt autoclean sudo apt clean </code> ===== Результат ===== После выполнения всех шагов: * ✅ Освобождено ~32-33GB дискового пространства * ✅ Диск заполнен на 44% вместо 97% * ✅ Fail2ban больше не генерирует гигабайты логов * ✅ Автоматическая ротация логов настроена * ✅ Система работает стабильно ===== Мониторинг ===== <code bash> # Регулярная проверка дискового пространства df -h # Проверка размера логов sudo du -sh /var/log/fail2ban.log # Проверка топ-10 больших файлов sudo find /var/log -type f -exec du -h {} + | sort -rh | head -10 </code> ---- **Дата создания:** 2025-12-13\\ **Проверено на:** Ubuntu 24.04 LTS\\ **Fail2ban версия:** любая vm/nginx/07-file2ban_log.txt Последнее изменение: 2025/12/13 20:21 — admin