Как анализировать логи сайта


Как проанализировать логи сайта

В данном случае браузер понимает, что https — это протокол, your_site_address.com — название сервера, а example.html — имя файла.

Название сервера преобразуется в IP-адрес через сервер доменных имен. Затем HTTP-запрос GET отправляется на веб-сервер через соответствующий протокол для запрашиваемой страницы или файла, при этом HTML возвращается в браузер, а затем интерпретируется для форматирования видимой страницы на экране. Каждый из этих запросов записывается в log file веб-сервера.

Проще говоря, процесс выглядит так: посетитель совершает переход по странице, браузер передает его запрос серверу, на котором расположен веб-сайт. Сервер выдает запрошенную пользователем страницу в ответ. И после этого фиксирует все происходящее в log-файле.

Все, что вам нужно, чтобы проанализировать сканирование сайта поисковой системой, — экспортировать данные и отфильтровать запросы, сделанные роботом, например, Googlebot. С помощью браузера и диапазона IP это сделать удобнее.

Сам лог-файл представляет собой сырую информацию, сплошной текст. Но правильная обработка и анализ дают неограниченный источник информации.

Как анализировать файлы журналов сайта

В этом случае браузер понимает, что https - это протокол, your_site_address.com - это имя сервера, а example.html - это имя файла.

Имя сервера преобразуется в IP-адрес через сервер доменных имен. Затем HTTP-запрос GET отправляется на веб-сервер по соответствующему протоколу для запрошенной страницы или файла, в то время как HTML возвращается в браузер, а затем интерпретируется для форматирования видимой страницы на экране.Каждый из этих запросов записывается в файл журнала веб-сервера.

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

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

Сам файл журнала представляет собой необработанную информацию, сплошной текст. Но правильная обработка и анализ предоставляют неограниченный источник информации.

.

10 лучших инструментов анализа журналов - принятие решений на основе данных

Брайан Джексон

Обновлено 1 июля 2020 г.

Мы живем во времена, когда данные записываются и регистрируются практически для всего. Будь то время безотказной работы веб-сервера, ошибки JavaScript, запросы к базе данных, трафик CDN, ошибки Nginx и т. Д. Вы называете это, и вы, вероятно, можете регистрировать его. В предыдущем посте мы обсудили важность интеграции службы управления журналами в рабочий процесс DevOps. Централизованные журналы - это здорово, но вы также должны уметь их эффективно анализировать.Итак, сегодня мы хотим охватить 10 лучших инструментов анализа журналов , которые вы можете использовать для лучшего анализа журналов, выполнения поиска в реальном времени и запроса конкретных данных журнала, которые вам нужны.

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

Существует множество различных инструментов анализа журналов, ниже представлены 10 самых популярных из них.Каждый из них предлагает собственные уникальные функции поиска, запросы в реальном времени и т. Д. Некоторые из перечисленных инструментов представляют собой дополнительные службы управления журналами, но они также предлагают более эффективные способы анализа журналов по сравнению с просмотром необработанных данных. Они расположены без определенного порядка и включают как бесплатные, так и платные инструменты.

Объединение всех журналов, показателей и событий компьютера в единый концентратор. Получите четкое представление о том, что происходит в вашей распределенной среде, и мгновенно обнаружите иголку в стоге сена.

- Logmatic

1. Loggly

Loggly - это облачный поставщик услуг управления журналами и аналитики, основанный в 2009 году. Их основная цель - сделать управление журналами намного проще, а DevOps, SysOps и инженеры не должны беспокоиться об управлении журналом. Некоторые из их клиентов включают EA, Autodesk, SendGrid, Atlassian, Sony Pictures и Citrix.

Функции Loggly

Loggly имеет как бесплатные, так и платные планы . Некоторые из функций анализа loggly включают в себя возможность видеть ваши журналы с высоты птичьего полета с помощью своего dynamic field explorer .Вы можете избавиться от шума несколькими простыми щелчками мыши. Они также могут похвастаться мощными полнотекстовыми поисками , диапазонами и логическими значениями. Вы также можете легко отслеживать тенденции в своих журналах, используя их расширенные представления и графики . Если вы видите всплеск, вы можете быстро сузить его до этого момента в журнале.

2. GoAccess

GoAccess разработан как быстрый терминальный анализатор журналов. Его основная идея - быстро анализировать и просматривать статистику веб-сервера в реальном времени без необходимости использования браузера.Это открытый исходный код, доступный на GitHub с более чем 2900 звездами и 200+ форками.

GoAccess особенности

Нам нравится GoAccess, потому что это открытый исходный код, и поэтому полностью бесплатен для использования. Это инструмент для тех, кто любит использовать терминал и SSH и хочет получить быстрый доступ к своим данным. Вы можете легко создавать отчеты с помощью этого инструмента на лету, создавая их в режиме реального времени в формате HTML, JSON или CSV. Вы можете просмотреть живую демонстрацию здесь.

Другие функции включают в себя возможность постепенной обработки журналов, выбор формата журнала, статистику в реальном времени и предварительно определенные строки настраиваемого формата журнала.

3. logz.io

logz.io предлагает вам актуальную информацию в реальном времени о ваших данных аналитики журналов с помощью размещенного ELK как услуги. ELK - это простая, но надежная платформа для анализа журналов, стоимость которой невелико. Некоторые из их клиентов включают Netflix, Facebook, LinkedIn, Cisco и Microsoft. logz.io, вероятно, является одним из самых больших конкурентов Splunk, о котором будет сказано ниже.

logz.io особенности

