Skip to content

Мониторинг 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 по следующим конечным точкам:

  • 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.