Веб-панель мониторинга Console Light#

Angie предоставляет широкий спектр возможностей мониторинга своей работы; помимо метрик в API и модуля Prometheus, можно использовать визуальную консоль, устанавливаемую в дополнение к серверу.

Console Light#

Console Light — это облегченный интерфейс мониторинга активности в реальном времени, который отображает ключевые показатели нагрузки и производительности сервера. Консоль основана на возможностях API-интерфейса Angie; данные мониторинга активности генерируются в реальном времени. Кроме того, консоль позволяет динамически изменять конфигурацию Angie там, где эту возможность предоставляет сам API.

Пример развернутой и настроенной консоли: https://console.angie.software/

Установка и настройка#

Console Light публикуется в виде пакетов angie-console-light (Angie) и angie-pro-console-light (Angie PRO) в наших репозиториях и устанавливается так же, как и любой другой пакет; кроме того, можно скачать исходный код с нашего веб-сайта или GitHub. Текущая версия — 1.4.0.

После установки настройте консоль, добавив такой фрагмент location внутри блока server в файле конфигурации (обратите внимание на комментарии):

location /console/ {

    # Только локальный доступ
    allow 127.0.0.1;
    deny all;

    auto_redirect on;

    alias /usr/share/angie-console-light/html/;
    # Только во FreeBSD:
    # alias /usr/local/www/angie-console-light/html/;
    index index.html;

    location /console/api/ {
        api /status/;
    }

    # Чтобы после аутентификации работали функции редактирования (только PRO)
    location /console/api/config/ {

        auth_basic           "Защищенный сайт";
        auth_basic_user_file conf/htpasswd;

        api /config/;
    }
}

Не забудьте применить измененную конфигурацию:

$ sudo angie -t && sudo service angie reload

После этого консоль будет доступна на сервере, заданном блоком server, по указанному для location пути; выше путь задан как /console/.

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

location /console/server_zones/ {
    auth_basic           "Защищенный сайт";
    auth_basic_user_file conf/htpasswd;
}

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

location /console/api/resolvers/ {
    deny all;
}

Интерфейс#

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

Подсказка

В разделах ниже описания элементов интерфейса даны в порядке слева направо.

Вкладка Angie#

Console Light - главный экран


Это основная вкладка, где в сводном виде отображаются основные показатели мониторинга Angie, сведенные на основе данных из нескольких разделов API.

Виджет About#

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

Кроме того, если включена директива api_config_files, ссылка Configs открывает список файлов конфигурации, загруженных на сервере. Затем каждый файл можно просмотреть в компактном виде с подсветкой синтаксиса.

Виджет Connections#

Здесь представлена основная статистика серверных соединений, формируемая на основе раздела API /status/connections/:

Current

Текущее количество соединений

Accepted/s

Число принимаемых за секунду соединений

Active

Число активных соединений

Idle

Число соединений в состоянии ожидания

Dropped

Количество сброшенных соединений

Также доступно:

Accepted

Общее число соединений, принятых с последней перезагрузки сервера

Виджет HTTP Zones#

Внимание

Требует задать директиву status_zone в контексте server или location.

Здесь представлена статистика зон разделяемой памяти контекста http, формируемая на основе раздела API /status/http/server_zones/:

Total

Общее количество зон

Problems

Количество зон с какими-либо проблемами

Traffic

Общий объем входящего и исходящего трафика

Виджет HTTP Upstreams#

Внимание

Требует задать директиву upstream в контексте http.

Здесь представлена статистика апстримов контекста http, формируемая на основе раздела API /status/http/upstreams/:

Total

Общее количество апстримов

Problems

Количество апстримов с какими-либо проблемами

Servers

Статистика серверов с разделением по состоянию

Виджет TCP/UDP Zones#

Внимание

Требует задать следующие директивы:

Пример:

stream {

    # ...
    limit_conn_zone $connection zone=limit-conn-stream:10m;

    server {

        # ...
        limit_conn limit-conn-stream 1;
        status_zone foo;
    }
}

Здесь представлена статистика зон разделяемой памяти контекста stream, формируемая на основе раздела API /status/stream/server_zones/:

Conn total

Общее количество клиентских соединений

Conn current