logz.io имеет как бесплатные, так и платные планы .Устранение неполадок в производстве - это, пожалуй, самый распространенный вариант использования аналитики журналов. Их интерфейс, поддерживаемый Kibana, позволяет вам искать в миллионах записей, чтобы исследовать и определять потенциальные проблемы. Вы можете фильтровать результаты по серверу, приложению или любому настраиваемому параметру, пока не найдете источник проблемы. Если вы ищете альтернативу Splunk, вы можете попробовать logz.io.

4. Graylog

Graylog - это платформа управления журналами с открытым исходным кодом, которая позволяет выполнять поиск, анализировать и предупреждать вас по всем файлам журналов.Некоторые из их клиентов включают BCBS, eBay, SAP, Cisco, LinkedIn и Twilio. Он доступен на GitHub с более чем 2000 звезд и 300+ форков.

Graylog features

Поскольку это открытый исходный код, Graylog полностью бесплатен для использования. У них также есть корпоративная версия, где они взимают плату за лицензию на сервере. Некоторые из его функций включают REST API и гибкий механизм обработки Graylog, который позволяет легко анализировать и дополнять журналы из любого источника данных. Вы можете мгновенно искать в терабайтах данных и даже сохранять поисковые запросы, чтобы поделиться ими с коллегами.Их мощный детальный анализ и диаграммы позволяют легко выявлять проблемы в ваших журналах.

5. Splunk

Splunk - громкое имя в области журналов и управления приложениями. Они существуют с 2003 года и не новички в том, что касается анализа и мониторинга данных. Они предлагают отличные решения для крупных корпоративных клиентов.

Возможности Splunk

Splunk имеет бесплатных и платных планов . Их бесплатный план Spunk light позволяет регистрировать до 500 МБ данных в день.Стоимость платных планов зависит от объема обрабатываемых данных. Splunk предлагает отличный способ сбора, хранения, индексации, поиска, корреляции, визуализации, анализа и составления отчетов по любым машинным данным для выявления и решения операционных проблем и проблем безопасности более быстрым, воспроизводимым и более доступным способом. Они предлагают мощные средства детализации, которые позволяют легко возвращаться во времени с помощью специальных запросов. Их информационная панель и диаграммы тенденций также предоставляют отличный способ выявлять и визуализировать возможные тенденции.

6. Logmatic.io

Logmatic.io - это инструмент анализа журналов, разработанный специально для повышения производительности программного обеспечения и бизнеса. Основатели имеют более чем 10-летний опыт работы в области программного обеспечения для работы с большими данными и в режиме реального времени. Их упор делается на анализе ваших «машинных данных».

Функции Logmatic

У Logmatic.io платных тарифных планов по цене от 49 долларов в месяц. Некоторые из их функций включают возможность создавать свои собственные правила синтаксического анализа, которые позволяют программному обеспечению автоматически распознавать шаблоны.Это поддерживается в Apache, Nginx, системных журналах, событиях JSON и т. Д. У вас есть фасетный и полнотекстовый детальный поиск вплоть до уровня журнала, а также журналы в реальном времени и поиск в реальном времени. Вы можете использовать сложные запросы, такие как AND, OR, подстановочные знаки. и т. д. Они предоставляют вам всевозможные графики для выявления тенденций, от географических карт, блок-схем до сводных таблиц!

7. Logstash

Logstash - это бесплатный инструмент с открытым исходным кодом для управления событиями и журналами. Вы можете использовать его для сбора журналов, их анализа и сохранения для дальнейшего использования.Этот инструмент идет рука об руку с Elasticsearch и Kibana. Их совместное использование может стать мощной комбинацией для инструмента анализа журналов. Все они доступны на GitHub.

Logstash особенности

Поскольку это открытый исходный код, Logstash полностью бесплатен для использования. У них также есть платная лицензия, доступная для тех, кому нужны дополнительные функции. Вы можете использовать elasticsearch, kibana и logstash вместе. Kibana позволяет вам более легко исследовать и визуализировать данные журнала, которые вы вводите с помощью logstash, а elasticsearch дает вам мощные возможности поиска и аналитики в реальном времени.

8. Sumo Logic

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

Функции Sumo Logic

Sumo Logic имеет бесплатных и платных планов по цене от 90 долларов в месяц. Они предлагают уникальную функцию, которую они называют машинным обучением. Это позволяет анализировать петабайты данных и извлекать из них уроки, чтобы быстрее обнаруживать закономерности.Их инструмент использует расширенную аналитику, которая помогает разобраться в больших объемах данных с помощью индексации и фильтрации. Их интуитивно понятная панель инструментов позволяет обнаруживать аномалии, настраивая предварительно определенные пользователем фильтры показателей.

9. Papertrail

Papertrail - это скорее служба управления журналами, но они также предлагают несколько замечательных функций, которые ускоряют анализ ваших журналов! Некоторые из их клиентов включают GitHub, Instacart, Product Hunt и DNSimple.

Характеристики Papertrail

Papertrail имеет как бесплатные, так и платные планы по цене от 7 долларов в месяц.Некоторые из их функций включают интуитивно понятный веб-просмотрщик журналов и мощные инструменты командной строки. У них есть REST API и долгосрочные архивы с S3. Если вы разработчик, вам, вероятно, понравится то, что делает Papertrail! Вы можете выполнять поиск в реальном времени, искать по времени, контенту, элегантный поиск, сохранять результаты поиска и даже по-разному раскрашивать журналы. У них даже есть виджет панели управления OS X и интеграция с вашими любимыми инструментами, такими как Slack и Zendesk.

10. Fluentd

Fluentd - это еще один инструмент анализа данных с открытым исходным кодом, который позволяет унифицировать журналы из нескольких источников, чтобы лучше и проще анализировать их.Некоторые из самых известных пользователей Fluentd включают Microsoft, Amazon AWS и Atlassian.

Функции Fluentd

