Skip to content

Clickhouse

Внимание: в clickhouse хранится только история и тренды. Конфигурация по прежнему должна хранится в одной из SQL баз (postgresql, mysql, oracle).

Для поддержки работы с Clickhouse в Glaber есть специальный модуль, воркера не требуется

Параметры работы модуля:

url - адрес http/https где слушает кликхаус

user и password имя и пароль пользователя ClickHouse

batch - количество строк истории для буфферизации

flush - количество секунд, через которые скидывать накопившуюся историю в clickhouse

timeout_flush - тайм-аут ожидания ответа Clickhouse при заливке данных

timeout_read - тайм-аут ожидания ответа Clickhouse при чтении данных

batch и flush работают по принципу "что наступит раньше" и нужны, чтобы с одной стороны, обеспечить комфортную для clickhouse нагрузку (меньше апдейтов с бОльшим количеством данных) и с другой, не делать существенной задержки в обработке данных

Пример конфигурации

HistoryModule=clickhouse;{"url": "http://127.0.0.1:8123?user=default&password=XXXX", "batch":100000, "flush":"30", "disable_reads":100, "timeout":5, "write_types":"dbl, str, uint, text", "max_calls":10000000 ,"timeout_flush":5, "timeout_read":15 }

Настройка ClickHouse:

особенности конфигурирования ClickHouse

Особенности хранения

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

  • по умолчанию модуль не пишет наносекунды у метрик. Это существенно экономит место. Это поведение можно изменить установив параметр модуля disable_ns в false

  • по умолчанию модуль пишет имена хостов и название метрик. Это не сильно сказывается на месте. Но позволит использовать историю даже в случае, если соответствующие item уже были удалены из SQL базы

Если количество триггеров с историческими данными очень большое (операторы avg max и так далее, требующие историю), то есть шанс что ClickHouse сервер будет перегружен запросами на историю после перезапуска сервера (актуально, если не настроена периодическая выгрузка ValueCache на диск)

Если запросы истории начинают занимать слишком более 50% времени работы модуля, часть запросов может быть проигнорирована, чтобы не замедлять работу процесса выгрузки данных, не переполнять буфера и не создавать слишком большую нагрузку на сервер и не тормозить процесс сбора новых метрик. В таком режиме работы часть триггеров могут не выполнится. Также могут не посчитаться некоторые Calculated метрики.