Предполагается, что веб-сервер и MySQL настроены
Скопировать файл конфигурации (Для Glaber не подойдет)
cp /etc/zabbix/web/zabbix.conf.php ~/
Остановить Zabbix-сервер
systemctl stop zabbix-server.service
Удалить все пакеты Zabbix
dnf remove zabbix-*
nano /etc/selinux/config
Заменить
SELINUX=enforcing
на
SELINUX=permissive
Выполнить
setenforce 0
Добавляем репозиторий
dnf config-manager --add-repo https://packages.clickhouse.com/rpm/clickhouse.repo
Устанавливаем пакеты
dnf install clickhouse-server clickhouse-client
Автозапуск и запуск
systemctl enable clickhouse-server systemctl start clickhouse-server
Схема:
Создаем файл history.sql с содержанием:
CREATE DATABASE glaber; CREATE TABLE glaber.history_dbl ( day Date, itemid UInt64, clock DateTime, hostname String, itemname String, ns UInt32, value Float64 ) ENGINE = MergeTree() PARTITION BY toYYYYMM(day) ORDER BY (itemid, clock) TTL day + INTERVAL 6 MONTH; -- CREATE TABLE glaber.history_uint ( day Date, itemid UInt64, clock DateTime, hostname String, itemname String, ns UInt32, value UInt64 ) ENGINE = MergeTree() PARTITION BY toYYYYMM(day) ORDER BY (itemid, clock) TTL day + INTERVAL 6 MONTH; CREATE TABLE glaber.history_str ( day Date, itemid UInt64, clock DateTime, hostname String, itemname String, ns UInt32, value String ) ENGINE = MergeTree() PARTITION BY toYYYYMM(day) ORDER BY (itemid, clock) TTL day + INTERVAL 6 MONTH; -- CREATE TABLE glaber.history_log ( day Date, itemid UInt64, clock DateTime, logeventid UInt64, source String, severity Int16, hostname String, itemname String, ns UInt32, value String ) ENGINE = MergeTree() PARTITION BY toYYYYMM(day) ORDER BY (itemid, clock) TTL day + INTERVAL 6 MONTH; -- CREATE TABLE glaber.trends_dbl ( day Date, itemid UInt64, clock DateTime, value_min Float64, value_max Float64, value_avg Float64, count UInt32, hostname String, itemname String ) ENGINE = MergeTree PARTITION BY toYYYYMM(day) ORDER BY (itemid, clock) TTL day + toIntervalMonth(24) SETTINGS index_granularity = 8192; -- CREATE TABLE glaber.trends_uint ( day Date, itemid UInt64, clock DateTime, value_min UInt64, value_max UInt64, value_avg UInt64, count UInt32, hostname String, itemname String ) ENGINE = MergeTree PARTITION BY toYYYYMM(day) ORDER BY (itemid, clock) TTL day + toIntervalMonth(24) SETTINGS index_granularity = 8192; -- some stats guide -- https://gist.github.com/sanchezzzhak/511fd140e8809857f8f1d84ddb937015 -- to submit all CREATE TABLE queries at once, run "clickhouse-client" with the "--multiquery" param
Импортируем
clickhouse-client --multiquery < history.sql
Входим в клиент БД
clickhouse-client
Смотрим список БД, должна появиться glaber
SHOW DATABASES
Выход из клиента БД
q
Источник:
Задаём ограничение времени хранения логов
nano /etc/clickhouse-server/config.d/query_log.xml
<yandex> <query_log replace="1"> <database>system</database> <table>query_log</table> <flush_interval_milliseconds>7500</flush_interval_milliseconds> <engine> ENGINE = MergeTree PARTITION BY event_date ORDER BY (event_time) TTL event_date + interval 90 day SETTINGS ttl_only_drop_parts=1 </engine> </query_log> </yandex>
Отключаем thread log
nano /etc/clickhouse-server/config.d/disable_query_thread_log.xml
<yandex> <query_thread_log remove="1"/> </yandex>
Отключаем встроенные метрики Clickhouse, если хотим мониторить его параметры внешним мониторингом
nano /etc/clickhouse-server/config.d/disable_metric_logs.xml
<yandex> <metric_log remove="1" /> <asynchronous_metric_log remove="1" /> </yandex>
Отключаем part_log
nano /etc/clickhouse-server/config.d/part_log.xml
<yandex> <part_log remove="1" /> </yandex>
Включаем log queries (в новых версиях Clickhouse включен по-умолчанию)
nano /etc/clickhouse-server/users.d/log_queries.xml
<yandex> <profiles> <default> <log_queries>1</log_queries> </default> </profiles> </yandex>
Запись данных на диск сразу в отсортированном виде
nano /etc/clickhouse-server/users.d/enable_on_disk_operations.xml
<yandex> <profiles> <default> <max_bytes_before_external_group_by>2000000000</max_bytes_before_external_group_by> <max_bytes_before_external_sort>2000000000</max_bytes_before_external_sort> </default> </profiles> </yandex>
Перезапуск ClickHouse сервера
systemctl restart clickhouse-server
Проверить статус ClickHouse сервера
systemctl status clickhouse-server
Источники:
Миграцию можно выполнить через выполнение SQL команд на ClickHouse сервере, используя утилиту clickhouse-client
Мигрировать необходимо 6 основных таблиц:
четыре таблицы истории:
две таблицы трендов
В Glaber, в ClickHouse, и текстовые и строковые данные хранятся в единой таблице history_str
В последовательности SQL команд исправьте данные для подключения к серверу MySQL: имя пользователя и пароль, название базы и именование схемы.
Пример: FROM mysql('127.0.0.1:3306', 'zabbix', 'history', 'user', 'password')
Входим в клиент БД
clickhouse-client
Поочередно запускаем команды, можно копировать
INSERT INTO glaber.history_dbl SELECT toDate(clock) AS day, itemid, clock, '', '', ns, value FROM mysql('host:port', 'database', 'history', 'user', 'password', 'schema')
INSERT INTO glaber.history_uint SELECT toDate(clock) AS day, itemid, clock, '', '', ns, value FROM mysql('host:port', 'database', 'history_uint', 'user', 'password', 'schema')
INSERT INTO glaber.history_str SELECT toDate(clock) AS day, itemid, clock, '', '', ns, value FROM mysql('localhost:5432', 'zabbix', 'history_str', 'zabbix', 'zabbix')
INSERT INTO glaber.history_str SELECT toDate(clock) AS day, itemid, clock, '', '', ns, value FROM mysql('host:port', 'database', 'history_text', 'user', 'password', 'schema')
INSERT INTO glaber.history_log SELECT toDate(clock) AS day, itemid, clock, logeventid, source, severity, '', '', ns, value FROM mysql('host:port', 'database', 'history_log', 'user', 'password', 'schema')
INSERT INTO glaber.trends_dbl SELECT toDate(clock) AS day, itemid, clock, value_min, value_max, value_avg, num, '', '' FROM mysql('host:port', 'database', 'trends', 'user', 'password', 'schema')
INSERT INTO glaber.trends_uint SELECT toDate(clock) AS day, itemid, clock, value_min, value_max, value_avg, num, '', '' FROM mysql('host:port', 'database', 'trends_uint', 'user', 'password', 'schema')
Выход из клиента БД
q
Скачать пакеты
Репозитории:
wget https://glaber.io/repo/redos/7/RPMS/x86_64/glaber-server-mysql-3.4.194-1.el7.x86_64.rpm wget https://glaber.io/repo/redos/7/RPMS/x86_64/glaber-workers-1.0.31-1.el7.x86_64.rpm wget https://glaber.io/repo/redos/7/RPMS/noarch/glaber-web-3.4.194-1.el7.noarch.rpm wget https://glaber.io/repo/redos/7/RPMS/noarch/glaber-web-deps-3.4.194-1.el7.noarch.rpm wget https://glaber.io/repo/redos/7/RPMS/noarch/glaber-web-mysql-3.4.194-1.el7.noarch.rpm wget https://glaber.io/repo/redos/7/RPMS/noarch/glaber-apache-conf-3.4.194-1.el7.noarch.rpm
Установка пакетов
dnf install glaber-server-mysql-3.4.194-1.el7.x86_64.rpm dnf install glaber-workers-1.0.31-1.el7.x86_64.rpm dnf install glaber-web-3.4.194-1.el7.noarch.rpm dnf install glaber-web-deps-3.4.194-1.el7.noarch.rpm dnf install glaber-web-mysql-3.4.194-1.el7.noarch.rpm dnf install glaber-apache-conf-3.4.194-1.el7.noarch.rpm
Настройка БД
nano /etc/zabbix/zabbix_server.conf
Отредактировать:
DBName=zabbix DBUser=user DBPassword=password HistoryModule=clickhouse;{"url":"http://127.0.0.1:8123", "username":"default", "password":"", "dbname":"glaber", "disable_reads":100, "timeout":10 } CacheSize=256M
Запуск и автозагрузка Glaber-сервера
systemctl start zabbix-server systemctl enable zabbix-server
Скопировать шаблон настройки
cp /usr/share/zabbix/conf/zabbix.conf.php.example /usr/share/zabbix/conf/zabbix.conf.php
Отредактировать zabbix.conf.php
nano /usr/share/zabbix/conf/zabbix.conf.php
$DB['TYPE'] = 'MYSQL'; $DB['SERVER'] = 'localhost'; $DB['PORT'] = '0'; $DB['DATABASE'] = 'zabbix'; $DB['USER'] = 'user'; $DB['PASSWORD'] = 'password'; $ZBX_SERVER_NAME = 'Zabbix Server Name';
Веб-интерфейс будет доступен по адресу:
http://<server>/zabbix/
setsebool -P httpd_can_network_connect on setsebool -P httpd_can_network_connect_db on
nano /etc/selinux/config
Заменить
SELINUX=permissive
на
SELINUX=enforcing
Установка
dnf install zabbix-agent
Настройка если требуется
nano /etc/zabbix/zabbix_agentd.conf
Старт и автозапуск
systemctl start zabbix-agent systemctl enable zabbix-agent