Welcome! Log In Create A New Profile

Advanced

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

Gena Makhomed
February 11, 2024 01:34PM
On 09.02.2024 13:33, Anatoliy Melnik via nginx-ru wrote:

> Есть nginx-ы, несколько разных версий. Проксируют запросы к бекэндам.
> Логи льются в syslog (слив в файлы напрямую из nginx не желателен).

Несколько дней тому назад, в своем сообщении от 5 февраля 2024 года
Вы озвучивали совсем другую причину, что у Вас не получается
это сделать по каким-то техническим причинам, потому, что у Вас
очень высокие нагрузки на систему - 200-250 тысяч подключений
в секунду и поэтому вы не можете сделать запись логов напрямую
в лог-файлы и ротацию этих лог-файлов раз в 30 секунд, и намекаете,
что при таких высоких нагрузках вообще никто не сможет это сделать,
предлагая мне самому попробовать настроить такую ротацию и убедиться
в истинности Вашего утверждения, что это настроить вообще невозможно.

И именно по той причине, что Вы не смогли настроить ротацию
лог-файлов раз в 30 секунд и началось изобретение велосипедов
и костылей с syslog`ами, unix-socket`ами и питоновскими скриптами.

Это и есть типичная XY-проблема, о которой подробнее говорится
в статье https://habr.com/ru/companies/dododev/articles/467047/

А не смогли Вы настроить ротацию логов nginx раз в 30 секунд при
трафике в 200-250 тысяч подключений по той причине, что ротацию
логов Вы пытались делать с помощью SIGHUP, который вообще-то
предназначен для изменения конфигурации, а не ротации логов.
http://nginx.org/ru/docs/control.html#reconfiguration

Если же делать ротацию логов используя SIGUSR1 - то никакой проблемы
не будет, потому что это очень дешевая и очень быстрая операция,
вне зависимости от того, какое количество подключений присутствует,
потому что при этом новые worker-процессы nginx не создаются и старые
worker-процессы nginx свою работу не завершают, как в случае SIGHUP.

И когда Вы мне написали: "Если у вас уже есть такое рабочее решение
- поделитесь опытом, буду рад вас выслушать" - я же Вам и ответил,
что поиск рабочего решения следует начинать не с настройки syslog
и не с написания python`овских скриптов, а с внимательного чтения
документации, потому что там же очень подробно написано, как можно
настроить очень быструю ротацию логов при любом количестве подключений:
http://nginx.org/ru/docs/control.html#logs - что же тут не понятно?

Особенно, если учесть, что директива https://nginx.org/r/access_log
имеет дополнительные параметры [buffer=size] [flush=time] [if=condition]
которые помогают еще сильнее уменьшить затраты процесора и времени на
запись логов в файлы, потому что информация в лог будет записываться
не построчно, а блоками большего розмера, то есть вместо нескольких
сотен или тысяч системных вызовов может быть всего один системный вызов.

Более быстрого процесса ускорения записи логов nginx в природе
просто не существует - другими способами точно не будет быстрее.

> По косвенным методам контроля вылезла проблема:
> До примерно 50 тыс/сек сообщений статистика прокси и бекэндов сходится, а вот начиная примерно с 50тыс/сек начинаются расхождения. nginx->syslog фиксирует меньше событий, чем сумма по бекэндам.
> Чем выше интенсивность запросов, тем больше расходятся данные.
> Сначала грешил на syslog, но детальные разборы полетов говорят, что скорее всего проблема в nginx.
> У кого-то что-то такое наблюдалось или нет?
> При сливе логов с 2-х nginx-ов в один syslog все хорошо до примерно 100тыс/сек, т.е. скорее всего syslog не виноват.
> Кто-то с таким сталкивался?
>
> В рамках именно этого подхода проблему я решил подходом, указанным выше -- т.е. распараллелил логи на несколько потоков.
> проблема потерь nginx->syslog у меня теперь решилась.
>
> Одна из задач (но не единственная) для чего это было нужно так же описана.
> Если примененный мной подход для ВАШИХ задач не удобен или не приемлем или вызывает сомнения и т.д. -- не стоит навязывать своё мнение как единственно правильное.

Вы пытаетесь решить проблему Y хотя Вам нужно решение проблемы X.

проблема Y: ускорить запись из nginx в syslog, избежать потери сообщений

проблема X: сделать ротацию логов раз в 30 секунд

Как вляпаться в XY-проблему. Пошаговая инструкция пользователя

1. Пользователю нужно решить проблему Х.

2. Пользователь не знает, как решить проблему X, но думает, что
сможет её решить, если ему удастся выполнить действие Y.

3. Пользователь также не знает, как выполнить действие Y.

4. Обращаясь за помощью, пользователь просит помочь ему разобраться с Y.

4. Все пытаются помочь пользователю с действием Y, несмотря на то,
что Y кажется странной проблемой для решения.

5. Спустя много итераций и упущенного времени выясняется, что
пользователь на самом деле хотел решить X-проблему.

6. Самое ужасное – выполнение действия Y не стало бы подходящим
решением для X. Все рвут на себе волосы и со словами «я отдал тебе
лучшие годы своей жизни» испепеляют друг друга взглядом.

Зачастую XY-проблема возникает, когда люди зацикливаются на мелких
деталях своей проблемы и на том, что они сами считают решением проблемы.
В итоге они не могут отступить на шаг назад и объяснить проблему комплексно.

> Именно такая схема не с потолка упала, а появилась в результате экспериментальных проверок нескольких подходов.
> Рассказывать почему именно так, а не иначе -- долго, скучно, с кучей подробностей... и абсолютно бесполезно :)
> Свое видение путей решения СВОИХ задач у меня уже сформировалось, а убеждать в чем-то вас смысла не имеет.
> Еще раз СПАСИБО.

Кто-то кого-то сейчас пытается обмануть.

Вы рассказываете, что запись логов в файлы Вам не подходит
по каким-то очень серьезным причинам, которые Вы не можете
озвучить, потому что это Вам скучно, неинтересно и бесполезно.

Но при этом лепите костыли из syslog, unix-socket`ов и питоновских
скриптов, запуская их 10 копий для того, чтобы они могли получать
информацию от nginx через unix socket и писать их в файлы.

То есть, Вы утверждаете, что вариант, когда nginx напрямую пишет логи
в файлы - Вам не подходит, потому что невозможно сделать ротацию логов
раз в 30 секунд при 200-250 тысяч подключений, а вот вариант
с этим жутким нагромождением костылей - это и есть решение проблемы.

Какой проблемы? root cause of problem тут в том, что Вы не прочитали
внимательно документацию к nginx и не смогли настроить ротацию логов
через SIGUSR1 ? Что по факту есть очень быстрая и очень дешевая
операция, значительно более легкая и быстрая, чем reload по SUGHUP.

Проблема тут в чем? Проблема в том, что эти Ваши заявления о самом
лучшем решении проблемы записи в лог-файлы с помощью нагромождения
костылей - это фактически есть нехорошее действие, потому что таким
способом вы распространяете FUD про nginx создавая в глазах неопытного
читателя списка рассылки впечатление, что nginx - это очень кривая
программа, которая даже свои логи в файлы не может нормально писать
а вот Вы - решили эту проблему, с помощью нагромождения костылей...

--
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: 188
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