Welcome! Log In Create A New Profile

Advanced

Re: Как лучше всего сделать защиту от denial of service при исчерпании свободного места на диске большими по объему лог-файлами nginx?

February 13, 2024 06:18AM
Gena Makhomed Wrote:
-------------------------------------------------------
> On 13.02.2024 4:21, Gena Makhomed wrote:
>
> > Когда свободного места на диске нет - то nginx туда, естественно,
> > ничего и не пишет, когда свободное место появляется - процесс
> записи
> > логов автоматически продолжается, тут ничего настраивать не нужно.
> >
> > Единственная проблема которая есть в такой сиутации - перестают
> работать
> > POST-запросы, если в каталоге client_body_temp_path ноль байт
> свободного
> > места, но все остальные типы запросов в такой ситуации nginx
> продолжает
> > нормально обрабатывать. И теряется возможность записи информации в
> логи.
> >
> > Все остальное - вроде бы работает нормально, когда 0 байт
> > свободного места на диске - но я очень детально это не проверял.
>
> Не знаю, насколько часто встречается такая проблема в дикой природе,
> но если возникает ошибка записи во время записи client_body в файл
> в client_body_temp_path - теоретически - можно было бы прочитать,
> то что успели уже записать в файл, отправить на backend
> и на какое-то время - переключить режим работы директив
>
> fastcgi_request_buffering
> proxy_request_buffering
> scgi_request_buffering
> uwsgi_request_buffering
>
> временно из текущего режима работы (on?) в режим работы off,
> например,
> на 1 минуту, и если через 1 минуту на разделе куда указывает
> директива
> client_body_temp_path появится достаточное количество свободного
> места,
> например, N * client_max_body_size при каком-то разумном значении N
> -
> тогда вернуть обратное старое значение, какое было для этих директив
> до момента переключения в такой режим работы.
>
> Кстати, что интересно, для модуля grpc в коде установлено
>
> r->request_body_no_buffering = 1;
>
> поэтому проксирование grpc запросов всегда будет нормально работать,
> даже в том случае, когда на диске будет 0 байт свободного места.
>
> Или - не имеет смысл настолько усложнять код nginx? Потому что
> в таком случае - если не настроен мониторинг свободного места
> на сервере - тогда системный администратор узнает об этой проблеме
> по жалобам, что POST запросы на сайте перестали нормально работать
> и на backend приходит 0 байт вместо того, что отправлял клиент.
>
> А если сделать так, чтобы nginx не терял тело запроса и корректно
> отправлял бы запросы на backend - то в такой ситуации системный
> администратор может еще очень долго ничего не знать о проблеме?
>
> Вот какое решение в этой ситуации было бы лучшим вариантом
> для пользователей коммерческой версии nginx-plus и для пользователей
> бесплатной версии nginx? Ведь если nginx теряет тело запроса - тогда
> могут сказать, что причина проблемы - это именно nginx, почему
> сайтом были утеряны ценные данные в POST-запросах клиентов.
>
> А если nginx сможет нормально функционировать и POST-запросы смогут
> нормально функционировать, не смотря на то. что на диске 0 байт
> свободного места - это может быть расценено как признак высокой
> надежности nginx и как признак высокого уровня качества кода.
>
> Как будет лучше поступить в ситуации нехватки свободного места на
> диске?
>

1. Можно всю буферизацию держать в RAM на tmpfs -- таких данных не должно быть много, и отзывчивость системы вырастет, и бесполезной нагрузки на диски будет меньше, да и фообще отдача не будет зависеть от нагрузки на дисковую подсистему.
2. Можно персонально под логи отдельный раздел..
Не хотите раздел выделять или переразбивать диск - создать файл-образ диска ограниченного размера, подмонтировать и писать в этот виртуальный диск.
Не хотите виртуальный диск в файле -- посмотрите в сторону квот файловой системы.

