Назад | Перейти на главную страницу

Оптимизация размера файла журнала на виртуальной машине Ubuntu

Это вопрос для установления фактов. Я реализую fail2ban чтобы убрать некоторые недобросовестные элементы на моем сайте Django. Обратите внимание, что мой веб-сервер - это nginx (обратный прокси) с Gunicorn в качестве восходящего сервера приложений - машина представляет собой виртуальную машину Ubuntu 14.04.

Тем не менее, мой процессор сейчас загружается с ~ 45% к ~ 95% в тот момент, когда я его включаю (при прочих равных). В любой момент времени на моем веб-сайте много активности, и журналы nginx быстро заполняются. Прямо сейчас текущий access.log имеет размер 1,4 ГБ, тогда как access.log.1 имеет размер 850 МБ.

Если это уместно, вот снимок активности в моем журнале access.log:

31.13.102.111 - - [28/Feb/2016:06:47:22 +0000] "GET /group/ HTTP/1.1" 200 9628 "http://example.com/?iorg_service_id_internal=373234912870626%3B$
31.13.97.97 - - [28/Feb/2016:06:47:22 +0000] "GET /group_list/ HTTP/1.1" 200 9671 "-" "Opera/9.80 (J2ME/MIDP; Opera Mini/4.5.40312/37.7910; U;$
31.13.99.123 - - [28/Feb/2016:06:47:22 +0000] "POST /link/1410516/reply/ HTTP/1.1" 302 5 "http://www.example.com/link/1410516/reply/?iorg_servi$
31.13.110.117 - - [28/Feb/2016:06:47:22 +0000] "GET /link/1410608/reply/ HTTP/1.1" 200 9829 "http://example.com/link/1410608/reply/?iorg_servic$
31.13.97.123 - - [28/Feb/2016:06:47:22 +0000] "GET / HTTP/1.1" 200 11979 "http://http-example-com.0.freebasics.com/?ref=mbasic" "Opera/9.80 (J2$
31.13.97.113 - - [28/Feb/2016:06:47:22 +0000] "POST /link/create/ HTTP/1.1" 302 5 "http://example.com/link/create/?iorg_service_id_internal=373$
31.13.110.110 - - [28/Feb/2016:06:47:23 +0000] "GET /group/eb42a653-ec47-43d1-acd7-571646ea3440/private/ HTTP/1.1" 200 11341 "http://example.$
31.13.113.68 - - [28/Feb/2016:06:47:23 +0000] "GET /group/a40cffc5-8194-43a9-8bc9-7517b1cc5ac5/public/ HTTP/1.1" 200 11835 "http://www.exampl$
31.13.99.123 - - [28/Feb/2016:06:47:23 +0000] "GET / HTTP/1.1" 200 12123 "http://example.com/link/create/?iorg_service_id_internal=373234912870$
31.13.102.98 - - [28/Feb/2016:06:47:23 +0000] "POST /vote/ HTTP/1.1" 302 5 "http://example.com/?iorg_service_id_internal=373234912870626%3BAfrI$
31.13.113.76 - - [28/Feb/2016:06:47:24 +0000] "GET /group/ HTTP/1.1" 200 9282 "http://example.com/link/1410354/reply/?iorg_service_id_internal=$
31.13.110.98 - - [28/Feb/2016:06:47:24 +0000] "GET /link/1410807/reply/ HTTP/1.1" 200 11083 "-" "SAMSUNG-SM-B360E Opera/9.80 (J2ME/MIDP; Opera$
31.13.99.111 - - [28/Feb/2016:06:47:24 +0000] "GET /group/ HTTP/1.1" 200 8798 "http://example.com/?iorg_service_id_internal=373234912870626%3BA$
31.13.113.95 - - [28/Feb/2016:06:47:24 +0000] "GET / HTTP/1.1" 200 12181 "http://example.com/?iorg_service_id_internal=373234912870626%3BAfq3H8$
31.13.99.111 - - [28/Feb/2016:06:47:24 +0000] "GET /link/1410516/reply/ HTTP/1.1" 200 9753 "http://www.example.com/link/1410516/reply/?iorg_ser$
141.0.15.221 - - [28/Feb/2016:06:47:24 +0000] "GET /users/Veeraj/unseen/ HTTP/1.1" 200 8556 "http://example.com/link/1381878/reply/" "Opera/9.8$
31.13.110.127 - - [28/Feb/2016:06:47:25 +0000] "GET /group/d81f3a5e-049d-4ceb-abaf-8bc1a571001a/private/ HTTP/1.1" 200 12576 "http://example.$
31.13.110.110 - - [28/Feb/2016:06:47:25 +0000] "GET /users/Pariza/activity/ HTTP/1.1" 200 8233 "http://example.com/users/Pariza/?iorg_service_i$
31.13.97.121 - - [28/Feb/2016:06:47:25 +0000] "GET / HTTP/1.1" 200 12094 "http://example.com/link/1410735/reply/?iorg_service_id_internal=37323$
31.13.97.103 - - [28/Feb/2016:06:47:25 +0000] "GET / HTTP/1.1" 200 11081 "http://example.com/link/create/?iorg_service_id_internal=373234912870$
31.13.102.120 - - [28/Feb/2016:06:47:26 +0000] "GET /group/1a1cb850-b526-46d3-893b-03e2ad2eeb2b/private/ HTTP/1.1" 200 11934 "http://example.$
31.13.110.100 - - [28/Feb/2016:06:47:26 +0000] "POST /vote/ HTTP/1.1" 302 5 "http://example.com/?iorg_service_id_internal=373234912870626%3BAfr$
31.13.102.111 - - [28/Feb/2016:06:47:27 +0000] "POST /link/1410816/reply/ HTTP/1.1" 302 5 "http://example.com/link/1410816/reply/?iorg_service_$
31.13.97.123 - - [28/Feb/2016:06:47:27 +0000] "GET / HTTP/1.1" 200 12490 "http://http-example-com.0.freebasics.com/" "Opera/9.80 (Android; Oper$
31.13.113.67 - - [28/Feb/2016:06:47:27 +0000] "GET /group/d6be8c59-8d1e-40d4-92f9-55ed0f906ff6/private/ HTTP/1.1" 200 10962 "http://example.p$
66.220.156.113 - - [28/Feb/2016:06:47:27 +0000] "GET / HTTP/1.1" 200 12136 "-" "Nokia110/2.0 (03.04) Profile/MIDP-2.1 Confi

fail2ban в нем есть различные определения тюрьмы, которые относятся к моему access.log. Например, nginx-postflood защищает от POST-флуда и nginx-getflood охраняет от GET флуд, парсинг access.log чтобы увидеть закономерности.

Мои вопросы:

1) Почему в моей текущей настройке fail2ban работает так плохо? Это потому, что весь access.log файл перемещен в CPU. Память для jails fail2ban, чтобы начать его разбор?

2) Если access.log действительно виноват размер файла, есть ли способ контролировать этот параметр? Я бы предпочел несколько 80МБ access.log файлы вместо того, чтобы иметь большие, короткие, как я сейчас. Что мне сделать, чтобы это настроить? Вы можете привести мне конкретный пример?

Заранее благодарим и запросите дополнительную информацию, если она вам понадобится.