Текущее количество клиентских соединений

Conn/s

Количество обрабатываемых в секунду соединений

Виджет TCP/UDP Upstreams#

Внимание

Требует задать директиву upstream в контексте stream.

Здесь представлена статистика апстримов контекста stream, формируемая на основе раздела API /status/stream/upstreams/:

Total

Общее количество апстримов

Problems

Количество апстримов с какими-либо проблемами

Servers

Статистика серверов с разделением по состоянию

Вкладка HTTP Zones#

Внимание

Требует задать директиву status_zone в контексте server или location.

Раздел Server Zones#

Console Light - раздел "Server Zones" на вкладке "HTTP Zones"


Здесь в сводном виде отображается статистика мониторинга зон разделяемой памяти для контекста server в http, формируемая на основе раздела API /status/http/server_zones/. Для каждой зоны представлены следующие данные:

Zone

Имя зоны

Подсказка

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

Requests

Общее количество запросов, а также число запросов в секунду

Responses

Количество ответов с разбиением по кодам статуса, а также их общее количество

Traffic

Скорость исходящего и входящего трафика, а также общие объемы исходящего и входящего трафика

SSL

Суммарные показатели количества: - успешных SSL-рукопожатий; - повторных использований SSL-сессий; - SSL-рукопожатий с истекшим таймаутом; - неуспешных SSL-рукопожатий.

Раздел Location Zones#

Console Light - раздел "Location Zones" на вкладке "HTTP Zones"


Здесь в сводном виде отображается статистика мониторинга зон разделяемой памяти для контекста location в http, формируемая на основе раздела API /status/http/location_zones/. Для каждой зоны представлены следующие данные:

Zone

Имя зоны

Подсказка

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

Requests

Текущее и общее количество запросов, а также число запросов в секунду

Responses

Количество ответов с разбиением по кодам статуса, их общее количество, а также число ответов в секунду

Traffic

Скорость исходящего и входящего трафика, а также общие объемы исходящего и входящего трафика

Раздел Limit Conn#

Console Light - раздел "Limit Conn" на вкладке "HTTP Zones"


Здесь приведена статистика зон limit_conn в контексте http, формируемая на основе раздела API /status/http/limit_conns/. Для каждой зоны представлены следующие данные:

Zone

Имя зоны

Подсказка

Щелкните значок рядом с пунктом Zone, чтобы открыть или закрыть график со следующими показателями.

Passed

Общее количество проксированных соединений

Rejected

Общее количество сброшенных соединений

Exhausted

Общее количество соединений, сброшенных из-за переполнения хранилища зоны

Skipped

Общее количество соединений, переданных с нулевым или превосходящим 255 байт ключом

Раздел Limit Req#

Console Light - раздел "Limit Req" на вкладке "HTTP Zones"


Здесь приведена статистика зон limit_reqs в контексте http, формируемая на основе раздела API /status/http/limit_reqs/. Для каждой зоны представлены следующие данные:

Zone

Имя зоны

Подсказка

Щелкните значок рядом с пунктом Zone, чтобы открыть или закрыть график со следующими показателями.

Passed

Общее количество проксированных соединений

Delayed

Общее количество задержанных соединений

Rejected

Общее количество сброшенных соединений

Exhausted

Общее количество соединений, сброшенных из-за переполнения хранилища зоны

Skipped

Общее количество соединений, переданных с нулевым или превосходящим 255 байт ключом

Вкладка HTTP Upstreams#

Console Light - вкладка "HTTP Upstreams"


Внимание

Требует задать директиву upstream в контексте http.

На этой вкладке в сводном виде отображается статистика мониторинга апстримов контекста http, формируемая на основе раздела API /status/http/upstreams/.

  • Кнопка Show upstreams list переключает краткий список апстримов с указанием числа проблемных апстримов и серверов.

  • Переключатель Failed only переключает режим вывода статистики по проблемным апстримам.

  • Кнопка редактирования (только в Angie PRO) переключает интерфейс редактирования апстрима.

  • Раскрывающийся список с правой стороны таблицы каждого апстрима позволяет отфильтровать серверы в определенном состоянии (Up, Failed, Checking, Down).

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

Server

