img

Разворачиваем Grafana Loki для мониторинга систем

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

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

В настоящее время большинство организаций, вне зависимости от размера, так или иначе использует принципы и инструменты DevOps. Наиболее популярны контейнеры и Kubernetes. И мониторинг такой системы проводится очень эффективно с помощью Prometheus. Но там, где Prometheus отстает – узкая часть. Она не обеспечивает централизованную систему логирования, и именно здесь на сцену выходит Loki.

Что такое Grafana Loki?

Grafana Loki - система агрегации логов с нескольких источников, запущенная компанией Grafana в 2018 году и выпущенная под лицензией Apache 2.0. Разработки системы были вдохновлены Prometheus. Он широко используется с поставщиками облачных технологий и такими инструментами, как Prometheus и Grafana.

Loki аналогичен стеку ELK/EFK, но его проще настроить и использовать, и предлагает лучшие функциональными возможностями. Loki не индексирует содержимое журнала, а индексирует метки времени и набор меток для потока журнала. Это делает индекс меньше, что упрощает операции и в конечном итоге снижает стоимость.


Преимущества Loki

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

  • Благодаря индексации только метаданных, Loki очень экономичен. Выполнение индексов для полнотекстовой обработки требует большей оперативной памяти, которая стоит дорогой. Хранение журналов на объектах хранения, как S3, также уменьшает себестоимость.
  • Он поддерживает использование нескольких источников с использованием tenantID, поэтому данные из каждого ресурса хранятся отдельно.
  • Loki можно запускать локально для небольших операций или легко масштабировать по горизонтали для крупномасштабных операций.
  • Он использует динамический стиль для обеспечения согласованности кворума для операций чтения и записи.
  • По умолчанию он настроен на создание 3 реплик журналов для защиты от сбоев процессов и внезапных выходов с места потери журналов. Да, это повлечет за собой дополнительные расходы, но не такие высокие – целостность данных более критична.
  • Легко интегрируется с такими популярными инструментам, как Kubernetes, Prometheus и визуализация в Grafana.

Архитектура Loki

Grafana Loki

Архитектура Loki состоит из трех компонентов - Promtail, Loki и Grafana.

Promtail - это агент, который должен быть установлен на каждом узле, на котором выполняются приложения или службы. Основной обязанностью Promtail является обнаружение цели, прикрепление меток к потокам подов, и сохранение этих логов в экземпляры Loki. Агент promtail передает журналы из локальной файловой системы на центральный сервер Loki. После этого можно выполнить обратный запрос журналов с помощью Grafana.


Сценарии использования Loki

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

  • Бизнес-аналитика: Это, пожалуй, самый распространённый пример использования, создание действенного понимания на основе данных журнала всегда может быть очень полезным. Loki может помочь в понимании данных журнала и даст возможность создавать новые стратегии для роста бизнеса. Например, с помощью данных журнала организации можно узнать коэффициенты эффективности рекламного канала.
  • Мониторинг: Prometheus часто используется для мониторинга в разных отраслях. Но вы можете многое идентифицировать, отслеживая свои журналы с помощью таких инструментов, как Loki. Она, просматривая журналы и отправляя предупреждения после превышения порога, поможет вам отслеживать частоту ошибок на вашем веб-сайте.
  • Отладка и устранение неполадок: Loki может помочь команде DevOps быстро находить ответ на такие вопросы, как когда произошел сбой приложения, причина его сбоя, его последний статус перед сбоем и т.д.
  • Кибербезопасность: За последние несколько лет число кибератак на порталы электронной коммерции увеличивается в геометрической прогрессии. С помощью Loki можно выполнить проверку журналов, чтобы выявить любые угрозы, проблемы или вредоносные действия, происходящие в системе вашей организации. Если взлом был успешным, Loki мог бы быть полезным для криминалистов, чтобы детально понять, что происходило в системе. Это поможет им отследить хакеров.
  • Соблюдение норм: Для соблюдения отраслевых норм организации должны вести журналы аудита до 7 лет. Местные власти могут проверять журналы в любое время. Loki может безопасно хранить ваши журналы аудита.

Установка Loki и Promtail

Далее покажем, как установить и визуализировать журналы на Grafana. В этой демонстрации мы используем общую конфигурацию, которая будет собирать журналы из /var/log/* log.

Перейдите на страницу релизов Loki на Github, прокрутите вниз до Assets. Здесь вы найдете несколько пакетов Loki и Promtail. Загрузите пакет Loki в соответствии с используемой системой. Не устанавливайте пакеты cli или canary Loki. Я загружаю loki-linux-amd64.zip и promtail-linux-amd64.zip для моей системы Ubuntu.

После завершения загрузки разархивируйте файлы Loki и Promtail и поместите их в единый каталог.

ls

Теперь загрузите общий файл конфигурации Loki и Promtail.

wget ls

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

loki-linux-amd64  loki-local-config.yaml  promtail-linux-amd64  promtail-local-config.yaml
promtail-local-config.yaml

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

./loki-linux-amd64 -config.file=loki-local-config.yaml
./loki-linux-amd64 -config.file=loki-local-config.yaml

Визуализация логов с помощью Loki и Grafana

Grafana обеспечивает встроенную поддержку Loki. Loki уже присутствует в источниках данных Графаны.

Шаг 1. Перейдите к разделу Конфигурации Grafana и нажмите кнопку Data Sources (Источники данных).

Источники данных

Шаг 2. В окне источников данных можно выполнить поиск источника по имени или типу.

Поиск

Шаг 3. Введите в строку поиска слово Loki. Этот источник данных уже присутствует в Grafana. Нажмите кнопку Select (Выбрать).

Loki

Шаг 4. Введите имя, которое вы хотите дать источнику данных, и поместите http://localhost:3100 (измените его на IP-адрес сервера, если Loki работает на сервере, отличном от Grafana) в строку URL. Порт прописываем потому, что мы запустили Loki на порту 3100.

Name

Нажмите кнопку Save and Test внизу. Если настройка Loki выполнена правильно, появится следующее сообщение в зеленом поле.

Test

Шаг 5.Нажмите на вкладку Explore (Обзор) на левой части панели. Выберите Loki в раскрывающемся списке выбора источника данных. Теперь неплохо было бы визуализировать активность журналов Grafana. Для этого необходимо добавить запрос {filename = "/var/log/grafana/grafana.log "} в строку обозревателя журналов. Зеленые полосы ниже представляют собой записи событий в файле журнала.

Explore

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

Log

Заключение

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

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Еще по теме:
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии проекта. В статье рассказываем, как ее использовать.
img
Мы рассмотрим несколько простых способов, с помощью которых вы можете управлять и отслеживать логи для своих контейнеров.
img
Узнайте, как использовать Git Hooks для автоматизации задач в рабочем процессе: от проверки коммитов до автоматического тестирования, и как настроить хуки для совместной работы в команде.
img
Откройте для себя, как канареечное развертывание может минимизировать риски при обновлении ПО. Узнайте, как постепенно внедрять новые функции и обеспечивать стабильность продукта с помощью этого метода.
img
Откройте для себя GitOps — революционный подход к управлению инфраструктурой через Git. Узнайте, как этот метод упрощает развертывание приложений и повышает надежность с помощью автоматизации и масштабируемости.