Можно вообще поставить что-то вроде rabbitMQ, там очередь на 100тыс (1млн?) сообщений с вытеснением.
При нештатных ситуациях начинаем по сети выгребать очередь и имеем историю "вглубь" до начала выгребания в (сколько поставили) сообщений+текущую ситуацию "что там у нас нынче?"
При штатных из последних сколько-то там всегда доступна...

Четко сформулируйте ЧТО вы хотите видеть в итоге, оцените имеющиеся ресурсы. Ищите пути решения/обхода/развития....


> --
> Best regards,
> Gena
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@nginx.org
> https://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru January 17, 2024 06:50AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Илья Шипицин January 17, 2024 07:34AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

anatoliy.melnik@showjet.ru January 18, 2024 02:13AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Maxim Dounin January 17, 2024 12:04PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

anatoliy.melnik@showjet.ru January 18, 2024 02:57AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru January 18, 2024 11:14AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Evgeniy Berdnikov January 18, 2024 11:46AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Pavel Yakovlev January 19, 2024 03:50AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru January 18, 2024 11:16AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Maxim Dounin January 18, 2024 02:32PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru January 18, 2024 02:12PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Evgeniy Berdnikov January 18, 2024 03:30PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Илья Шипицин January 18, 2024 04:56PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru January 22, 2024 04:12AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

hery2 January 25, 2024 09:18AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru February 05, 2024 06:42AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Evgeniy Berdnikov February 05, 2024 07:06AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Gena Makhomed February 05, 2024 07:18AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru February 05, 2024 08:22AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Gena Makhomed February 05, 2024 02:58PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Илья Шипицин February 05, 2024 04:12PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Evgeniy Berdnikov February 05, 2024 04:22PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Gena Makhomed February 05, 2024 05:58PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Maxim Dounin February 05, 2024 05:26PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru February 09, 2024 06:36AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Илья Шипицин February 09, 2024 07:52AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Gena Makhomed February 11, 2024 01:34PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Илья Шипицин February 11, 2024 02:38PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Илья Шипицин February 11, 2024 02:40PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Evgeniy Berdnikov February 11, 2024 04:04PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Илья Шипицин February 11, 2024 06:12PM

Как лучше всего сделать защиту от denial of service при исчерпании свободного места на диске большими по объему лог-файлами nginx?

Gena Makhomed February 11, 2024 06:16PM

Re: Как лучше всего сделать защиту от denial of service при исчерпании свободного места на диске большими по объему лог-файлами nginx?

Evgeniy Berdnikov February 12, 2024 04:56AM

Re: Как лучше всего сделать защиту от denial of service при исчерпании свободного места на диске большими по объему лог-файлами nginx?

Gena Makhomed February 12, 2024 09:22PM

Re: Как лучше всего сделать защиту от denial of service при исчерпании свободного места на диске большими по объему лог-файлами nginx?

Gena Makhomed February 12, 2024 11:46PM

Re: Как лучше всего сделать защиту от denial of service при исчерпании свободного места на диске большими по объему лог-файлами nginx?

anatoliy.melnik@showjet.ru February 13, 2024 06:18AM

Re: Как лучше всего сделать защиту от denial of service при исчерпании свободного места на диске большими по объему лог-файлами nginx?

anatoliy.melnik@showjet.ru February 13, 2024 02:11AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru February 12, 2024 05:32AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Gena Makhomed February 12, 2024 10:32PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru February 13, 2024 04:40AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Илья Шипицин February 13, 2024 06:08AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

anatoliy.melnik@showjet.ru February 14, 2024 06:54AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Gena Makhomed February 13, 2024 10:16PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru February 14, 2024 06:32AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Evgeniy Berdnikov February 14, 2024 12:34PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Gena Makhomed February 14, 2024 10:06PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru February 14, 2024 05:00PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru February 15, 2024 05:50AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Gena Makhomed February 15, 2024 03:22PM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru February 19, 2024 09:02AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Gena Makhomed February 20, 2024 12:50AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Anatoliy Melnik via nginx-ru February 21, 2024 07:56AM

Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Gena Makhomed February 21, 2024 01:30PM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 201
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready