Поиск по сайту:

Что такое инструмент управления журналами и стоит ли его использовать?


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

Почему я должен заботиться о файлах журналов?

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

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

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

Unix ведет журналы всего, что происходит с системой. Каждая введенная вами команда записывается в ~/.bash_history, каждая попытка входа в систему (включая неудачные, возможно, злонамеренные) записывается в /var/log/auth.log и большинство других системных событий будут генерировать свои собственные файлы журналов, обычно хранящиеся в /var/log/.

Проблема: слишком много серверов, слишком много журналов

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

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

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

Как работают инструменты управления журналами?

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

Процесс начинается с приема — файлы журналов из клиентской системы загружаются в агрегатор с помощью программы, называемой отправителем журналов. Отправители журналов, такие как библиотека rsyslog, – это облегченные библиотеки, которые размещаются в клиентских системах и указывают на совокупный сервер.

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

Какой инструмент следует использовать?

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

  • Beats – это легкие доставщики журналов, предназначенные для установки на клиентских компьютерах и отправки данных в другие приложения в стеке.
  • Logstash – это система сбора данных, которая может получать данные от Beats или других программ, таких как rsyslog , и подготавливать их к отправке в Elasticsearch (или другую аналитическую систему).
  • Elasticsearch – это механизм в центре стека Elastic (в честь которого назван стек). Он функционирует как база данных для хранения ваших журналов (и других объектов) и предоставляет RESTful API для использования в других приложениях.
  • Kibana – это интерфейс для Elastic Stack, предоставляющий конечному пользователю все средства визуализации, диаграммы, графики и параметры поиска.

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

Fluentd и Filebeat – это альтернативные механизмы загрузки, которые заменят Logstash в стеке. Они могут передавать данные в базу данных временных рядов, такую как InfluxDB, которая имеет встроенный плагин для Grafana, платформы аналитики и визуализации.

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

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

SolarWinds Papertrail — это полностью управляемая служба, которая отображает журналы в режиме реального времени, что может быть очень полезно при отладке проблем с вашими серверами. Их планы довольно дешевы, сегментированы по ГБ и начинаются всего с 7 долларов.

Splunk отслеживает практически все, что окружает ваши приложения, включая журналы. Если вам нужен комплексный пакет аналитики, вам может подойти Splunk.

LogDNA – это простой инструмент для анализа журналов с очень дешевыми тарифными планами. Если вы ищете простую альтернативу настройке стека ELK, LogDNA можно быстро настроить.