Fluentd позволяет разделить несколько источников данных, таких как журналы доступа, журналы приложений, системные журналы и т. Д., И объединить их в один уровень ведения журналов. Затем вы можете фильтровать, буферизовать и направлять эти журналы в соответствующие системы (например, Hadoop, Elasticsearch, AWS и т. Д.). У пользователей Fluentd также есть 300+ плагинов для подключения к множеству источников данных. Он может делать это, сохраняя при этом небольшой объем памяти, всего 30-40 МБ.

Сводка

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

Пропустили ли мы какие-нибудь действительно важные инструменты анализа журналов? Если это так, не стесняйтесь комментировать ниже. Нам особенно нравятся новые инструменты с открытым исходным кодом!

.

Полное руководство по анализу журналов с помощью Big Query

(У некоторых людей преобразователь временных меток работал некорректно, теперь это необходимо исправить.)

Хотите узнать об анализе журнала? Это руководство расскажет обо всем, от того, почему вы должны это делать, до получения журналов, их загрузки и анализа.

Потребуются ли вам какие-либо навыки программирования, чтобы следовать этому? Нет, но мы предоставим несколько вариантов для тех, кто это сделает.

Вам уже нужно знать SEO? Да.Если вы этого не сделаете, то, надеюсь, вам будет интересно узнать, почему, но анализ журналов сам по себе бесполезен. Чтобы воспользоваться всей информацией, которую он дает, вам нужно знать основы SEO, уметь сканировать и понимать возможные проблемы, которые он выявляет.

Какой TL; DR для этой статьи? Вы должны использовать журналы анализа, чтобы получить ценную информацию о том, как Google сканирует и просматривает ваш сайт, обнаруживает и отслеживает ошибки и расставляет приоритеты при принятии решений. С помощью BigQuery ваш анализ будет простым и повторяемым, и вы сможете использовать все замечательные запросы, которые мы уже написали.

Содержание

  1. Что такое журнал?
  2. Почему вам следует проводить анализ журнала?
    1. Диагностика сканирования и индексации
    2. Приоритизация
    3. Выявление ошибок и проверка работоспособности сайта
    4. Как понять, насколько важными для Google видятся части вашего сайта
    5. Измерение свежести вашего контента
  3. Как получить логи
    1. Есть ли PII
    2. Все файлы журналов находятся в одном месте?
      1. Мобильные сайты
      2. Разделы сайта
      3. Кэш веб-сайта
  4. Различные инструменты, которые можно использовать для анализа журналов
    1. BigQuery
    2. Excel
    3. ELK
    4. Инструменты для ведения бревен
    5. Ваш собственный SQL-сервер
  5. Как обрабатывать журналы
    1. Обработка журналов с помощью Screaming Frog Log Analyzer
    2. Загрузка журналов в BigQuery
  6. Как анализировать журналы
    1. Проверка данных
    2. Краткое руководство по SQL
    3. Сравните свои данные с Google Search Console
    4. Каков процесс анализа журналов
  7. Задавать правильные вопросы

Что такое журнал?

Каждый раз, когда вы посещаете веб-сайт, сервер отправляет вам страницу и записывает некоторую базовую информацию о человеке, который ее запрашивает.Это одна строка для каждого запроса от любого человека или бота, который обращается к вашему сайту.

Запись в файле журнала выглядит так:

123.65.150.10 - - [23 / Aug / 2010: 03: 50: 59 +0000] "GET / my_homepage HTTP / 1.1" 200 2262 "-" "Mozilla / 5.0 (совместимый; Googlebot / 2.1; + http: // www.google.com/bot.html) «

  • IP-адрес: это IP-адрес человека или бота, посещающего веб-сайт. Это их адрес в Интернете.
  • Timestamp: это время выполнения запроса (и часовой пояс)
  • Тип запроса: запрос GET (который вы видите большую часть времени) - это человек или бот, запрашивающий страницу, запрос PUT - это кто-то, отправляющий информацию (например,грамм. отправка формы).
  • Страница: запрашиваемая страница, в данном случае my_homepage.
  • Протокол: всегда будет отображаться HTTP, если у вас смешанный веб-сайт HTTP / HTTPS, вам необходимо попросить вашего разработчика настроить отслеживание для этого.
  • Код состояния: Число, указывающее тип ответа сервера, например 200 - запрос возвращен, 301 - запрос перенаправлен и т. Д.
  • Размер страницы в байтах: сколько байтов загружен пользователем в файл.
  • Агент пользователя: имя бота или название версии браузера, которую пользователь использует для доступа к веб-сайту.

Хотите еще таких советов в своем почтовом ящике? Подпишитесь на ежемесячную рассылку новостей.

Почему вам следует проводить анализ журнала?

В разделе запросов вы сможете увидеть все подробные вопросы, которые вы можете задать при анализе журналов, но в целом они укладываются в 5 основных сегментов:

  1. Диагностика проблем сканирования и индексирования
  2. Приоритизация
  3. Выявление ошибок и проверка работоспособности сайта
  4. Как понять, насколько важными для Google видятся части вашего сайта
  5. Измерьте свежесть вашего контента

Диагностика проблем сканирования и индексирования

Это основа анализа файлов журнала.Если у Google возникают проблемы со сканированием вашего сайта, это может иметь множество негативных последствий:

  • Если ваш контент не проиндексирован, значит, вы упускаете потенциальный трафик.
  • Любые внесенные вами изменения вступят в силу в течение длительного времени, что приведет к задержке результатов.
  • Далее, если вы пытаетесь измерить влияние изменений на вашем сайте, и все страницы обновляются в разное время, трудно измерить внесенные вами изменения.
  • Проблемы со сканированием - распространенный показатель того, что вы могли случайно создать много тонкого или дублированного контента.

К счастью, файлы журналов отлично подходят для этого. Изучив, где Google сканирует и где он тратит свое время, вы можете сузить, где именно он тратит слишком много времени, где не тратит достаточно времени, какие разделы вашего сайта сканируются недостаточно часто, а где не следует ' не ползать вообще.

Приоритизация

Одна из самых сложных частей SEO - это расстановка приоритетов для различных проблем, с которыми вы сталкиваетесь. Например:

  • Что больше проблем на моем сайте: цепочка переадресации или тонкий контент?
  • У меня есть два разных набора переадресации внутренней ссылки 301, что вызывает у Google больше проблем?

Наблюдая за тем, где Google проводит свое время на вашем сайте, вы можете определить приоритеты в областях, которые больше всего на него повлияют.

Выявление ошибок и проверка работоспособности сайта

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

Все эти изменения часто могут нарушить работу, и могут пройти недели, прежде чем вы обнаружите набор ссылок, которые 404 или часть сайта перенаправляет 302.

Вы можете очищать свой сайт каждый день, но это большая работа, и вы также можете работать с сайтом, который слишком велик для сканирования.

Google Search Console предоставляет интерфейс для проверки ошибок такого рода, но у него много проблем:

  • Вы получаете максимум 1000 результатов для каждого типа ошибки
  • Старые ошибки могут оставаться в интерфейсе, если вы их не отслеживаете.
  • Нет приоритета
  • Существует задержка между созданием ошибок и их появлением в консоли поиска.
  • Вы можете видеть только ошибки, но не перенаправления.

Анализ файла журнала решает все проблемы с Google Search Console.

Насколько важны для Google части вашего сайта?

Теперь мы начали усложнять задачу. Просмотр файлов журнала также может дать вам представление о том, насколько важны Google для просмотра различных страниц или шаблонов страниц на вашем сайте.

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

Означает ли это, что если вы выстроите все свои страницы в порядке от наиболее просматриваемого до наименее просматриваемого, вы увидите, какие страницы важны? Не обязательно, так как на это могут повлиять другие факторы, например, частота обновлений.Например, RSS-каналы много сканируются, потому что они постоянно обновляются с содержанием, а не потому, что это важная страница, которую Google хочет получить в рейтинге.

Например, если у вас есть магазин электронной коммерции, и в среднем все ваши продукты сканируются так же часто, как и страницы категорий, вероятно, Google не понял вашу иерархию. С другой стороны, если URL-адрес одного продукта сканируется гораздо чаще, возможно, он вызывает особые споры и получил много внимания в обществе или в прессе, то это другие обстоятельства, которые, скорее всего, являются причиной этого.

Измерение свежести вашего контента

Есть отличный пост Сайруса Шепарда, в котором исследуется, почему свежесть может быть важна для вашего контента, с помощью некоторых методов, упомянутых в патенте Google.

Как бы часто вы ни обновляли свой контент, он остается свежим только в том случае, если Google обнаруживает эти обновления. Если вы обновляете свою страницу 3 раза в день, а Google сканирует ее только один раз в неделю, вы теряете много времени. Либо вам нужно, чтобы Google сканировал вашу страницу чаще, либо вы можете сэкономить время и меньше обновлять содержание.

Файлы журнала позволяют измерить эту свежесть.

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

Как получить логи

Если вы пришли сюда, значит, вас убедили или уже убедили. Итак, как.

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

Итак, что нам нужно выяснить?

Есть ли личная информация?

Файлы журнала могут содержать личную информацию, такую ​​как электронные письма, номера телефонов и т. Д.

Компании по понятным причинам осторожны с этой информацией, поэтому первое, что мы хотим прояснить, - это то, что нам она не нужна.

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

Все журналы находятся в одном месте?

Нам нужно убедиться, что мы получили все журналы по всему, что нас интересует. Вот некоторые общие места, где журналы могут находиться в разных местах, и нам нужно убедиться, что мы явно проверили это:

Мобильные сайты

Если на веб-сайте есть www. И м. сайт например

Разделы веб-сайта, которые выглядят по-разному

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

Если это так, каждый раздел может записываться в разные места, и нам нужно получить обе части журнала.

Кэш веб-сайтов

Другой распространенный пример - если на веб-сайте выполняется какое-то кеширование, которое может разделять журналы. Что, черт возьми, это значит?

Возьмите пример ниже:

Когда пользователь 1 запрашивает страницу, сервер генерирует страницу и отправляет ему. Он проходит через кеш, который делает копию страницы.

Когда пользователь 2 запрашивает ту же страницу, кеш обнаруживает это и отправляет им сделанную копию без необходимости что-либо делать серверу.

Этот кеш может регистрировать где-то отличное от сервера, поэтому мы должны убедиться, что получили оба набора журналов.

На какой срок мы можем получить журналы?

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

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

Регистрируют ли они имя хоста?

Давайте возьмем пример сайтов электронной коммерции, у которых есть два поддомена:

  1. www.example.com/tvs
  2. example.com/tvs
  3. blog.example.com/tvs

Первая страница - это категория для телевизоров, вторая - это дублированная версия, которая не была правильно перенаправлена, а вторая - это категория блога для контента на телевизорах.

Ключевое различие между этими 3 URL - это имя хоста, www, blog или * пустой *.

К сожалению, в некоторых случаях, когда журналы собираются вместе, веб-сайт не сохраняет имя хоста, что означает, что все три страницы выглядят одинаково.

Нам нужно спросить, записывают ли они имя хоста, и включить ли его, если нет.

Слишком много данных журнала?

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

Нам нужно выяснить, насколько велики файлы журналов. Если их больше, чем мы можем комфортно работать (для тех, кто не разбирается в технике, этот предел составляет около 4-6 ГБ), или ваш разработчик жалуется на их размер, есть одно простое действие, которое мы можем сделать, чтобы сократить по размеру.

