Zobrazují se příspěvky se štítkemMariaDB. Zobrazit všechny příspěvky
Zobrazují se příspěvky se štítkemMariaDB. Zobrazit všechny příspěvky

čtvrtek 15. prosince 2022

MariaDB problem "You do not have the SUPER privilege and binary logging is enabled"

 

Řešil jsem problém se Zabbixem a MariaDB, která je zároveň Master pro replikaci na Slave. Během upgrade z  6.0.10 na 6.0.11 se projevil problem s opravněními v DB. Zabbix server nenastartoval :-( Projevilo se to i u 6.0.12

1646147:20221212:123444.717 Starting Zabbix Server. Zabbix 6.0.12 (revision 126aa2f53e9).
1646147:20221212:123444.717 ****** Enabled features ******
1646147:20221212:123444.717 SNMP monitoring:           YES
1646147:20221212:123444.717 IPMI monitoring:           YES
1646147:20221212:123444.717 Web monitoring:            YES
1646147:20221212:123444.717 VMware monitoring:         YES
1646147:20221212:123444.717 SMTP authentication:       YES
1646147:20221212:123444.717 ODBC:                      YES
1646147:20221212:123444.717 SSH support:               YES
1646147:20221212:123444.717 IPv6 support:              YES
1646147:20221212:123444.717 TLS support:               YES
1646147:20221212:123444.717 ******************************
1646147:20221212:123444.717 using configuration file: /etc/zabbix/zabbix_server.conf
1646147:20221212:123444.724 current database version (mandatory/optional): 06000000/06000010
1646147:20221212:123444.724 required mandatory version: 06000000
1646147:20221212:123444.724 optional patches were found
1646147:20221212:123444.724 starting automatic database upgrade
1646147:20221212:123444.725 [Z3005] query failed: [1419] You do not have the SUPER privilege and binary logging is enabled (you *might*
want to use the less safe log_bin_trust_function_creators variable) [create trigger hosts_name_upper_insert
before insert on hosts for each row
set new.name_upper=upper(new.name)]
 

Pomohlo nastavit u běžící MariaDB direktivu log_bin_trust_function_creators.

set global log_bin_trust_function_creators=1;

Po restartu MariaDB se logicky opet nastavilo defaultní OFF, ale Zabbix server již šel restartovat a nabíhal korektně.

mysql> SHOW VARIABLES LIKE 'log_bin_trust_function_creators';
+---------------------------------+-------+
| Variable_name                   | Value |
+---------------------------------+-------+
| log_bin_trust_function_creators |  OFF  |
+---------------------------------+-------+

Trvale nastavení konfigurace MariaDB asi není naškodu.

--log_bin_trust_function_creators[={OFF|ON}]



pátek 17. ledna 2020

Zabbix HA - s MariaDB s DRBD



 Již mnoho let jsem chtěl vyzkoušet DRBD pro synchronizaci raw device (/dev/sdb) na druhý server. Něco jako RAID-1 po síti. V době mého zájmu zájmu o DRBD bylo vše mnohem složitější a bylo nutno kompilovat modul do kernelu. To je dnes mnohem snažší. Za DRBD® stojí společnost , LINBIT®, která zajišťuje vývoj, placenou podporua zároveň DRBD pouzívá ve svých storrage technologiích a produktech.


Využití DRBD pro HA je hnedle několik. Já jej použiji pro synchronizaci disku na kterém běží MariaDB databáze, která je využívána pro monitorovací systém Zabbix.

Pro otestování jsem si vybral Linux Distribuci CentOS 7.7 do níž je přidán repository ELRepo.

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org --httpproxy=http://192.168.42.1:3128
yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm


yum repolist | grep ELRepo
elrepo                      ELRepo.org Community Enterprise Linux Repository


yum update
yum install -y kmod-drbd90 drbd90-utils

lsmod | grep -i drbd
modprobe drbd
echo drbd > /etc/modules-load.d/drbd.conf


tail -f /var/log/messages
Jan  7 08:26:36 zbx-02  kernel: drbd: initialized. Version: 9.0.20-1 (api:2/proto:86-115)
Jan  7 08:26:36 zbx-02  kernel: drbd: GIT-hash: 7dce3c8be99f4912f1490f9bb37f5aff6c873335 build by mockbuild@, 2019-10-17 20:27:56
Jan  7 08:26:36 zbx-02  kernel: drbd: registered as block device major 147


cat /proc/drbd
version: 9.0.20-1 (api:2/proto:86-115)
GIT-hash: 7dce3c8be99f4912f1490f9bb37f5aff6c873335 build by mockbuild@, 2019-10-17 20:27:56

Hlavní konfigurace DRBD se provádí zde:

vim /etc/drbd.d/global_common.conf
global {
 usage-count  yes;
}
common {
 net {
  protocol C;
 }
}


protocol A: Asynchronous replication protocol; it’s most often used in long distance replication scenarios.
protocol B: Semi-synchronous replication protocol aka Memory synchronous protocol.
protocol C: commonly used for nodes in short distanced networks; it’s by far, the most commonly used replication protocol in DRBD setups.

Zdroje DRBD se defunuji naříklad takto:

vim /etc/drbd.d/mariadb_data.res

resource zbxdb {
        on zbx-01 {
         device /dev/drbd0;
               disk /dev/sdb;
            meta-disk internal;   
                address 192.168.42.10:7789;
        }
        on zbx-02 {
        device /dev/drbd0;
            disk /dev/sdb;
            meta-disk internal;
                address 192.168.42.20:7789;
        }
}


Vytvoření zdroje:

drbdadm create-md zbxdb
initializing activity log
initializing bitmap (160 KB) to all zero
Writing meta data...
New drbd meta data block successfully created.



Nahození synchronizace:

drbdadm up zbxdb


Nastavení primátního sync media:

[root@zbx-01 ~]# drbdadm primary --force zbxdb

Status synchronizace zjistíme takto:

[root@zbx-01 ~]# drbdadm status zbxdb
zbxdb role:Primary
  disk:UpToDate
  zbx-02 role:Secondary
    peer-disk:UpToDate

[root@zbx-02 ~]# drbdadm status zbxdb
zbxdb role:Secondary
  disk:UpToDate
  zbx-01 role:Primary
    peer-disk:UpToDate


Vytvoříme mount point a naformatujeme disk např. pomocí xfs.

mkdir -p /data/mariadb
mkfs.xfs /dev/drbd0
mount -t xfs -o noatime,nodiratime,attr2 /dev/drbd0 /data/mariadb

Veškeré HA služby svěřím aplikacím Corosync a Pacemaker z projektu ClusterLabs. Společnost LINBIT přispívá do projektu Pacemaker a tím zajišťuje podporu pro správné volání drbadm. Nadefinováním zdroju clusteru docilim toho, že Zabbix server beží jen na jednim nodu a zároveň i databáze jejíz data (disk) se synchroniyuje na druhý node.


Tato testovací instalace bude v budoucnosti reinstalována na CentOS 8 se Zabbix 4.4, protože novější Zabbix umí monitorovat raw device a to v tomto případě je velmi zajímavé, protože na node2 pokud není /dev/drbd0 namontován o disku nic nevime.

Monitoring Clusteru se dá snadno realizovat z těchto zdrojů.

https://share.zabbix.com/cat-server-hardware/other/template-drbd
https://github.com/VadimIpatov/zbx_pacemaker
https://github.com/cnshawncao/zabbix-module-mysql

Dále je se třeba zaměřit na performace a patřičně upravit a vylepšit konfiguraci DRBD.

https://docs.linbit.com/docs/users-guide-9.0/#p-performance