La publication est basée sur le rapport d'Alexandre Petrov-Gavrilov, formateur et ingénieur du support technique Zabbix.
Beaucoup de gens s'inquiètent de la façon de migrer de MySQL vers PostgreSQL et de tirer parti de TimescaleDB.
Pourquoi migrer
La première question qui se pose généralement est de savoir pourquoi migrer de MySQL vers PostgreSQL lors de l'utilisation de Zabbix.
, . :
. , , . , , . Zabbix .
- PostgreSQL MySQL Zabbix DB.
- , buffer transaction log.
- MySQL , PostgreSQL.
- PostgreSQL foreign key, . . .
- PostgreSQL IO.
, MySQL PostgreSQL :
- Zabbix 5.0,
- CentOS 7,
- MariaDB 5.5.65 ( « » CentOS ).
. .
:
- PostgreSQL,
- PGloader,
- Zabbix.
. PGloader .
1). PostgreSQL.
# yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
# yum install postgresql12-server
# /usr/pgsql-12/bin/postgresql-12-setup initdb # systemctl enable postgresql-12 # systemctl start postgresql-12
PostgreSQL PostgreSQL, , . , pg_hba.conf, .
2). pgloader.
# yum install pgloader
# pgloader -V
# pgloader version "3.6.2
pgloader PosgreSQL, # yum install pgloader
. PosgreSQL 12, , pgloader 3.6.2.
3). .
# mkdir myzabbix-pgzabbix
# cd myzabbix-pgzabbix
, . Zabbix.
4). Zabbix.
# yum install wget
# wget https://cdn.zabbix.com/zabbix/sources/stable/5.0/zabbix -5.0.1.tar.gz
CentOS, wget, « », CentOS. Zabbix, Zabbix, , Zabbix Zabbix.
5). , , , .
# tar -zxvf zabbix -5.0.1.tar.gz
6). schema.sql create.sql alter.sql.
Zabbix sql- PostgreSQL, MySQL. , schema.sql, , . . alter.sql, , . .
# cd myzabbix-pgzabbix/zabbix-5.0.1/database/postgresql/
# sed -n '/CREATE.*/,/INSERT.*$/p' schema.sql | head -n-1 > create.sql
# grep ALTER schema.sql > alter.sql
7). PostgreSQL
# sudo -u postgres createuser --pwprompt zabbix
# sudo -u postgres createdb -O zabbix zabbix
. Zabbix .
8). , create.sql alter.sql
LOAD DATABASE FROM mysql://zabbix:zabbix-password@localhost/zabbix INTO postgresql://zabbix:zabbix-password@localhost/zabbix WITH include no drop, truncate, create no tables, create no indexes, no foreign keys, reset sequences, data only SET maintenance_work_mem TO '1024MB', work_mem to '256MB' ALTER SCHEMA 'zabbix' RENAME TO 'public' BEFORE LOAD EXECUTE create.sql AFTER LOAD EXECUTE alter.sql;
, , , , . pgloader COPY) PostgreSQL.
, . , , , ( , ).
. pgloader public.
. schema.sql Zabbix, , alter.sql.
1). Zabbix Server.
systemctl stop zabbix -server
Zabbix Server , - .
. . . csv-.
. , , .
2). pgloader.
# pgloader zabbix -migrate.load
pgloader , .
3). Warnings — .
4). .
, , , , , ( ).
5). .
PostgreSQL — , , . .
PostgreSQL
, .
PostgreSQL
1). Zabbix MySQL.
# yum remove Zabbix -server -mysql
2). MySQL.
# yum remove zabbix -web - *
3). Zabbix PostgreSQL.
# yum install zabbix -server -pgsql
4). PostgreSQL.
# yum install zabbix -web -pgsql -scl zabbix -apache -conf -scl
5). zabbix_server.conf
# vi /etc/zabbix/zabbix_server.conf
6). .
# DBPassword=zabbix
7). ().
# rm /etc/zabbix/web/zabbix.conf.php
8). .
# vi /etc/httpd/conf.d/zabbix.conf
9). Zabbix Server, httpd.
# systemctl restart zabbix -server httpd
10). - PostgreSQL.
11). .
12). MySQL.
# systemctl stop mariadb
, Zabbix 4.0 , TimescaleDB. Zabbix.