Поскольку нас в первую очередь интересует робот Google (извините, Бинг), мы можем попросить нашего разработчика исключить все, что не является роботом Google.

Следующая команда (которую вам не нужно понимать) поймает 99.9% запросов робота Google и значительно упрощают работу с вашими файлами.

grep -i -E "googlebot | mediapartners-google | adsbot-google"

(Конечно, если вас интересует другая поисковая система, вам нужно будет изменить строку между апострофами.)

Электронное письмо для разработчика

Вот копия электронного письма, которое я отправляю разработчикам в начале проекта, чтобы узнать об этих областях и сузить круг проблем.

Высокий x

Я {x} из {y}, и нас попросили провести некоторый анализ журнала, чтобы лучше понять, как Google ведет себя на веб-сайте, и я надеялся, что вы можете помочь с некоторыми вопросами о настройке журнала ( а также с получением логов!).

В идеале нам бы хотелось вести исторические журналы веб-сайта за 3–6 месяцев. Наша цель - просмотреть все страницы, которые поисковые системы просматривают на нашем веб-сайте, определить, где они проводят время, какие ошибки кода состояния обнаруживают и т. Д.

Есть также некоторые вещи, которые нам действительно полезно знать при получении журналов.

Есть ли в журналах личная информация?

Нас беспокоят только различные роботы поисковых роботов, такие как Google и Bing, нам не нужны никакие журналы от пользователей, поэтому любые журналы с электронными письмами, номерами телефонов и т. Д.можно удалить.

Есть ли у вас какое-либо кеширование, при котором создаются отдельные наборы журналов?

Есть ли что-нибудь вроде Varnish, запущенного на сервере, или CDN, который может создавать журналы в другом месте, чем остальная часть вашего сервера? В таком случае нам понадобятся эти журналы, а также журналы с сервера. (Хотя нас интересует только CDN, если он кэширует страницы или обслуживает с того же имени хоста; если вы просто используете Cloudflare, например, для кеширования внешних изображений, тогда нам это не нужно).

Есть ли какие-либо части вашего сайта, которые ведут в другое место?

У вас есть что-нибудь вроде встроенного блога Wordpress, который ведет журнал в другом месте? В таком случае нам понадобятся и эти журналы.

Вы регистрируете имя хоста?

Нам очень полезно видеть имя хоста в журналах. По умолчанию многие общие настройки ведения журнала сервера не регистрируют имя хоста, поэтому, если он не включен, было бы очень полезно включить его сейчас для любого будущего анализа.

Что еще нам следует знать?

Лучшее,

{x}

Различные инструменты, которые можно использовать для анализа журналов

Когда у нас есть журналы, нам нужно выбрать, как их анализировать.

В целом, я думаю, что есть 6 критериев, которые следует использовать при оценке инструмента для анализа журналов:

  1. Можем ли мы задавать важные и сложные вопросы?
  2. Можно ли повторить анализ?
  3. Можно ли комбинировать с данными сканирования?
  4. Легко ли настроить инструмент?
  5. Легко ли освоить инструмент?
  6. Можно ли масштабировать?
  7. Это дешево?

Самый известный из них, который может не относиться к малому бизнесу, - это номер 6.

Агентствам понадобится инструмент, который масштабируется, крупный или быстрорастущий бизнес также будет нуждаться в нем, однако для некоторых малых и средних предприятий 6 не будет проблемой.

BigQuery

BigQuery - это инструмент, который я рекомендую. Это масштабируемая облачная база данных Google для анализа данных.

Для наших целей это две важные вещи:

  1. Это база данных, уже настроенная в облаке, поэтому она не требует настройки, хорошо масштабируется и стоит очень дешево в использовании.
  2. Это позволяет нам использовать SQL для анализа наших журналов. Не волнуйтесь, если это звучит пугающе. На самом деле это очень просто.

Почему SQL - правильный инструмент для работы?

Стоит конкретно остановиться на том, почему SQL - правильный инструмент для этой работы. Поскольку критерии 1,2 и 5 решаются SQL.

Во-первых, этому легко научиться. Написание SQL похоже на написание запроса к очень логичному человеку. Например,

 ВЫБЕРИТЕ 
car_model
FROM
list_of_ford_cars
ГДЕ
price_range = «доступный»

Без особых раздумий, я уверен, многие из вас догадались, что это может вернуть:

Индекс

, модель

1

Fiesta

2

Пинто

3

Фокус

Он также очень мощный.Хотя этот последний запрос был очень простым, SQL был разработан для поддержки очень сложных запросов. Мы могли бы написать один запрос, чтобы узнать, сколько времени в среднем уходит на сканирование наших страниц Google.

Lastl это повторяемый. Если бы у нас был другой список автомобилей, мы могли бы скопировать и вставить наш запрос, изменив только FROM и получив тот же набор информации для нашей новой таблицы:

 ВЫБЕРИТЕ 
car_model
FROM
list_of_bmw_cars
ГДЕ
price_range = «доступный»

Но есть и другие инструменты, которые можно использовать для анализа журналов, которые стоит затронуть:

Excel

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

Задавать сложные вопросы, например, вычислить, сколько времени в среднем требуется для сканирования страницы Google, занимайте много времени, выполняя несколько шагов, и это можно повторить, только если вы умеете кодировать в Excel. И если вы умеете писать код на VBA, не лучше ли вместо этого кодировать что-нибудь другое?

ELK Стек

ELK означает Elasticsearch, Logstash и Kibana.Это серия программ, которые можно настроить для отслеживания всех журналов на вашем сервере.

Обычно он настраивается разработчиком для мониторинга работоспособности сервера, однако он может быть взломан предприимчивым оптимизатором поисковых систем, чтобы следить за роботом Googlebot в режиме реального времени.

