img

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

21 ноября
20:00
Бесплатный вебинар
Введение в Docker
Ведущий — Филипп Игнатенко.
Руководитель центра разработки
Записаться
img
img

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

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

В настоящее время большинство организаций, вне зависимости от размера, так или иначе использует принципы и инструменты 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%.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
DevOps
Скидка 25%
DevOps-инженер с нуля
Научитесь использовать инструменты и методы DevOps для автоматизации тестирования, сборки и развертывания кода, управления инфраструктурой и ускорения процесса доставки продуктов в продакшн. Станьте желанным специалистом в IT-индустрии и претендуйте на работу с высокой заработной платой.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Git Flow - это специальная система ветвления для Git. Она помогает команде лучше контролировать и добавлять различные версии про
img
Docker — популярная платформа виртуализации на уровне ОС. Она поставляет приложения в пакетах (контейнерах), которые, представля
img
Хуки в Git — это bash-скрипты, которые запускаются до или после команд Git, например, коммитов и пушей. Они позволяют автоматизи
img
  Nomad и Kubernetes – это две самые популярные платформы оркестровки, предназначенные для оркестровки динамических рабочих нагр
img
  Давайте узнаем о новом Ops-течении – GitOps! DevOps поспособствовал цифровизации многих компаний. Речь идет о командах разрабо
img
  Канареечное (canary) развёртывание – это метод разработки и развертывания программного обеспечения, который позволяет выпускат
21 ноября
20:00
Бесплатный вебинар
Введение в Docker