<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">ср, 13 июл. 2022 г. в 14:00, Илья Шипицин <<a href="mailto:chipitsine@gmail.com">chipitsine@gmail.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">ср, 13 июл. 2022 г. в 13:49, Gena Makhomed <<a href="mailto:gmm@csdoc.com" target="_blank">gmm@csdoc.com</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 12.07.2022 22:59, Илья Шипицин wrote:<br>
<br>
> если рассматривать с точки зрения эффективного использования диска, то поля<br>
> $scheme, $host являются практически константами, можно не логировать их на<br>
> каждую строчку лога (а, например, разнести разные host-ы по разным логам).<br>
<br>
Разнести разные host-ы по разным логам - это на самом деле плохая идея.<br>
Когда различных хостов десятки и сотни - это становится очень неудобно.<br>
Кроме того, это отрицательно сказывается на производительности сервера,<br>
особенно если используется HDD а не SSD.<br></blockquote><div><br></div><div>это полностью в вашей власти, писать в каждую строку host или делать отдельные логи. насчет производительности в случае HDD - не соглашусь,</div><div>если писать с буферизацией (buffer=... и flush=...), то HDD отлично справляется вплоть до тысяч запросов в сек, выше не проверял.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Имея в наличии один access.log с помощью grep<br>
можно легко получить из него access.log для любого сайта:<br>
grep -P '\<a href="http://texample.com" rel="noreferrer" target="_blank">texample.com</a>\t' access.log | less -S<br></blockquote><div><br></div><div>удобство или неудобство действительно рассматривается в зависимости от используемых инструментов.</div><div>что-то подсказывает, что использование grep как ежедневного инструмента - ну такое. и grep это опять же</div><div>требует ssh доступа. навряд ли аналитикам это удобно.</div></div></div></blockquote><div><br></div><div>про grep приходится постоянно иметь в виду "ну вот я сейчас запускаю обработку файла на .... 50 гигабайт, не повлияет ли это на функции сервера"</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
$scheme занимает всего несколько байт, и лучше уж пусть будет,<br>
для полноты картины, по сравнению с $http_user_agent - это мелочь.<br>
<br>
Для удобства чтения лога и для уменьшения его размера<br>
- можно из лога убрать информацию про таймзону:<br>
<br>
map $time_iso8601 $time {<br>
"~([0-9-]+)T([0-9:]+)" "$1 $2";<br>
volatile;<br>
}<br>
<br>
log_format frontend '$time\t...';<br>
<br>
Тогда время в логе будет выглядеть примерно так:<br>
<br>
2022-07-13 11:34:40<br>
<br>
а не так:<br>
<br>
2022-07-13T11:34:40+03:00<br>
<br>
Переменная $time вместо $time_iso8601 в логе<br>
дает и меньший объем лога и его лучшую читаемость.<br></blockquote><div><br></div><div>iso8601 удобен тем, что он поддерживается для импорта во что угодно. соглашусь, что можно его убрать в логе, а потом добавить при импорте, если надо</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Недостаток у этого варианта с переменной $time только<br></blockquote><div><br></div><div>ко мне как-то приставали, чтобы сделать map, которая добавляет миллисекунды ))</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
один - приходится программировать на конфигах nginx,<br>
используя map и регулярные выражения, - это несколько<br>
увеличивает объем конфига, но должно работать достаточно быстро.<br>
<br>
-- <br>
Best regards,<br>
Gena<br>
_______________________________________________<br>
nginx-ru mailing list -- <a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
To unsubscribe send an email to <a href="mailto:nginx-ru-leave@nginx.org" target="_blank">nginx-ru-leave@nginx.org</a><br>
</blockquote></div></div>
</blockquote></div></div>