Основные 3 проблемы со стеком ELK:

  1. Он не настроен для упрощения комбинирования данных сканирования
  2. Используемый язык запросов не такой интуитивно понятный, как SQL, синтаксис более сложный.(Это похоже на попытку выучить язык, где у одного очень мало грамматических правил, а у другого много. Второе будет сложнее.)
  3. Вам придется настроить его самостоятельно, что может быть сложно.

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

Инструмент для бревен для профессионального использования

Что касается SEO, это включает такие вещи, как Botify, OnCrawl и Screaming Frog Log Analyzer, а на стороне, не связанной с SEO, он включает такие инструменты, как Splunk.

В общем, эти инструменты падают в одном из двух направлений:

  1. Они слишком дороги ИЛИ
  2. Они не могут задавать важные вопросы простым и повторяемым образом.
Ваш собственный SQL-сервер

Мы уже отстаивали SQL в первом разделе, так почему бы просто не использовать свой собственный SQL-сервер, а не сервер Google?

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

Учитывая, что BigQuery бесплатен для всех видов анализа журналов, кроме самых крупных, почему бы не использовать его, а не приложить к себе все эти дополнительные усилия?

Обработка журналов

Нам нужно обработать наши журналы, чтобы загрузить их в BigQuery (далее BQ), где мы и будем проводить анализ журналов.

Мы пытаемся сделать две вещи:

  1. Отформатируйте наши журналы в CSV, чтобы мы могли загрузить их в BQ
  2. Удалите все, что не является роботом Googlebot

(Для этого предположим, что мы анализируем только Googlebot.)

Есть два способа сделать это. Если вы не умеете писать код, мы воспользуемся анализатором Screaming Frog. Если вы умеете писать код, читайте дальше (или вас интересуют подробности), а затем перейдите на нашу страницу GitHub, где мы рассмотрим все тонкости обработки журналов.

Создание собственного решения для обработки журналов

Я выделил эту часть статьи на отдельную страницу Github.

https://github.com/dom-devel/log-analysis-notes

Обработка журналов с помощью анализатора журналов Screaming Frog

Лучше всего это показать на видео.Так что приготовьте свои журналы и поехали.

Вы можете найти программу преобразования меток времени здесь.

Загрузка журналов в BigQuery

Опять же, это лучше всего показать на видео.

Вот схема и запрос, упомянутые в видео:

Схема для процесса загрузки

 журналов: full_url: STRING, timestamp: TIMESTAMP, ip_address: STRING, method: STRING, status_code: INTEGER, size: FLOAT, time_taken: FLOAT, user_agent: STRING, referer: STRING 

Запрос на первичную обработку:

 ВЫБЕРИТЕ 
*,
CASE
КОГДА full_url СОДЕРЖИТ "?" THEN 1
ELSE 0
END AS has_params,
CASE
WHEN user_agent CONTAINS "Googlebot" THEN "googlebot"
WHEN user_agent CONTAINS "Mediapartners-Google" THEN "googlebot-ad"
WHEN user_agent Google AdsBot CONTAINS -ad "
ELSE" not googlebot "
END AS google_agent,
FIRST (SPLIT (full_url, ':')) AS протокол,
FIRST (SPLIT (REGEXP_REPLACE (full_url, r '(http | https): \ / \ / (www.)? example \ .com ',' '),'? ')) AS путь,
NTH (2, SPLIT (REGEXP_REPLACE (full_url, r' (http | https): \ / \ / (www.)? example \ .com ',' '),'? ')) AS запрос,
NTH (3, SPLIT (full_url,' / ')) AS page_path_1,
NTH (4, SPLIT (full_url,' / ')) AS page_path_2,
NTH (5, SPLIT (full_url, '/')) AS page_path_3,
NTH (6, SPLIT (full_url, '/')) AS page_path_4,
NTH (6, SPLIT (full_url, '/')) AS page_path_5
ИЗ
[вставить свою таблицу]

Как анализировать журналы

Проверка данных

После того как у нас есть журналы в BigQuery, нам нужно убедиться, что у нас есть все журналы.

Для этого мы сравниваем общее количество сканирований, которое мы получаем для наших журналов, с количеством сканирований, которое мы видим в Google Search Console.

Время для нашего первого запроса SQL:

Вопрос: Сколько раз робот Google ежедневно сканировал наш сайт в наших журналах?

Запрос:

 ВЫБРАТЬ дату 
(метку времени) как дату,
счет (*) как num_requests
FROM
[my_dataset.log_analysis]
GROUP BY
date
ORDER BY
date desc
Быстрый просмотр этого бита SQL

Поскольку это наш первый запрос, мы потратим немного времени на его изучение.

Мы выбираем метку времени из нашей базы данных, а затем преобразуем ее в дату. Мы получаем это из таблицы log_analysis и упорядочиваем дату по убыванию.

Это охватывает все, кроме строк 3, 6 и 7. На самом деле нам не нужна дата из каждого отдельного запроса журнала, нам нужна общая сумма за каждый день. Строки 3,6 и 7 нужно читать вместе. Мы подсчитываем все строки в строке 3, а в строках 6 и 7 мы говорим count, где дата одинакова.

Не волнуйтесь, если вы не совсем понимаете, в конце у нас есть целый список примеров запросов, и самый простой способ освоить SQL - это просто поиграться с ним. Попробуйте выполнить запросы и посмотрите, что вы получите. (В конце есть несколько примечаний для типичных ошибок отладки.)

Сравнение результатов журнала с GSC

Затем мы хотим сравнить это с Google Search Console. По моему опыту, данные журнала никогда сильно не отличались от данных консоли поиска. Хотя эти два графика не совпадают в точности, они должны выглядеть примерно одинаково (возможно, со смещением на день в зависимости от часового пояса сервера) и находиться примерно на одном и том же уровне.

