====== Миграция с Zabbix на Glaber в RedOS 7.3 ====== Предполагается, что веб-сервер и MySQL настроены ===== Подготовка ===== Скопировать файл конфигурации (Для Glaber не подойдет) cp /etc/zabbix/web/zabbix.conf.php ~/ Остановить Zabbix-сервер systemctl stop zabbix-server.service Удалить все пакеты Zabbix dnf remove zabbix-* ===== Настройка selinux ===== nano /etc/selinux/config Заменить >SELINUX=enforcing на >SELINUX=permissive Выполнить setenforce 0 ===== Установка ClickHouse ===== Добавляем репозиторий 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 ===== Импорт схемы БД в ClickHouse ===== Схема: * [[https://gitlab.com/mikler/glaber/-/blob/master/database/clickhouse/history.sql]] Создаем файл 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 ===== Настройка ClickHouse ===== Источник: * [[https://docs.glaber.io/ru/setup/ubuntu/]] Задаём ограничение времени хранения логов nano /etc/clickhouse-server/config.d/query_log.xml system query_log
7500 ENGINE = MergeTree PARTITION BY event_date ORDER BY (event_time) TTL event_date + interval 90 day SETTINGS ttl_only_drop_parts=1
Отключаем thread log nano /etc/clickhouse-server/config.d/disable_query_thread_log.xml Отключаем встроенные метрики Clickhouse, если хотим мониторить его параметры внешним мониторингом nano /etc/clickhouse-server/config.d/disable_metric_logs.xml Отключаем part_log nano /etc/clickhouse-server/config.d/part_log.xml Включаем log queries (в новых версиях Clickhouse включен по-умолчанию) nano /etc/clickhouse-server/users.d/log_queries.xml 1 Запись данных на диск сразу в отсортированном виде nano /etc/clickhouse-server/users.d/enable_on_disk_operations.xml 2000000000 2000000000 Перезапуск ClickHouse сервера systemctl restart clickhouse-server Проверить статус ClickHouse сервера systemctl status clickhouse-server ===== Миграция истории из MySQL в ClickHouse ===== Источники: * [[https://docs.glaber.io/ru/setup/zabbix_history_migration/]] * [[https://clickhouse.com/docs/en/engines/table-engines/integrations]] Миграцию можно выполнить через выполнение SQL команд на ClickHouse сервере, используя утилиту clickhouse-client Мигрировать необходимо 6 основных таблиц: \\ четыре таблицы истории: * history * history_uint * history_str * history_text две таблицы трендов * trends * trends_uint В 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 ===== Настройка Glaber ===== Скачать пакеты Репозитории: * [[https://glaber.io/repo/redos/7/RPMS/noarch/]] * [[https://glaber.io/repo/redos/7/RPMS/x86_64/]] 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:///zabbix/%% ===== Настройка selinux ===== setsebool -P httpd_can_network_connect on setsebool -P httpd_can_network_connect_db on nano /etc/selinux/config Заменить > SELINUX=permissive на > SELINUX=enforcing ===== Установка Zabbix-агента ===== Установка dnf install zabbix-agent Настройка если требуется nano /etc/zabbix/zabbix_agentd.conf Старт и автозапуск systemctl start zabbix-agent systemctl enable zabbix-agent ===== Источники ===== * [[https://redos.red-soft.ru/base/redos-7_3/7_3-administation/7_3-monitoring/7_3-zabbix/7_3-zabbix62-mysql/?nocache=1730203664375]] * [[https://docs.glaber.io/ru/setup/ubuntu/]]