User Tools

Site Tools


logrep

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revision Both sides next revision
logrep [2013/06/01 08:20]
kyxap создано
logrep [2013/12/15 13:43]
kyxap Page moved from apache:logrep to logrep
Line 5: Line 5:
 Очень быстро позволяют отловить медленные выполняющиеся запросы,​ найти использованную уязвимость,​ определить файлы с самым большим количеством трафика,​ отфильтровать ддос-ботов,​ выбрать самые популярные файлы для перемещения на SSD-кеш, собирать гео-статистику в live режиме,​ а так же железным аргументом дерзко попячить гордое щячло любителей денвера. \\ Очень быстро позволяют отловить медленные выполняющиеся запросы,​ найти использованную уязвимость,​ определить файлы с самым большим количеством трафика,​ отфильтровать ддос-ботов,​ выбрать самые популярные файлы для перемещения на SSD-кеш, собирать гео-статистику в live режиме,​ а так же железным аргументом дерзко попячить гордое щячло любителей денвера. \\
  
-Скрипты написаны на python, соответственно,​ работать должны везде.+Скрипты написаны на python, соответственно,​ работать должны везде. ​\\
  
-http://​code.google.com/​p/​wtop/​+Брать по адресу ​http://​code.google.com/​p/​wtop/​ 
 + 
 +Главная утилита - logrep.\\ 
 +wtop лично мне не пригодился. 
 + 
 +Руководство к logrep: http://​code.google.com/​p/​wtop/​wiki/​UsingLogrep \\ 
 +Примеры использования:​ http://​code.google.com/​p/​wtop/​wiki/​LogrepCookbook 
 + 
 +Самое замечательное в logrep - это возможность применять к выводимым значениям операторы. \\ 
 +Т.е. мы можем полностью сформировать вывод скрипта,​ состоящий из заданных нами параметров и с примененными к ним необходимыми операторами. 
 + 
 +Полный список выходных параметров,​ которыми мы можем оперировать,​ указан в руководстве под строкой AVAILABLE FIELDS. 
 + 
 +Ключ **-o** позволяет указать используемые в output значения,​ разделенные табуляцией. К каждому выводимому зачению можно применить оператор.\\ 
 + 
 +===== Список операторов ===== 
 +  count(*) ​     
 +  avg(FIELD) ​  mean average 
 +  min(FIELD) ​  ​lowest seen value 
 +  max(FIELD) ​  ​highest seen value 
 +  sum(FIELD) ​  ​summation of all values 
 +  var(FIELD) ​  ​population variance 
 +  dev(FIELD) ​  ​deviation (square root of variance) 
 + 
 +Ключ **-s** позволяет нам сортировать список,​ используя параметры вида **-s "​LIMIT:​FIELDS:​DIRECTION"​**,​ \\ 
 +где LIMIT - это общее количество выводимых строк, FIELDS - выводимые значения,​ а DIRECTION - направление сортировки:​ '​d'​ - descending (по умолчанию),​ '​a'​ - acending. \\ 
 + 
 +===== Формирование списка наиболее востребованных файлов для выноса на SSD-диск (для Nginx) ===== 
 + 
 +Т.к. изначально скрипт создавался для работы с //​CustomLog//​ типа //​combined//​ вебсервера [[http://​httpd.apache.org|Apache]],​ нам необходимо добавить в формат лога nginx переменную $request_time. 
 + 
 +**Формат лога для nginx** 
 +  log_format mp4 '​$remote_addr - $remote_user [$time_local] ' 
 +                '"​$request"​ $status $body_bytes_sent "​$http_referer"​ ' 
 +                '"​$http_user_agent"​ $request_time'​ ; 
 + 
 +**Сортировка по top10 URL:** 
 +  # logrep -o '​url,​count(*)'​ -s '​10:​2'​ /​home/​log/​httpd/​yziltz.com/​access_log 
 +   
 +  /​videos/​ztod.com/​546fg/​168nzrr/​1.mp4 ​           324 
 +  /​videos/​wtfpass/​104ghd/​560wyqe/​1.mp4 ​           259 
 +  /​videos/​evilangel/​1004hf/​457elux/​1.mp4 ​         205 
 +  /​videos/​ztod.com/​546fg/​84rqek/​1.mp4 ​            203 
 +  /​videos/​wtfpass/​104ghd/​505dtve/​1.mp4 ​           192 
 +  /​videos/​realitykings/​986fk/​314qiga/​1.mp4 ​       173 
 +  /​videos/​wtfpass/​104ghd/​18ifvr/​1.mp4 ​            153 
 +  /​videos/​brazzers/​758gf/​350ihij/​1.mp4 ​           143 
 +  /​videos/​wtfpass/​104ghd/​533jdzo/​1.mp4 ​           125 
 +  /​videos/​bangbros/​754hj/​100geoo/​1.mp4 ​           122 
 +   
 +где параметрами **-o** являются 
 +  url - URL файла 
 +  count(*) - количество всех уникальных вхождений URL, 
 +а параметрами **-s** 
 +  10 - это количество выводимых файлов,​ 
 +  2 - сортировка по полю #2. 
 +В нашем случае поле #2 - это **count(*)**. \\ 
 +Тип сортировки не указан и по умолчанию это '​d'​ - descending. 
 + 
 +**Сортировка по top10 URL с отображением дополнительных параметров:​** 
 + 
 +Добавим новые значения в список параметров:​ 
 +  # logrep -o '​url,​count(*),​avg(msec),​sum(bytes)'​ -s '​10:​2'​ /​home/​log/​httpd/​yziltz.com/​access_log 
 +   
 +  /​videos/​evilangel/​1004hf/​457elux/​1.mp4 ​         800     ​63330.12 ​       1265011232 
 +  /​videos/​wtfpass/​104ghd/​18ifvr/​1.mp4 ​            ​446 ​    ​55150.93 ​       199966883 
 +  /​videos/​naughty_america/​634fs/​6kryk/​1.mp4 ​      ​413 ​    ​66149.11 ​       422437989 
 +  /​videos/​naughty_america/​634fs/​83nbna/​1.mp4 ​     361     ​41608.23 ​       284347235 
 +  /​videos/​wtfpass/​104ghd/​606pfgb/​1.mp4 ​           352     ​35669.83 ​       129798205 
 +  /​videos/​wtfpass/​104ghd/​216pcko/​1.mp4 ​           330     ​50201.86 ​       563510318 
 +  /​videos/​ztod.com/​546fg/​168nzrr/​1.mp4 ​           325     ​48295.78 ​       238183106 
 +  /​videos/​wtfpass/​104ghd/​560wyqe/​1.mp4 ​           311     ​121607.30 ​      ​4415056002 
 +  /​videos/​wtfpass/​104ghd/​387jkmy/​1.mp4 ​           309     ​52073.58 ​       677026365 
 +  /​videos/​wtfpass/​104ghd/​505dtve/​1.mp4 ​           240     ​233122.70 ​      ​1272250219 
 +   
 +   
 +Дополнительными параметрами будут 
 + ​avg(msec) - среднее время отдачи файла и 
 + ​sum(bytes) - общий трафик,​ пришедшийся на этот файл. 
 + 
 +А теперь добавим фильтр **-f**, в котором выведем результаты только за последний час (3600 секунд). \\ 
 +Для этого мы применим unixtime как самый простой способ. \\ 
 + 
 +  # CUR_DATE=`date +"​%s"​`;​ HOUR_OFFSET=`echo "​$CUR_DATE - 3600" | bc`; logrep -f "​ts<​$HOUR_OFFSET"​ -o '​url,​count(*),​avg(msec),​sum(bytes)'​ -s '​10:​2'​ /​home/​log/​httpd/​yziltz.com/​access_log 
 +  /​videos/​ztod.com/​546fg/​168nzrr/​1.mp4 ​           325     ​48295.78 ​       238183106 
 +  /​videos/​wtfpass/​104ghd/​560wyqe/​1.mp4 ​           267     ​117390.16 ​      ​2869373722 
 +  /​videos/​evilangel/​1004hf/​457elux/​1.mp4 ​         225     ​152913.27 ​      ​954288822 
 +  /​videos/​ztod.com/​546fg/​84rqek/​1.mp4 ​            ​203 ​    ​55998.36 ​       188930211 
 +  /​videos/​wtfpass/​104ghd/​505dtve/​1.mp4 ​           196     ​216440.77 ​      ​1093232840 
 +  /​videos/​realitykings/​986fk/​314qiga/​1.mp4 ​       173     ​203926.49 ​      ​973211068 
 +  /​videos/​wtfpass/​104ghd/​18ifvr/​1.mp4 ​            ​161 ​    ​114550.71 ​      ​145899888 
 +  /​videos/​wtfpass/​104ghd/​533jdzo/​1.mp4 ​           147     ​182660.09 ​      ​1100896430 
 +  /​videos/​bangbros/​754hj/​100geoo/​1.mp4 ​           145     ​175528.83 ​      ​609455138 
 +  /​videos/​brazzers/​758gf/​350ihij/​1.mp4 ​           143     ​213783.88 ​      ​144107563
logrep.txt · Last modified: 2013/12/15 16:53 by kyxap