Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Описание

При управлении большим количеством WCS серверов, для отладки возможных проблем с вещанием потоков, возникает необходимость централизованного сбора данных о потоках, клиентских соединениях и событий CDN. Фактически, необходимо в одной точке собрать информацию, которая пишется в логи каждого сервера. При этом само по себе логирование в промышленной эксплуатации сведено к минимуму, чтобы не давать нагрузку на дисковую подсистему сервера.

Для сбора данных в реальном времени в больших объемах хорошо подходят базы данных временных рядов. На основе одной из таких БД cс открытым исходным кодом ClickHouse, в сборке 5.2.774 добавлена система удаленного сбора логов RELS (Remote Event Logging System).

Архитектура

Каждый WCS сервер отправляет данные в ClickHouse независимо, используя JDBC-драйвер и HTTP-соединение. Для оптимизации работы с БД ClickHouse, данные буферизуются и отправляются пачками по времени

Описание таблиц данных

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

Данные соединений (таблица ConnectionEvent)

ПолеТипОписание
timestampUInt64Метка времени
ipIPv4Адрес сервера
sessionIdStringИдентификатор сессии
eventTypeUInt64Идентификатор типа события
eventPayloadStringСодержимое события

Типы событий (таблица ConnectionEventTypes)

ПолеТипОписание
idUInt32Идентификатор типа события
typeStringОписание типа события

Словарь типов событий (таблица DictionaryConnectionEvents)

ПолеТипОписание
idUInt64Идентификатор типа события
typeStringОписание типа события

Данные потоков (таблица StreamEvent)

ПолеТипОписание
timestampUInt64Метка времени
ipIPv4Адрес сервера
sessionIdStringИдентификатор сессии
mediaSessionIdStringИдентификатор медиасесий
streamNameStringИмя потока
eventTypeUInt64Идентификатор типа события
eventPayloadStringСодержимое события

Типы событий (таблица StreamEventTypes)

ПолеТипОписание
idUInt32Идентификатор типа события
typeStringОписание типа события

Словарь типов событий (таблица DictionaryStreamEvents)

ПолеТипОписание
idUInt64Идентификатор типа события
typeStringОписание типа события

Данные CDN (таблица CDNEvent)

ПолеТипОписание
timestampUInt64Метка времени
ipIPv4Адрес сервера
nodeIdStringИдентификатор узла (строка IP адреса)
eventTypeUInt64Идентификатор типа события
eventPayloadStringСодержимое события

Типы событий (таблица CDNEventTypes)

ПолеТипОписание
idUInt32Идентификатор типа события
typeStringОписание типа события

Словарь типов событий (таблица DictionaryCDNEvents)

ПолеТипОписание
idUInt64Идентификатор типа события
typeStringОписание типа события

Настройка

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

Установка ClickHouse на примере CentOS 7

1. Создайте файл репозитория altinity_clickhouse.repo в каталоге /etc/yum.repos.d

...

Code Block
languagebash
themeRDark
systemctl start clickhouse-server

Настройка ClickHouse

1. Для того, чтобы прослушивать входящие запросы на всех интерфесах сервера, раскомментируйте строку в файле /etc/clickhouse-server/config.xml 

...

Code Block
languagebash
themeRDark
systemctl restart clickhouse-server

Настройка WCS

Сбор данных в БД ClickHouse включается настройкой

...

Code Block
themeRDark
rels_database_address=jdbc:clickhouse://clickhouseserver:8123/wcs?user=wcs&password=wcs

Остановка сбора данных без перезапуска WCS

При необходимости, передача данных с конкретного WCS сервера в ClickHouse может быть остановлена без перезапуска WCS. Для этого:

...

Code Block
themeRDark
rels_enabled=false

2. Перезагрузите настройки сервера из интерфейса командной строки

Code Block
themeRDark
reload node-settings

Изменение адреса сервера ClickHouse без перезапуска WCS

Адрес сервера ClickHose может быть изменен без перезапуска WCS. Для этого:

...

Code Block
themeRDark
rels_enabled=false

3. Перезагрузите настройки сервера из интерфейса командной строки

Code Block
themeRDark
reload node-settings

...

Code Block
themeRDark
rels_enabled=true

5. Перезагрузите настройки сервера из интерфейса командной строки

Code Block
themeRDark
reload node-settings

Выборки информации из БД

Выборки информации из БД производятся при помощи SQL запросов в клиенте ClickHouse

...