Многогранный мониторинг Angie, форка веб-сервера nginx#

27.09.2023

Живая демонстрация лучше любых картинок: https://console.angie.software/

Живая демонстрация лучше любых картинок: https://console.angie.software/

Здравствуйте, уважаемый читатель. Меня зовут Дмитрий. Я инженер-системотехник в компании Web Server, российской компании, которая разрабатывает веб-сервер Angie. Опираясь на свой опыт технической поддержки — сначала в NGINX, а затем в Web Server LLC — я часто сталкиваюсь с одним и тем же популярным вопросом: «Как организовать мониторинг веб-сервера?» Давайте разберёмся.

  1. Мониторинг. «Зачем? Логов достаточно!»

  2. Веб-сервер Angie. «Зачем? Когда есть ***.»** Как установить. «Есть ли сборка для **

  3. API. «Я же сказал, есть логи! Просто дайте включить их на проде.» Что он предоставляет. «Чем это отличается от логов?» Как настроить. «Разве это не работает автоматически?» Получение конфигурации сервера. «Но есть же angie -T.»

  4. Console Light – Веб-интерфейс. «Ещё одна система мониторинга?!1?1!!!» Что он показывает. «Что значит "в реальном времени"?» Как установить. «Точно всего пара строк конфигурации?»

  5. Prometheus API. «Я уже его использую! Ну да, мы парсим логи...» Как настроить Angie для интеграции. «И без njs?» Сравнение с Console Light. «Данные точно совпадают?»

  6. Заключение. «Так вот что значит "многогранный"!»

---

1. Мониторинг. «Зачем? Логов достаточно!»#

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

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

  • Системные метрики о процессе веб-сервера (например, использование CPU и RAM, время работы).

  • Данные логов, предоставляющие ретроспективный взгляд на обработанные запросы.

  • Экспорт метрик с использованием сторонних расширений, хотя это менее распространено.

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

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

Сторонние решения для экспорта метрик могут восполнить этот пробел, но имеют свои недостатки:

  • Требуется время на настройку и сборки, специфичные для ОС.

  • Возможны проблемы совместимости между веб-сервером и сторонними модулями после обновлений.

  • Озабоченность служб информационной безопасности, которым редко удаётся спокойно спать.

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

---

2. Веб-сервер Angie. «Зачем? Когда есть *#

Angie — это форк nginx, который предлагает дополнительные возможности при сохранении лёгкости и эффективности nginx.

Как установить: Установка Angie проста. Доступны предустановленные пакеты для популярных операционных систем, а также поддерживается компиляция из исходного кода. Подробные инструкции по установке доступны в официальной документации.

Доступность сборок: Angie поддерживает широкий спектр платформ с бинарными файлами для популярных дистрибутивов Linux и других сред. Если вы не уверены в совместимости с вашей ОС, обратитесь к разделу загрузок.

---

3. API. «Я же сказал, есть логи! Просто дайте включить их на проде.»#

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

Чем это отличается от логов? Логи фиксируют исторические данные — то, что уже произошло. В отличие от этого, API предоставляет живые данные о текущем состоянии, например длину очередей, задержки обработки или статус серверов upstream.

Как настроить: Настройка API проста и включает активацию соответствующих модулей в конфигурационном файле Angie. Пошаговые инструкции доступны в официальном руководстве.

Получение конфигурации веб-сервера: Для пользователей, знакомых с angie -T, API расширяет его функциональность, предоставляя динамический доступ к конфигурации и метрикам выполнения по запросу.

---

4. Console Light – Веб-интерфейс. «Ещё одна система мониторинга?!1?1!!!»#

Что он показывает: Console Light предоставляет графический интерфейс для метрик Angie в реальном времени, предлагая чёткое визуальное представление производительности сервера.

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

Как установить: Установка Console Light требует минимальных усилий — всего несколько строк конфигурации. Инструкции предоставлены в руководстве по установке, что гарантирует быструю настройку.

---

5. Prometheus API. «Я уже его использую! Ну да, мы парсим логи...»#

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

И без njs? В отличие от некоторых настроек, требующих модуля njs для интеграции Prometheus в nginx, Angie предоставляет нативную поддержку экспорта метрик, исключая дополнительные зависимости.

Сравнение с Console Light: Prometheus и Console Light предоставляют мощные возможности мониторинга, но ориентированы на разные задачи. Prometheus идеален для агрегации метрик в масштабных системах, тогда как Console Light обеспечивает точный просмотр производительности Angie в реальном времени. Значения, предоставляемые обеими системами, совпадают, гарантируя их достоверность.

---

6. Заключение. «Так вот что значит "многогранный"!»#

Многогранные возможности мониторинга Angie решают задачи современной инфраструктуры, сочетая системные метрики, API в реальном времени и визуальные интерфейсы.