The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Анализ больших логов apache(nginx) access, !*! sumaster, 28-Окт-09, 16:13  [смотреть все]

Появилась необходимость получить статистику самых частых ошибок на основе анализа apache(nginx) access логов.
Размер логов > 5 Гб за сутки.

Пример желаемого отчета:
<кол-во повторов ошибки> <код (404,503 ...)> <запрос> <domain> <reffer>
<кол-во повторов ошибки> <код (404,503 ...)> <запрос> <domain> <reffer>
...

AWStats - не получается использовать т.к. процесс анализа умирает из-за огромного размера лога

Анализатор visitors (http://www.hping.org/visitors/) - не показывает рефферы 404 ошибок, без реффера невозможно определить адрес страницы на которой находится битая ссылка

Написал простенький анализатор на основе awk

awk '($9 !~ /200|304/)' $log | awk '{print $9,$7,$11}' | sort | uniq -c | sort -r -n | head -n 70

В результате его работы получаю отчет вида
<кол-во повторов ошибки> <код (404,503 ...)> <запрос> <reffer>

Вопрос: существуют ли другие решения которые могут предоставить расширенную статистику ошибок на основе access логов?

  • Анализ больших логов apache(nginx) access, !*! xyz, 17:29 , 28-Окт-09 (1)
    ротация лога раз в несколько часов + австатс на более мелких кусках
    >[оверквотинг удален]
    >Написал простенький анализатор на основе awk
    >
    >awk '($9 !~ /200|304/)' $log | awk '{print $9,$7,$11}' | sort |
    >uniq -c | sort -r -n | head -n 70
    >
    >В результате его работы получаю отчет вида
    ><кол-во повторов ошибки> <код (404,503 ...)> <запрос> <reffer>
    >
    >Вопрос: существуют ли другие решения которые могут предоставить расширенную статистику ошибок на
    >основе access логов?

    • Анализ больших логов apache(nginx) access, !*! McLeod095, 17:51 , 28-Окт-09 (2)
      >[оверквотинг удален]
      >>Написал простенький анализатор на основе awk
      >>
      >>awk '($9 !~ /200|304/)' $log | awk '{print $9,$7,$11}' | sort |
      >>uniq -c | sort -r -n | head -n 70
      >>
      >>В результате его работы получаю отчет вида
      >><кол-во повторов ошибки> <код (404,503 ...)> <запрос> <reffer>
      >>
      >>Вопрос: существуют ли другие решения которые могут предоставить расширенную статистику ошибок на
      >>основе access логов?

      От себя ничего полезного посоветовать не могу, но пока в качестве временных мер хочу предложить вместо awk использовать perl. сам на себе проверил что на больших файлах perl работает заметно шустрее чем awk, правда у меня файлы были от 100 мегбайт.

      и кстати
      awk '($9 !~ /200|304/ {print $9,$7,$11})' $log должно работать быстрее :-)

      СОРРИ за флуд

      • Анализ больших логов apache(nginx) access, !*! angra, 08:50 , 29-Окт-09 (3)
        Во первых perl быстрее, во вторых больше возможностей. Обрабатывались им и куда большие объемы. Правильно написанный вариант на perl справится с таким объемом за несколько минут. При желании можно его вообще сделать работающим по принципу tail -f да еще и  интерактивным.
        Если с perl не дружите, то опишите _детально_ задачу, как будет время займусь.
        • Анализ больших логов apache(nginx) access, !*! sumaster, 10:03 , 29-Окт-09 (4)
          >Во первых perl быстрее, во вторых больше возможностей. Обрабатывались им и куда
          >большие объемы. Правильно написанный вариант на perl справится с таким объемом
          >за несколько минут. При желании можно его вообще сделать работающим по
          >принципу tail -f да еще и  интерактивным.
          >Если с perl не дружите, то опишите _детально_ задачу, как будет время
          >займусь.

          спасибо
          понял
          1. готовых решений для анализа больших логов (вроде awstats) нет
          2. нужно изучать perl

  • Анализ больших логов apache(nginx) access, !*! greenwar, 11:02 , 10-Ноя-09 (6)
    >Пример желаемого отчета:
    ><кол-во повторов ошибки> <код (404,503 ...)> <запрос> <domain> <reffer>
    ><кол-во повторов ошибки> <код (404,503 ...)> <запрос> <domain> <reffer>

    нужен визуальный пример строки, которую нужно зацепить
    ну и также не помешает пример строки, которую цеплять не нужно

    ну а на основе пока имеющихся данных будет как-то так:

    #!/usr/bin/perl

    use warnings;

    my$from="/path/to/logfile"; # откуда брать данные для обработки
    my$to="/report/file"; # куда скидывать обработанный вывод

    open(FH,"$from");
    open(TO,">$to");
    while(<FH>){
    next if !/код (404,503)/g;
    $total++;
    print TO "$_"; # не ставлю \n, потому что строки в исходном файле уже с ним
    }
    print TO "\nвсего ошибок: $total\n";

    получите список ошибок 404,503 и общее их кол-во в файл /report/file

    • Анализ больших логов apache(nginx) access, !*! greenwar, 13:16 , 10-Ноя-09 (7)
      попался мне тут лог httpd_access на глаза. соот-но, код меняем на этот:

      #!/usr/bin/perl

      use warnings;

      $from="httpd_access.log";
      $to="httpd_parsed";
      $total403=$total404=0;

      open(FH,"$from")or die"не открывается $from: $!\n";
      open(NEW,">$to");

      while(<FH>){
          next if !/" (?:403|404) \d/;

          if(/" 403 \d/){print NEW "$_";$total403++}
          if(/" 404 \d/){print NEW "$_";$total404++}
      }
      print NEW "\nвсего ошибок 403: $total403
      всего ошибок 404: $total404\n";

      • Анализ больших логов apache(nginx) access, !*! Leo, 01:31 , 08-Май-12 (8)
        Народ, помогите плиз?
        Нужно написать скрипт на перл а у меня с ним опыта вобще никакого.
        Задача:
        Есть 4 папки в папке /weblogs
        в каждой из них лежит немерянное количество архивированных логов апача.
        Теперь есть файлик с 80тью IP адресами, и надо получить отчет какой адрес в каком файле встречается.

        Человек который поставил задачу посоветовал применить перл хэши.
        Вот сижу теперь ломаю голову что это такое и с чем его едят :(

        Заранее благодарен за помощь.





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру