Clickinstall
Установка ClickHouse (debian-like):
Скачиваем публичный ключ и прописываем репозиторий
apt-key adv --keyserver keyserver.ubuntu.com --recv 3E4AD4719DDE9A38
echo "deb http://repo.yandex.ru/clickhouse/deb stable main" | sudo tee /etc/apt/sources.list.d/clickhouse.list
apt update
apt install clickhouse-server clickhouse-client
default (например glaber), запоминаем.
Добавляем в автозагрузку и стартуем
systemctl enable clickhouse-server
clickhouse start
touch history.sql
Запускаем клиент
clickhouse-client --password --multiquery < history.sql
Тюнинг clickhouse Инструкция
Настройка glaber для clickhouse
В конфигурации /etc/glaber/glaber_server.conf
Сначала меняем стандартные настройки
Большинство настроек уже прописано по умолчанию, далее приведены описания настроек и стандартные значения
Нужно увеличить кеш для конфигурации, ориентир - 1,5G на каждые 1млн items, минимум 256Мб.
CacheSize=256M
dbsyncer в Glaber переваривает 20-30kNVPS, так что на большинстве систем достаточно одного. Если вычисляется много триггеров, то следует увеличить. В среднем хватает одного синкера на 100тыс триггеров и 2млн метрик.
StartDBSyncers=1
StartPollers=10
StartPollersUnreachable=1
HousekeepingFrequency=1
StartTrappers=4
StartPingers=2
Специфичные настройки для Glaber
Воркеры - если используются воркер-серверы (прием логов, прием данных в режиме сервера по другим протоколам), то нужно запустить хотя бы один контролирующий сервер:
StartGlbWorkers=1
Асинхронный поллер SNMP
один поллер может снимать метрики со скоростью около 10kNVPS. Рекомендуется запускать такое количество поллеров, чтобы на каждый приходилось не более 2млн метрик. Поллер использует один порт, но много соединений, может потребоваться увеличение conntrack таблиц фаервола.
StartGlbSNMPPollers=1
DefaultICMPMethod=glbmap
DefaultICMPMethod=fping
StartGlbPingers=1
Пингер glbmap не поддерживает Vlan и маршрутизацию локального компьютера. Нужно или ставить перед ним какой-то роутер, который будет этим заниматься, или жёстко прописать работу через один Vlan, указав номер интерфейса и мак маршрутизатора. Или использовать по старинке fping
GlbmapOptions=-i ens160 -G 00:50:56:9e:7c:9e
GlbmapLocation=/usr/sbin/glbmap
Асинхронный поллер агентов.
Один поллер держит 6-7kNVPS
StartGlbAgentPollers=1
Отдельный траппер для UI и API
APITrappers используются для ответа на API запросы, опция позволяет разделить мониторинговую и пользовательскую нагрузку на трапперы
StartAPITrappers=2
Менеджер препроцессов
Каждый препроцессор способен обработать до 40-50 тысяч метрик в секунду.
Количество препроцессоров задается опцией
StartGlbPreprocessors=8
Настройка дополнительных путей и коннектов в БД
С версии 2.9.0 вернулась встроенная поддержка clickhouse, поэтому предпочтительнее использовать её вместо glb_hist_clickhouse
HistoryModule=clickhouse;{"url":"http://127.0.0.1:8123", "username":"default", "password":"glaber", "dbname":"glaber", "disable_reads":100, "timeout":10 }
WorkerScripts=/usr/lib/glaber/workerscripts/
Настройка ValueCache
Glaber периодически дампит кэш метрик, чтобы быстрее запускаться и работать. Просмотр кеша иногда полезен при диагностике проблем.\ Указываем путь
ValueCacheDumpLocation=/tmp/vcdump
Значения 300 хватит для большинства инсталляций
ValueCacheDumpFrequency = 300
mkdir /tmp/vcdump/
chmod 777 /tmp/vcdump/
chown -R glaber:glaber /tmp/vcdump/
mkdir /usr/sbin/glbmap
chmod +s /usr/sbin/glbmap
clickhouse-client который выбрали для пользователя default при установке
nano /etc/clickhouse-server/users.xml
<password>ваш пароль</password>

Обращение к истории напрямую из фронта
C версии 3.5.157 фронтенд glaber умеет обращаться в клик напрямую, минуя сервер (Эта настройка не обязательна, по умолчанию история будет получена через сервер). Чтобы использовать эту функцию нужно (После настройки через веб интерфейс) в конце файла /etc/glaber/web/zabbix.conf.php дописать:
global $HISTORY_SOURCES;
$HISTORY_SOURCES = [
'type' => 'clickhouse', \\обязательно
'url' => 'http://127.0.0.1:8123', \\адрес ноды
'username' => 'default', \\имя пользователя клика
'password' => '', \\пароль
'database' => 'glaber']; \\название БД
Если мы хотим одновременно использовать и сервер и клик (источник будет выбран случайно):
$HISTORY_SOURCES = [
[ 'type' => 'clickhouse',
'url' => 'http://127.0.0.1:8123',
'username' => 'default',
'password' => '',
'database' => 'glaber'],
[ 'type' => 'glaber_server' ]
];
$HISTORY_SOURCES = [
[ 'type' => 'clickhouse',
'url' => 'http://127.0.0.1:8123',
'username' => 'default',
'password' => '',
'database' => 'glaber'],
[ 'type' => 'clickhouse',
'url' => 'http://127.0.0.1:8124',
'username' => 'default',
'password' => '',
'database' => 'glaber'],
[ 'type' => 'clickhouse',
'url' => 'http://127.0.0.1:8125',
'username' => 'default',
'password' => '',
'database' => 'glaber']
];