<html><body><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div data-marker="__QUOTED_TEXT__"><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><blockquote></blockquote>Gena Makhomed Wrote:<br>-------------------------------------------------------<br>> On 12.02.2024 12:30, Anatoliy Melnik via nginx-ru wrote:<br>> <br>> > Из его собщения от 5 февраля однозначно следует, что он<br>> > уже пытался настроить запись логов напрямую в файл но не смог<br>> > получить рабочего решения при 200-250 тысячах подключений в секунду<br>> > и необходимости делать ротацию лога каждые 30 секунд. И даже<br>> предлагает<br>> > мне самому попробовать и убедиться, что это не работает и что таким<br>> > образом запись и ротацию логов в файл самим nginx при такой большой<br>> > нагрузке и при таком интервале ротации - настроить невозможно,<br>> <br>> > Я предлагал попробовать и поделиться, лично я попробовал, получил<br>> результат -- пишет, работает, возможно. И сделал это ДО того, как сюда<br>> обратился...<br>> > НО меня сей результат не удовлетворил.<br>> <br>> Так и расскажите, почему не удовлетворил, поделитесь опытом<br>> с участниками и читателями этого списка рассылки. Тем более,<br>> что здесь присутствуют и разрабочики nginx, так что если проблема<br>> в коде nginx действителько существует - эту проблему в коде исправят.<br>> <br>> Насколько мне известно, переоткрытие лог-файлов по сигналу USR1<br>> происходит практически мгновенно и не требует перезапуска<br>> рабочих процессов nginx, поэтому - не может приводить ни к каким<br>> проблемам на любом количестве соединений при ротации лог-файлов<br>> nginx раз в 30 секунд.<br>> <br>> Тем более, что директива access_log позволяет настроить<br>> процесс записи логов наиболее оптимальным способом, ключив<br>> буферизацию, и при необходимости - компрессию логов на лету.<br>> <br>> access_log path [buffer=size] [gzip[=level] [flush=time]<br>> <br>> Поэтому - я просто не понимаю, какие у Вас могли там возникнуть<br>> проблемы, если делать ротацию логов nginx раз в 30 секунд на любом<br>> количестве подключений - от количества подключений это вообще никак<br>> не зависит, потому что новые рабочие процессы nginx при этом<br>> не создаются и страрые рабочие процессы nginx не завершаются.<br>> <br>> кстати, и logrotate делает ротацию логов nginx таким же способом:<br>> <br>> # cat /etc/logrotate.d/nginx<br>> <br>> if [ -f /var/run/nginx.pid ]; then<br>>          kill -USR1 `cat /var/run/nginx.pid`<br>> fi<br>> <br>> <br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Для меня логи не цель, а средство.<br>Источник для необходимых статистических данных.<br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Чем не удовлетворил результат - смотрите чуть дальше.<br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> > Да, да (понимаю) -- чем он меня "не удовлетворил"??<br>> > --- можете фантазировать сколько угодно.<br>> <br>> Могу, но не хочу. Поэтому и прошу Вас чтобы Вы сами рассказали всем<br>> здесь присутствующим о том, какие проблемы Вы обнаружили при ротации<br>> логов с помощью сигнала USR1. Я здесь не вижу вообще никаких проблем.<br>> <br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> > Задача по предотвращению исчерпания места на диске так же была<br>> решена задолго ДО обращения сюда.<br>> <br>> Поделитесь своим опытом решения этой задачи.<br>> Потому что я пока что не смог найти решения.<br>> <br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Мы с вами решаем задачи при разных исходных условиях и разных конечных целях.<br>Еще и с разными ресурсами.<br>Для меня главный вопрос, на который надо дать ответ:<br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">ЗАЧЕМ я пишу логи? ЧТО я дальше с ними буду делать?<br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> > Возникает впечатление, что кому-то из вас принципиально важно<br>> доказать незыблемую правоту своего мнения и ошибочность моих<br>> действий.<br>> > Вопрос - зачем?<br>> <br>> Я уже отвечал на этот Ваш вопрос.<br>> <br>> Этот список рассылки - он посвящен nginx, а не процессу<br>> самоутверждения.<br>> И если кто-то начинает ради самоутверждения распространять ложную<br>> информацию про nginx, например, что nginx не способен самостоятельно<br>> писать логи в файлы при количестве подключений 200-250 тысяч в<br>> секунду<br>> и ротации лог-файлов раз в 30 секунду и что решением этой проблемы<br>> является набор костылей в виде syslog, unix socket, и десяти<br>> одновременно запущеных копий скрипта на Python - то это FUD<br>> и это вредит не только конкретно тому человеку, который это<br>> делает, но и всему nginx community, то есть всем участниками<br>> и читателям списка рассылки, потому что часть неопытных пользователей<br>> nginx может в этот FUD поверить и считать эту Вашу информацию<br>> истинной.<br>> <br>> FUD - это<br>> https://en.wikipedia.org/wiki/Fear,_uncertainty,_and_doubt<br>> https://ru.wikipedia.org/wiki/FUD<br>> <br>> > Это не конкурс или состязание, я сюда обратился за советом.<br>> <br>> Так я тоже обратился к Вам за советом - пожалуйста, поделитесь<br>> опытом,<br>> и расскажите, какие проблемы Вы обнаружили при ротации логов nginx<br>> с помощью сигнала USR1 что были вынуждены отказаться от этого<br>> варианта<br>> работы и логами и были вынуждены в результате соорудить то,<br>> что Вы назвали решением этой проблемы - в виде syslog, unix socket и <br>> скрипта на Python запускемого в 10 экземплярах и пишущего логи в 10 <br>> отдельных файлов.<br></div>> <br><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> Решением какой именно _проблемы_ является эта конструкция,<br>> которую Вы называете в своих сообщениях решением проблемы?<br>> <br></div>> > Какая разница насколько глубокое ущелье на моем пути, если я уже<div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> построил через него мост?<br>> > Может он не самый красивый, вечный, грузоподъемный и уникальный...<br>> > Для моих целей его достаточно :)<br>> > Возможно, по мнению кого-то, я вообще иду "не туда"!<br>> <br>> Дело тут не только и не столько в https://xkcd.ru/386/<br>> потому что идя не туда, Вы еще этот способ идти не туда<br>> и рекламируете как _решение проблемы_, чем делаете FUD,<br>> хотя лично Вам этот веб-сервер ничего плохого не сделал.<br>> <br>> > И? Вы свои аргументы привели, мое мнение они не изменили...<br>> > Или для некоторых "есть только два мнения: моё и неправильное"?<br>> <br>> Поделитесь своим опытом, расскажите, почему эта конструкция<br>> из syslog, unix socket и десяти скриптов на python, пишущих<br>> сообщения в десять лог-файлов оказалась для Вас лучше,<br>> чем встроенные в nginx возможности для записи и ротации логов?<br>> </div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Повторюсь:</div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Логи - не цель, а всего лишь средство.<br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;" data-mce-style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;"><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;" data-mce-style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;"><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;" data-mce-style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;">Скрипт один, с модулем multiprocessing, так что экземпляров получается 11, но это не важно.<br>Запись в файлы были лишь эпизодом для выяснения ограничений связки nginx->(unixSocket)->syslog<br>Сейчас я вообще не пишу эти файлы, но при необходимости могу это начать делать так же на лету, не дергая ни nginx, ни сам сервис "типа персональный nginx-овый сислог".<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;" data-mce-style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;"><br>Все данные извлекаются в скрипте "на лету" и отображаются в соответствующих счетчиках.</div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;" data-mce-style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;"><br>При необходимости сосчитать что-то другое/новое или по другом алгоритму - я всего лишь изменю несколько строк скрипта.<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;" data-mce-style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;">На данном этапе проверенная производительность одной системы 240тыс/сек, прогноз исходя из статистики нагрузки - 400-420.<br><br>Запись горы сообщений напрямую в файл из nginx-а работает, файлы ротируются, но мне это никак не помогает в решении поставленной задачи.<br>Поэтому и "не удовлетворил". <br><br></div></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;" data-mce-style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000;">Собственно как следствие -- отсутствие проблемы доступного дискового пространства. Нагрузка на дисковую подсистему близка к нулю.<br data-mce-bogus="1"></div></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">И я с самого начала не говорил, что мне нужны файлы! Меня интересовала связка nginx->(unixSocket)->syslog.<br>Именно эту проблему я и озвучил.<br><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Можно сослаться на мои посты:<br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">"Сами файлы логов живут максимум 15-20 минут, этого достаточно для извлечения необходимых данных."<br>"Производительности хранилища точно достаточно для 150тыс/сек (один из способов замера -- запуск одновременно 3-х экземпляров rsyslog на одном физическом сервере и заливка в 3 сразу тестового набора в 12млн сообщений на каждый, итог 300-450тыс/сек в совокупности, непрерывно в течении нескольких часов заливка-ротация-удаление)"<br>"Данные почти равномерно расходятся по 10-ти файлам, которые пишутся на tmpfs в RAM. "<br><br>Это были лишь промежуточные этапы, мне нужно было убедиться, что проблема  именно на этапе nginx->(unixSocket)->syslog.<br>И запись в файл на очень быстрый носитель был, наверное, самый прямой путь, дающий адекватные результаты.<br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Свою функцию этот этап выполнил, но повторюсь - это не было целью!<br>И на каждом этапе обсуждения мне казалось очевидным: мне нужна рабочая связка nginx->(unixSocket)->syslog !!! <br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Вот даже не знаю зачем тут все это излагаю...<br>Уже непререкаемая уверенность в собственной непогрешимости в некоторых постах должна была меня насторожить.<br>А уж выводы типа:<br>> И если кто-то начинает ради самоутверждения распространять ложную<br>> информацию про nginx, например, что nginx не способен самостоятельно<br>> писать логи в файлы при количестве подключений 200-250 тысяч в<br>> секунду...</div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Буквально апогей!!!! Выршина дедукции!!! Шерлок Холмс не у вас, случайно, учился??<br><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Чего уж там - давайте и углеродный след приплетем (нынче это модно).</div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br data-mce-bogus="1"></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br><br>> > Или я чего-то не понимаю?<br>> </div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> «Ничего личного, только бизнес».<br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">Никогда не понимал восторгов этим правилом.<br>Из личного опыта -- стараюсь не иметь дел с адептами этого подхода, и это сугубо личное.<br><br></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000">> <br>> Источник:<br>> https://uchet-jkh.ru/i/nicego-licnogo-tolko-biznes-otkuda-fraza<br>> <br>> -- <br>> Best regards,<br>>   Gena<br>> <br>> _______________________________________________<br>> nginx-ru mailing list<br>> nginx-ru@nginx.org<br>> <a href="https://mailman.nginx.org/mailman/listinfo/nginx-ru">https://mailman.nginx.org/mailman/listinfo/nginx-ru</a></div><div style="font-family: arial, helvetica, sans-serif; font-size: 10pt; color: #000000"><br>Best regards.....<br>to be continued ???<br><hr id="zwchr"><div><br><b></b></div></div></div></div></div></div></div></div><br></div></div></body></html>