Мониторинг
In this article:
Мониторинг#
Общая информация#
Облачный сервис мониторинга Prometheus позволяет легко интегрировать сервисы PaaS, развёрнутые в К2 Облаке, в единую систему мониторинга. Кроме того, вы можете подключить к системе мониторинга свои собственные сервисы.
Prometheus, популярная система мониторинга с открытым исходным кодом, взаимодействует с отслеживаемыми системами и получает данные об их статусе, здоровье и быстродействии. Сервер Prometheus периодически опрашивает агентов мониторинга (экспортёров в терминологии Prometheus) и записывает полученные метрики в свою базу данных временных рядов (TSDB).
Prometheus имеет простой веб-интерфейс и поддерживает гибкий язык запросов PromQL. Веб-интерфейс позволяет просматривать все подключённые к мониторингу системы, выявлять наличие сбоев и анализировать различные метрики за интересующий отрезок времени. Это позволяет точно и своевременно контролировать множество аспектов работы систем и поддерживать бесперебойную работу сервисов.
Настройка уведомлений об ошибках осуществляется с помощью компонента Alertmanager, входящего в стек Prometheus. Администратор системы задаёт правила, при наступлении каких событий должны отправляться уведомления об ошибках, например, при выходе метрики за предопределённые пределы в течение заданного промежутка времени. Чтобы вы всегда были в курсе о изменений в работе системы, сервис поддерживает отправку уведомлений в Telegram, на электронную почту, а также в сторонние сервисы посредством механизма обратных вызовов (webhook).
В состав облачного сервиса также входит мощный инструмент визуализации Grafana. С его помощью вы сможете создавать удобные информационные панели для отображения данных о работе ваших систем. Grafana позволяет выводить на один экран графики различных метрик, отражающих их изменения во времени, а также поддерживает выбор интервалов времени и фильтрацию по системам или хостам. Это упрощает нахождение причин возникших проблем.
При развёртывании сервиса мониторинга для установленных сервисов PaaS соответствующие правила уведомлений и настроенные информационные панели в Grafana создаются автоматически.
Основные понятия#
Сбор данных — Механизм сбора данных позволяет подключить к мониторингу произвольные системы помимо сервисов PaaS. Для интеграции в системе мониторингу на отслеживаемой системе должен быть установлен экспортёр. Адрес экспортёра и его порт необходимо указать в задании на сбор данных (scrape job).
Источник — Сервис или система, за которой осуществляется мониторинг.
Экспортёры — Агенты мониторинга, которые взаимодействуют с отслеживаемыми системами и предоставляют данные о их статусе, здоровье и быстродействии.
Канал уведомлений (получатель) — Канал, в который направляются уведомления. В К2 Облаке уведомления могут отправляться в Telegram, на электронную почту и в другие сервисы. В последнем случае используется механизм обратного вызова (webhook).
Канал уведомлений по умолчанию — Если канал по умолчанию задан, то в него будут направляться все предупреждения, которые не соответствуют ни одному критерию отбора. Если канал по умолчанию не задан, то такие предупреждения не будут отсылаться.
Маршрут — Маршрут определяет канал уведомлений, в который направляются уведомления при выполнении заданных критериев выбора маршрута.
Метки — Метки позволяют группировать и фильтровать метрики, полученные от различных источников. С их помощью удобно, например, настраивать критерии выбора маршрута. Подробнее об использовании меток см. в соответствующем разделе.
Метрики — Количественные показатели, которые Prometheus использует для контроля за состоянием отслеживаемых систем. Подробнее см. в официальной документации.
Перед началом работы#
Чтобы начать работу с сервисом мониторинга, выполните следующие действия:
Создайте проект, если у вас его нет.
В разделе IAM создайте пользователя, добавьте его в созданный проект и назначьте ему политику PaaSServicePolicy для предоставления необходимых привилегий для работы с сервисами PaaS.
Примечание
Если вы хотите, чтобы пользователь имел доступ к другим сервисам облака, то включите его в группу CloudAdministrators. В этом случае назначать ему политику PaaSServicePolicy не нужно.
Убедитесь в наличии всех необходимых ресурсов в проекте — подсетей, SSH-ключей, групп безопасности. Если этих ресурсов нет, создайте их.
Ознакомьтесь с рекомендациями по работе с сервисом мониторинга в облаке.
Управление сервисом мониторинга#
Создать сервис мониторинга#
Сервис мониторинга можно запустить в подразделе Витрина сервисов или Установленные сервисы раздела PaaS. В первом случае необходимо перейти в блок Мониторинг, во втором — на одноимённую вкладку и нажать Создать. В результате откроется мастер создания сервиса.
Задайте сетевое окружение, где будет запущен сервис мониторинга:
- Конфигурацию кластера, где будет развёрнут сервис.
Для сервиса Prometheus доступна только конфигурация с одним узлом.
VPC, в котором будет развёрнут сервис.
Группы безопасности для регулирования трафика на интерфейсах экземпляров, где будет запущен сервис Prometheus.
Подсеть, к которой будет подключён экземпляр с развёрнутым на нём сервисом, либо сетевой интерфейс, с помощью которого этот экземпляр будет подключён к подсети.
Нажмите Далее для перехода на следующий шаг.
Укажите конфигурацию экземпляра, на котором будет запущен сервис мониторинга. Выберите тип экземпляра и характеристики его дисков: тип, размер и IOPS (если это доступно для данного типа).
Кроме того, вы можете указать SSH-ключ. В этом случае после автоматической настройки сервиса экземпляры виртуальных машин будут доступны по SSH.
Внимание
Мы предоставляем возможность подключения к экземплярам виртуальных машин по SSH-ключу, пока новый сервис Prometheus находится на этапе бета-тестирования. Данная возможность в будущем может быть отключена.
Нажмите Далее для перехода на следующий шаг.
Задайте имя сервиса. Имя должно состоять из латинских букв, цифр и символов
-
и.
, начинаться с буквы и удовлетворять требованиям к доменным именам.Нажмите Создать.
Примечание
Процесс запуска сервиса обычно занимает от 5 до 15 минут.
После запуска сервиса вы можете добавить каналы уведомлений и настроить маршруты. Если вы хотите осуществлять мониторинг других систем, помимо сервисов PaaS, то надо также настроить сбор данных.
Настроить сбор данных#
С помощью облачного сервиса Prometheus можно осуществлять мониторинг как сервисов PaaS, так и других систем, развёрнутых в К2 Облаке. Чтобы подключить к мониторингу другие системы, на них необходимо предварительно установить агенты мониторинга Prometheus (экспортёр).
Создать задание на сбор данных#
Для сбора данных из конкретной системы необходимо создать задание на сбор данных.
Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Мониторинг.
В таблице ресурсов найдите сервис мониторинга, для которого хотите настроить сбор данных, и нажмите на его имя для перехода на страницу сервиса.
Откройте вкладку Сбор данных и нажмите Создать задание.
В открывшемся окне задайте имя для задания на сбор данных и укажите источник (отслеживаемую систему). Для идентификации источника можно указать IP-адрес, FQDN или имя хоста, например, 192.168.1.100:9100.
Если вы не хотите назначать собственные метки, то пропустите следующий шаг. При необходимости вы можете добавить метки позже, отредактировав задание на сбор данных.
Для назначения меток нажмите Добавить метки. Задайте ключ и значение метки. Если необходимо добавить ещё метку, то нажмите Добавить метку.
Нажмите Создать для добавления задания на сбор данных.
Изменить задание#
Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Мониторинг.
В таблице ресурсов найдите сервис мониторинга, для которого вы хотите изменить задание на сбор данных, и нажмите на имя сервиса для перехода на его страницу.
Откройте вкладку Сбор данных и нажмите Изменить.
В открывшемся окне отредактируйте поле Источники: вы можете добавить новые источники и/или удалить имеющиеся.
Если необходимо изменить метки, то нажмите Редактировать метки. При переходе на следующий шаг вы можете отредактировать ключи и значения меток, добавить новые метки и/или удалить существующие.
После внесения всех необходимых изменений нажмите Сохранить.
Удалить задание#
Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Мониторинг.
В таблице ресурсов найдите сервис мониторинга, в котором вы хотите удалить задание на сбор данных, и нажмите на имя сервиса для перехода на его страницу.
Откройте вкладку Сбор данных и выберите задание в таблице ресурсов. Одновременно можно выбрать несколько заданий.
Нажмите Удалить и подтвердите действие.
Настроить каналы уведомлений#
Вы можете настроить отправку уведомлений в Telegram и на электронную почту, а также в сторонние сервисы посредством механизма обратных вызовов (webhook).
Добавить канал уведомлений#
Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Мониторинг.
В таблице ресурсов найдите сервис мониторинга, для которого вы хотите добавить канал уведомлений, и нажмите на имя сервиса для перехода на его страницу.
Откройте вкладку Каналы уведомлений и нажмите Добавить.
В диалоговом окне задайте имя канала и выберите тип канала. Уведомления можно отправлять в Telegram (тип telegram), на электронную почту (email) и в другие сервисы с помощью механизма обратного вызова (webhook). Если хотите сделать канал каналом по умолчанию, то включите опцию Канал уведомлений по умолчанию.
Примечание
Если у вас уже есть канал по умолчанию и вы хотите назначить вместо него другой, необходимо предварительно отключить эту опцию у текущего канала по умолчанию.
В зависимости от выбранного типа канала необходимо задать также следующие параметры:
Уведомлять о решённых предупреждениях — При восстановлении нормальных значений метрики будет отправлено соответствующее уведомление в Telegram-канал.
Токен Telegram-бота.
ID чата для отправки сообщений.
Кому — Адрес электронной почты получателя.
От кого — Адрес электронной почты отправителя.
Smarthost — SMTP-сервер, используемый для отправки электронной почты.
Hello — Имя хоста, используемое для идентификации на SMTP-сервере.
Имя пользователя для аутентификации.
TSL-соединение для SMTP — При включённой аутентификации использование TSL-соединения обязательно.
Пароль для аутентификации.
Адрес — URL точки приёма запросов (endpoint).
Максимальное количество предупреждений — Ограничение на число предупреждений, которые могут быть включены в одно сообщение для данного канала. Если количество предупреждений превышает это число, то оставшиеся отбрасываются.
Нажмите Добавить для создания канала.
Изменить параметры канала#
Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Мониторинг.
В таблице ресурсов найдите сервис мониторинга, для которого вы хотите изменить параметры канала уведомлений, и нажмите на имя сервиса для перехода на его страницу.
Откройте вкладку Каналы уведомлений, выберите канал в списке ресурсов и нажмите Изменить.
В открывшемся диалоговом окне вы можете включить или отключить опцию Канал уведомлений по умолчанию. Кроме того, в зависимости от типа канала вы можете изменить следующие параметры:
Уведомлять о решённых предупреждениях — При восстановлении нормальных значений метрики будет отправлено соответствующее уведомление в Telegram-канал.
Токен Telegram-бота.
ID чата для отправки сообщений.
Кому — Адрес электронной почты получателя.
От кого — Адрес электронной почты отправителя.
Smarthost — SMTP-сервер, используемый для отправки электронной почты.
Hello — Имя хоста, используемое для идентификации на SMTP-сервере.
Имя пользователя для аутентификации.
TSL-соединение для SMTP — При включённой аутентификации использование TSL-соединения обязательно.
Пароль для аутентификации.
Адрес — URL точки приёма запросов (endpoint).
Максимальное количество предупреждений — Ограничение на число предупреждений, которые могут быть включены в одно сообщение для данного канала. Если количество предупреждений превышает это число, то оставшиеся отбрасываются.
Нажмите Сохранить для изменения параметров канала.
Удалить канал уведомлений#
Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Мониторинг.
В таблице ресурсов найдите сервис мониторинга, в котором вы хотите удалить канал уведомлений, и нажмите на имя сервиса для перехода на его страницу.
Откройте вкладку Каналы уведомлений и выберите канал в списке ресурсов. Одновременно можно выбрать несколько каналов.
Нажмите Удалить и подтвердите действие в открывшемся окне.
Настроить маршруты#
Маршруты позволяют направлять разные уведомления в разные каналы. При этом необходимо учитывать, что маршруты проверяются в порядке их приоритета. Если найдено соответствие условиям, уведомление направляется в канал, указанный в маршруте, и по умолчанию перебор маршрутов прекращается.
При необходимости вы можете настроить отправку одни и тех же уведомлений в несколько каналов. Поиск подходящего маршрута может быть продолжен, если для маршрута задана опция продолжения выбора маршрута.
Создать маршрут#
Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Мониторинг.
В таблице ресурсов найдите сервис мониторинга, для которого вы хотите создать маршрут, и нажмите на имя сервиса для перехода на его страницу.
Откройте вкладку Маршруты и нажмите Добавить.
В диалоговом окне задайте параметры маршрута:
Имя — Название маршрута.
Критерии выбора маршрута — Одно или несколько условий, при выполнении которых соответствующие им уведомления будут отправлены в канал, указанный в маршруте. Критерии задаются в виде строки, состоящей из метки (см. подробнее об их использовании ), оператора и значения. Поддерживаемые операторы:
=
,!=
,=~
,!~
, где символ «тильда» предполагает сравнение с регулярным выражением. Если условий несколько, применяется операция «логическое И».Примечание
После набора каждого критерия необходимо нажать Enter для его ввода.
Продолжить выбор маршрута — При выборе этой опции поиск других маршрутов будет продолжен, даже если были выполнены критерии выбора маршрута.
Группировка по — Список меток, по которым будет осуществляться группировка уведомлений. Например, уведомления можно группировать по имени сервиса, узла или окружения. По умолчанию задаётся специальное значение
...
, при котором группировка отсутствует.Задержка для группы предупреждений — Задержка перед первой отправкой предупреждений на случай, если появятся другие предупреждения, которые относятся к той же группе.
Интервал для группы предупреждений — Время ожидания перед отправкой новых предупреждений для группы, для которой уже было отправлено первое уведомление.
Интервал между повторными уведомлениями — Промежуток времени, через который повторно отправляются предупреждения, если проблема не была решена.
Нажмите Создать для создания маршрута.
Изменить маршрут#
Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Мониторинг.
В таблице ресурсов найдите сервис мониторинга, в котором вы хотите изменить маршрут, и нажмите на имя сервиса для перехода на его страницу.
Откройте вкладку Маршруты и нажмите Изменить.
В диалоговом окне отредактируйте параметры маршрута:
Критерии выбора маршрута — Одно или несколько условий, при выполнении которых соответствующие им уведомления будут отправлены в канал, заданный в маршруте.
Продолжить выбор маршрута — При выборе этой опции поиск других маршрутов будет продолжен, даже если были выполнены критерии выбора маршрута.
Группировка по — Список меток, по которым будет осуществляться группировка уведомлений. Например, уведомления можно группировать по имени узла, сервиса или окружения. По умолчанию задаётся специальное значение
...
, при котором группировка отсутствует.Задержка для группы предупреждений — Задержка перед первой отправкой предупреждений на случай, если появятся другие предупреждения, которые относятся к той же группе.
Интервал для группы предупреждений — Время ожидания перед отправкой новых предупреждений для группы, для которой уже было отправлено первое уведомление.
Интервал между повторными уведомлениями — Промежуток времени, через который повторно отправляются предупреждения, если проблема не была решена.
Нажмите Сохранить для изменения параметров маршрута.
Удалить маршрут#
Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Мониторинг.
В таблице ресурсов найдите сервис мониторинга, в котором вы хотите удалить маршрут, и нажмите на имя сервиса для перехода на его страницу.
Откройте вкладку Маршруты и выберите удаляемый маршрут в таблице ресурсов. Одновременно можно выбрать несколько маршрутов для удаления.
Нажмите Удалить и подтвердите действие в открывшемся окне.
Обновить окружение#
Сервисы PaaS регулярно обновляются. Если вы хотите, чтобы уже установленный сервис мониторинга поддерживал новые возможности, то обновите его окружение на новую версию. Текущую версию окружения можно узнать на вкладке Информация на странице сервиса.
Примечание
Обновление окружения поддерживается для всех сервисов с версией окружения 3_6 и выше.
Оно также доступно для некоторых ранее установленных сервисов с версией окружения 3_5.
Возможность обновления можно проверить с помощью API-метода DescribeService: в ответе на запрос в списке SupportedFeatures должно присутствовать значение common:update_environment
.
Важно
Если окружение не удастся обновить, то сервис будет возвращён в исходное состояние.
Чтобы обновить версию окружения:
Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Мониторинг.
Найдите в таблице сервисов нужный и нажмите на идентификатор сервиса для перехода на его страницу.
На вкладке Информация нажмите Обновить версию окружения.
В открывшемся окне выберите из списка версию, на которую вы хотите обновить текущее окружение.
Нажмите Обновить для смены версии.
Удалить сервис мониторинга#
Примечание
Если удаляемый сервис используется для мониторинга сервисов PaaS, то для его удаления необходимо сначала отключить мониторинг у соответствующих сервисов.
Перейдите в раздел PaaS Установленные сервисы и откройте вкладку Мониторинг.
В таблице ресурсов найдите сервис мониторинга, который вы хотите удалить.
Нажмите на иконку , либо перейдите на страницу сервиса и нажмите Удалить на вкладке Информация.
Если вы хотите использовать в дальнейшем сетевые интерфейсы, например, чтобы запустить сервис с теми же сетевыми параметрами, то в открывшемся окне отключите опцию Удалить подсоединённые сетевые интерфейсы.
Нажмите Удалить для подтверждения действия.