Имена, время простоя и веса серверов апстрима

Подсказка

Щелкните стрелку рядом с пунктом Server, чтобы отсортировать серверы по их состоянию или порядку в конфигурации.

Requests

Общее количество и скорость обработки запросов

Responses

Количество ответов с разбиением по кодам статуса

Conns

Количество активных соединений и их максимальный предел, если он задан

Traffic

Скорость исходящего и входящего трафика, а также общие объемы исходящего и входящего трафика

Server checks

Количество неуспешных обращений к серверу и число раз, когда сервер считался недоступным (объект health в API)

Health monitors (только в Angie PRO)

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

Редактирование апстримов#

В Angie PRO рядом с каждым апстримом есть кнопка редактирования; при нажатии она выводит еще две кнопки:

Edit selected

Редактирование выбранных серверов в составе апстрима. Позволяет одновременно задать для всех следующие параметры: weight (вес), max_conns (максимальный предел соединений), max_fails (максимальный предел сбоев, переводящий сервер в недоступные), fail_timeout (временное окно подсчета сбоев для max_fails), state (включен или отключен).

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

Console Light - редактирование серверов на вкладке "HTTP Upstreams"


Add server

Добавление сервера в апстрим. Позволяет задать следующие параметры: address (адрес), backup (запасной сервер или нет), weight (вес), max_conns (максимальный предел соединений), max_fails (максимальный предел сбоев, переводящий сервер в недоступные), fail_timeout (временное окно подсчета сбоев для max_fails), state (включен или отключен).

Console Light - добавление сервера на вкладке "HTTP Upstreams"


Вкладка TCP/UDP Zones#

Внимание

Требует задать следующие директивы:

Пример:

stream {

    # ...
    limit_conn_zone $connection zone=limit-conn-stream:10m;

    server {

        # ...
        limit_conn limit-conn-stream 1;
        status_zone foo;
    }
}

Раздел TCP/UDP Zones#

Console Light - вкладка "TCP/UDP Zones"


Здесь в сводном виде отображается статистика мониторинга зон разделяемой памяти контекста server в stream, формируемая на основе раздела API /status/stream/server_zones/. Для каждой зоны представлены следующие данные:

Zone

Имя зоны

Connections

Текущее и общее количество соединений, а также число соединений в секунду

Sessions

Количество сессий с разбиением по кодам статуса, а также их общее число

Traffic

Скорость исходящего и входящего трафика, а также общие объемы исходящего и входящего трафика

SSL

Суммарные показатели количества: - успешных SSL-рукопожатий; - неуспешных SSL-рукопожатий; - повторных использований SSL-сессий; - SSL-рукопожатий с истекшим таймаутом.

Раздел Limit Conn#

Console Light - раздел "Limit Conn" на вкладке "TCP/UDP Zones"


Здесь приведена статистика зон limit_conn в контексте stream, формируемая на основе раздела API /status/stream/limit_conns/. Для каждой зоны представлены следующие данные:

Zone

Имя зоны

Подсказка

Щелкните значок рядом с пунктом Zone, чтобы открыть или закрыть график со следующими показателями.

Passed

Общее количество проксированных соединений

Rejected

Общее количество сброшенных соединений

Exhausted

Общее количество соединений, сброшенных из-за переполнения хранилища зоны

Skipped

Общее количество соединений, переданных с нулевым или превосходящим 255 байт ключом

Вкладка TCP/UDP Upstreams#

Console Light - вкладка "TCP/UDP Upstreams"


Внимание

Требует задать директиву upstream в контексте stream.

На этой вкладке в сводном виде отображается статистика мониторинга апстримов контекста stream, формируемая на основе раздела API /status/stream/upstreams/.

  • Кнопка Show upstreams list переключает отображение краткого списка апстримов с указанием числа проблемных апстримов и серверов.

  • Переключатель Failed only включает и отключает режим вывода статистики по проблемным апстримам.

  • Кнопка редактирования (только в Angie PRO) открывает виджет редактирования апстрима.

  • Раскрывающийся список с правой стороны таблицы каждого апстрима позволяет отфильтровать серверы в определенном состоянии (Up, Failed, Checking, Down).

Для каждого апстрима представлены следующие данные:

Server

Имена, время простоя и веса серверов апстрима

Подсказка

Щелкните стрелку рядом с пунктом Server, чтобы отсортировать серверы по их состоянию или порядку в конфигурации.

Requests

Общее количество и скорость обработки запросов

Responses

Количество ответов с разбиением по кодам статуса

Conns

Количество активных соединений и их максимальный предел, если он задан

Traffic

Скорость исходящего и входящего трафика, а также общие объемы исходящего и входящего трафика

Server checks

Количество неуспешных обращений к серверу и число раз, когда сервер считался недоступным (объект health в API)

Редактирование апстримов#

В Angie PRO рядом с каждым апстримом есть кнопка редактирования; при нажатии она выводит еще две кнопки:

Edit selected

Редактирование выбранных серверов в составе апстрима. Позволяет одновременно задать для всех следующие параметры: weight (вес), max_conns (максимальный предел соединений), max_fails (максимальный предел сбоев, переводящий сервер в недоступные), fail_timeout (временное окно подсчета сбоев для max_fails), state (включен или отключен).

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

Console Light - редактирование серверов на вкладке "TCP/UDP Upstreams"


Add server

Добавление сервера в апстрим. Позволяет задать следующие параметры: address (адрес), backup (запасной сервер или нет), weight (вес), max_conns (максимальный предел соединений), max_fails (максимальный предел сбоев, переводящий сервер в недоступные), fail_timeout (временное окно подсчета сбоев для max_fails), state (включен или отключен).

Console Light - добавление сервера на вкладке "TCP/UDP Upstreams"


Вкладка Caches#

Console Light - вкладка "Caches"


Внимание

Требует задать директиву proxy_cache_path в контексте http.

На этой вкладке в сводном виде отображается статистика мониторинга зон proxy_cache контекста http, формируемая на основе раздела API /status/http/caches/. Для каждой зоны представлены следующие данные:

Zone

Имя зоны

Подсказка

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

State

Состояние кэша: холодный (метаданные загружаются в память) или горячий (метаданные загружены)

Memory usage

Коэффициент использования памяти

Max size

Максимальный объем памяти

Used

Использованный объем памяти

Disk usage

Коэффициент использования дисковой памяти

Traffic

Переданный из кэша, записанный в кэш и возвращенный в обход кэша трафик

Hit ratio

Коэффициент попадания в кэш (отношение переданного из кэша трафика к общему объему) за временное окно, заданное в настройках

Если для зоны включен шардинг, то она обозначена как раскрывающийся список, в котором перечислены отдельные шарды:

Path

Путь шарда на диске

State

Состояние шарда: холодный (метаданные загружаются в память) или горячий (метаданные загружены)

Max size

Максимальный объем памяти

Used

Использованный объем памяти

Disk usage

Коэффициент использования дисковой памяти

Вкладка Shared Zones#

Console Light - вкладка "Shared Zones"


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

Zone

Имя зоны

Подсказка

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

Total memory pages

Общее количество страниц памяти

Used memory pages

Количество используемых страниц памяти

Memory usage

Коэффициент использования памяти для зоны

Вкладка Resolvers#

Console Light - вкладка "Resolvers"


Внимание

Требует задать директиву resolver в контексте http.

На этой вкладке в сводном виде отображается статистика запросов в зонах разделяемой памяти DNS, формируемая на основе раздела API /status/resolvers/. Для каждой зоны представлены следующие данные:

Zone

Имя зоны

Подсказка

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

Requests

Количество запросов типа A и AAAA, SRV и PTR

Responses

Количество ответов с разделением по соответствующим кодам (Format error, Server failure, Name Error, Not Implemented, Refused и прочих)

Виджет Настройки#

Console Light - виджет "Настройки"


Позволяет настроить частоту обновления данных в консоли, пороговое соотношение статусов 4xx, по достижении которого в соответствующих разделах, посвященных ответам сервера, появляются "желтые" предупреждения, а также временное окно для вычисления соотношения успешных попаданий в кэш (Hit ratio) и порог учета ошибок для резолвера, по достижении которого он станет "красным".

Панель управления консолью#

Console Light - кнопки управления консолью на вкладке "Angie"


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