Мониторинг Flussonic с помощью Prometheus¶
Во Flussonic есть возможность мониторинга и сбора данных серверов с помощью Prometheus.
Что такое Prometheus?¶
Prometheus – это система мониторинга и сбора аналитики с открытым исходным кодом. Хранение значений метрик реализовано на базе данных временных рядов, где каждому моменту времени соответствует пара "ключ (т.е. имя метрики) - значение" метрики в этот момент. Таким образом осуществляется быстрый и эффективный доступ к данным.
Для визуализации данных метрик Prometheus интегрируется с Grafana.
Возможности Prometheus:
- Быстрый и эффективный доступ к данным.
- Отправление уведомлений в любые современные мессенджеры и сервисы (все от SMTP до Slack и т.д.), а также по email, так что вы можете определить наиболее удобный для себя и подходящий Вам метод оповещения.
- Отображения данных группы серверов на одном дашборде для удобства отслеживания состояния нескольких серверов.
- Хранение метрик на протяжении некоторого времени, что позволяет вам отслеживать состояние сервера или серверов в динамике.
- Отслеживание состояния как сервера, так и его отдельных потоков.
Настройка Prometheus для сбора данных метрик Flussonic¶
Чтобы настроить Prometheus для сбора данных метрик Flussonic, выполните следующие шаги:
Шаг 1.
Скачайте и установите Prometheus. Используйте инструкцию Getting Started от Prometheus для корректной установки и запуска.
Шаг 2.
Настройте Prometheus для мониторинга ваших серверов Flussonic, добавив следующие настройки scrape_configs
в конфигурационный файл prometheus.yml
:
scrape_configs:
- job_name: 'flussonic_server'
metrics_path: /streamer/api/v3/config
basic_auth:
username: 'demo'
password: 'pass'
params:
format: [openmetrics]
static_configs:
- targets: ['localhost:80']
- job_name: 'flussonic_streams'
metrics_path: /streamer/api/v3/streams
basic_auth:
username: 'demo'
password: 'pass'
params:
format: [openmetrics]
static_configs:
- targets: ['localhost:80']
, где:
job_name
— название процесса.flussonic_server
— для сервера, аflussonic_streams
— для потоков. Вы можете отслеживать данные метрик сервера или потоков либо обоих сразу.-
metrics_path
— путь до метрик, рассчитываемых Flussonic. Чтобы узнать списки метрик Flussonic, извлекаемых Prometheus, см. Flussonic API Reference по следующим конечным точкам:/streamer/api/v3/config
— для сервера,/streamer/api/v3/streams
— для потоков.
-
username
— логин пользователя Flussonic. Вы можете использовать данные Администратора (edit_auth
) либо пользователя с правами только на чтение (view_auth
). Подробнее об управлении пользователями в Flussonic см. в разделе Логин и пароль. password
— пароль пользователя Flussonic. Вы можете использовать данные Администратора (edit_auth
) либо пользователя с правами только на чтение (view_auth
).targets
— список серверов для отслеживания. Prometheus собирает данные сервера по HTTP-порту, на котором отвечает Flussonic Media Server API. Flussonic Media Server API можно включить в веб-интерфейсе в разделе Config > Settings > Listeners переключателем Api справа от номера порта. Укажите URL сервера в следующем формате:FLUSSONIC-IP:FLUSSONIC-API-PORT
. Если Prometheus установлен на сервере с Flussonic с HTTP-портом 80 по умолчанию, укажитеlocalhost:80
.
Шаг 3.
Скачайте и установите Grafana. Импортируйте дашборд Flussonic Exporter в Grafana.
Выбор метрик для мониторинга¶
На дашборде Flussonic Exporter представлены наиболее распространенные метрики для мониторинга, например использование памяти и CPU, нагрузка на сеть и т.п. Вы можете использовать и другие метрики в зависимости от того, какие функции и продукты Flussonic у вас настроены, например:
- Для мониторинга отправки потоков и/или мультиплексоров добавьте визуализацию метрик
pusher_*
. Они соответствуют параметрам API multiplexer.pushes.stats и stream.pushes.stats. - Настройте оповещение Grafana Alerting о перегрузке транскодера по метрике
stream_transcoder_overloaded
, которая соответствует параметру API transcoder_overloaded. Обратите внимание, что эта метрика будет доступна, только если транскодер для потока настроен и запущен. - Если вы используете Flussonic Central, то можете следить за метриками, возвращаемыми запросом
Central-API: GET streamer/api/v3/config
к серверу Central.
Note
Чтобы визуализировать метрики из других запросов, помимо GET /config
и GET /streams
из API Flussonic Media Server, вам нужно будет добавить соответствующие конечные точки и серверы в файл конфигурации prometheus.yml
.