Например, если у вас 10 000 посещений в день в ваших журналах, но 20 000 в GSC, вам не хватает некоторых журналов.

Если они не успевают, вернитесь к своему разработчику и выясните, какие журналы вам не хватает.

Но если предположить, что они это сделают. Поздравляем, мы наконец-то достигли захватывающей части этого - самого анализа.

Как происходит анализ журналов?

Что бы вы ни делали, процесс анализа журналов в целом будет проходить в тех же трех областях.

  1. Вы идете и задаете несколько вопросов
  2. Вы нашли то, что стоит исследовать
  3. Вы переходите к данным сканирования из такой программы, как screaming frog или deep crawl, или переходите на настоящий веб-сайт, чтобы понять, что происходит.

Несмотря на то, что журналы хороши, вам все равно понадобится способность просматривать чей-то веб-сайт и понимать проблемы, которые вы обнаруживаете.

Задавать правильные вопросы

Помня об этом, мы должны задавать правильные вопросы.Для каждой из этих пяти областей мы упомянули в начале:

  1. Диагностика сканирования и индексации
  2. Приоритизация
  3. Выявление ошибок и просмотр состояния сайта
  4. Видя, насколько важны Google для просмотра различных частей сайта
  5. Измерение свежести вашего контента

У нас есть вопросы (и запросы), которые помогут вам разобраться в них.

Если вы выполнили указанные шаги до этого момента, вы сможете копировать и вставлять эти запросы прямо внутрь, если вы не забываете изменять таблицу в разделе FROM.

Если вы загрузили журналы из SF Log Analyzer, у вас есть не только Googlebot, но и все боты (Bing, Yandex и т. Д.). Если вы хотите посмотреть на бота, отличного от Googlebot, вам нужно удалить:

 ГДЕ 
google_agent = "googlebot" ИЛИ
google_agent = "googlebot-ad"

, откуда он появляется в запросах.

Служебные запросы

Большая часть этого раздела - это запросы, позволяющие проверить ваши данные:

Получить диапазон дат:

Почему: Не знаете, за какой период времени закончились ваши журналы? Не волнуйтесь, такое бывает.Этот запрос сообщит вам первую и последнюю дату в ваших журналах.

Запрос:

 ВЫБРАТЬ 
мин. (Отметка времени), макс. (Отметка времени)
ИЗ
[insert_your_table_here]
Получите общее количество запросов, которые робот Googlebot выполняет каждый день:

Почему: Это уже упомянутый выше запрос, который мы используем для двойной проверки достоверности наших данных.

Запрос:

 ВЫБЕРИТЕ 
ДАТУ (метку времени) как дату, подсчитайте (*) как num_requests
FROM
[insert_your_table_here]
ГДЕ
google_agent = "googlebot" ИЛИ
google_agent = "googlebot-ad"
GROUP BY
datec date
Просматривайте сканирование каждого пользовательского агента по дням

Почему: Иногда бывает полезно увидеть процентное отношение сканирования Googlebot к процентному содержанию мобильного сканирования Googlebot.В частности, с учетом предстоящего индексирования только для мобильных устройств полезно понять, как часто Google сканирует ваш сайт с помощью своего мобильного сканера и компьютера.

Запрос:

 SELECT 
user_agent, date (timestamp) as date, count (user_agent) as num_requests
FROM
[insert_your_table_here]
GROUP BY
user_agent, date

Диагностика проблем сканирования и индексации и важность

Получите 100 самых сканируемых URL:

Почему? Отличное место для поиска мест, где Google не должен сканировать.

Запрос:

 SELECT 
path, count (path) as num_requests
FROM
[insert_your_table_here]
WHERE
(google_agent = "googlebot" OR
google_agent = "googlebot-ad")
GROUP BY path
LIMquests
ORDER BY num_
Получите 100 самых сканируемых папок page_path_1:

Почему: Приятно видеть на высоком уровне, как Google распределяет время на вашем сайте. Отсюда видно, где он проводит время, чего быть не должно, и так далее.

Запрос:

 ВЫБЕРИТЕ 
page_path_1, подсчитайте (page_path_1) как num_requests
FROM
[insert_your_table_here]
WHERE
(google_agent = "googlebot" OR
google_agent = "googlebot-ad")
GROUP BY page_Dquests
 
Получите 100 самых сканируемых каталогов с комбинациями page_path_1 и page_path_2

Почему: Часто архитектура веб-сайтов означает, что интересные каталоги находятся на двух уровнях.Предположим, что большая часть вашего краулингового бюджета находится в папке / shop /, и на самом деле интересны именно те папки второго уровня, / shop / shirts /, / shop / брюки / и т. Д. Этот запрос покажет вам наиболее просматриваемые комбинации вашего первого и каталоги второго уровня.

Запрос:

 ВЫБЕРИТЕ 
page_path_1, page_path_2, подсчитайте (page_path_1) как num_requests
FROM
[insert_your_table_here]
WHERE
(google_agent = "googlebot" OR
google_agent = "google_agent =" googlebot-or-ad ")
GROUP_path_2 page BY_403 ПРЕДЕЛ 1000
Получить ежедневные номера запросов для пути - из 20 наиболее просканированных путей за весь период

Почему: Как мы упоминали выше, прежде чем давать какие-либо рекомендации, нам нужны ежедневные номера запросов.Этот запрос дает нам ежедневные числа сканирования для 20 самых просматриваемых путей.

Запрос:

 SELECT 
path,
COUNT (path) AS num_requests,
DATE (timestamp) AS date
FROM
[insert_your_table_here]
WHERE
path IN (
SELECT
path
FROM (
SELECT COUNT
path (path)
AS) num_requests
FROM
[insert_your_table_here]
WHERE
(google_agent = "googlebot"
OR google_agent = "googlebot-ad")
GROUP BY
path
ORDER BY
num_requests LIMIT DESC 20,

GROUP BY LIMIT DESC 20,
) дата
ЗАКАЗАТЬ ПО
путь ASC,
дата ASC
Получить общее количество URL-адресов с параметрами, которые сканируются каждый день

Почему: Параметры URL часто являются распространенными источниками дублированного контента (хотя, очевидно, это может меняться от сайта к сайту), этот запрос дает вам верхний уровень информации о том, сколько времени Google тратит на них.

Запрос:

 ВЫБРАТЬ 
has_params,
date (timestamp) as date,
count (*) as num_requests
FROM
[insert_your_table_here]
WHERE
google_agent = «googlebot» OR
google_agent = «googlebot-ads»
GROUP BY date,
GROUP BY
Получить общее количество запросов день за днем ​​по всем указанным параметрам

Почему: Следуя вышеизложенному, вы можете затем изучить сканирование определенных параметров, чтобы понять, какие отдельные параметры являются наиболее проблемными, и измерить влияние вашего изменения способа доступа к параметрам.Обычно я использую его вместе со списком найденных параметров в Search Console, поскольку вам необходимо предоставить этому запросу параметры, которые вы хотите исследовать. В приведенном ниже примере я назвал их param_1 и param_2, поэтому, когда вы копируете и вставляете этот запрос, вам нужно будет заменить все экземпляры param_1 и param_2 своими собственными параметрами. Вы также можете добавить больше параметров, если хотите исследовать более двух.

Запрос:

 SELECT 
SUM (param_1) AS param_1_count,
SUM (param_2) AS param_2_count,
DATE (timestamp) AS date
FROM (
SELECT
IF (query CONTAINS 'param_1 =', INTEGER (num_requests), 0) AS
IF (запрос CONTAINS 'param_2 =', INTEGER (num_requests), 0) AS param_2,
timestamp
FROM (
SELECT
query,
COUNT (query) AS num_requests,
timestamp
FROM
[insert_your_table_ google_agent = "googlebot" OR
google_agent = "googlebot-ad")
запрос GROUP BY
, отметка времени
))
GROUP BY
date
ORDER BY
date ASC

Обнаружение ошибок

Получить общее количество каждого кода состояния

Почему: этот запрос дает вам обзор самого верхнего уровня о том, сколько кодов состояния вы видите.

 
SELECT
status_code, count (status_code) as num_requests
FROM
[insert_your_table_here]
WHERE
google_agent = "googlebot" OR
google_agent = "googlebot-ad"
GROUP BY status_code 10008403 GROUP BY status_code
Получить общее количество каждого кода состояния день за днем ​​

Почему: После того, как вы ознакомились с обзором верхнего уровня, вы захотите видеть коды состояния день за днем, чтобы видеть, как они меняются, и позволять вам определять, когда произошли основные изменения.

 ВЫБЕРИТЕ 
status_code,
date (timestamp) as date,
count (status_code) as num_requests
FROM
[insert_your_table_here]
WHERE
google_agent = "googlebot" OR
google_agent = "google_agent" BYR
status_code asc
LIMIT 1000

Получите 100 самых популярных URL-адресов, которые вернули наибольшее количество кода статуса "xxx"

Почему: Как только вы обнаружили проблему с определенным кодом состояния, вы захотите выяснить, какие URL-адреса ее вызывают.В этом запросе замените xxx на исследуемый код состояния. (Цитаты не нужны!)

 SELECT 
path, status_code, has_params, count (path) as num_requests
FROM
[insert_your_table_here]
WHERE
(google_agent = "googlebot" OR
google_agent = "googlebot-ad")
И ГРУППА 90xx40 path_code , status_code, has_params
ORDER BY
num_requests desc
LIMIT
100

Измерение свежести

Сколько раз в среднем сканируется каждая страница в разделе?

Почему: Если посмотреть на среднее количество сканирований каждой страницы в разделе, это может сказать нам, когда Google принимает наши изменения, и помочь нам оценить, насколько свежим, по его мнению, является наш контент.

 SELECT 
page_path_1,
page_path_2,
AVG (crawled_per_day) as average_of_crawl_per_individual_page
FROM (
SELECT
DATE (timestamp) as date,
path,
count (*)
count (*) crawled_per_table_day_1, 9040 count (*) crawled_per_table_day_path_1) ГДЕ
(google_agent = "googlebot"
OR google_agent = "googlebot-ad")
GROUP BY, дата
, путь
,
page_path_1,
page_path_2,
)
GROUP BY
page_path_1,
page_path BY
_IND_path_page_2
ИЛИ
page_path_Product_Design_Power_Page_2

1000

Общие изменения:

Поиск по дате

Вы можете фильтровать большинство запросов, добавляя раздел даты в предложение WHERE.Например, возьмите первый запрос сверху:

 SELECT 
path, count (path) as num_requests
FROM
[insert_your_table_here.log_analysis]
WHERE
timestamp> = TIMESTAMP ('2015-11-08') и
timestamp = GROUP BY path
ORDER BY num_requests desc
LIMIT 1000
.

igorkasyanchuk / log_analyzer: Анализатор логов Rails (посмотрите, насколько быстро рендерится ваши представления)

перейти к содержанию Зарегистрироваться
  • Почему именно GitHub? Особенности →
    • Обзор кода
    • Управление проектами
    • Интеграции
    • Действия
    • Пакеты
    • Безопасность
    • Управление командой
    • Хостинг
    • мобильный
    • Истории клиентов →
    • Безопасность →
  • Команда
  • Предприятие
  • Проводить исследования
.

Смотрите также

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Одноклассники
Вы можете оставить комментарий, или ссылку на Ваш сайт.

Оставить комментарий