MariaDB Server již není přímou imitací MySQL. Vyrostl ve vyspělý fork, který implementuje nové funkce podobné tomu, co proprietární databázové systémy nabízejí v upstreamu. MariaDB 10.3 značně rozšiřuje seznam podnikových funkcí a s novým SQL_MODE=Oracle se stává vzrušující volbou pro společnosti, které chtějí migrovat své databáze Oracle na databázi s otevřeným zdrojovým kódem. Provozní řízení je však oblastí, kde je stále co dohánět, a MariaDB vyžaduje, abyste si vytvořili své vlastní skripty.
Možná dobrá příležitost podívat se na systém automatizace?
Automatizované postupy jsou přesné a konzistentní. Mohou vám poskytnout tolik potřebnou opakovatelnost, takže můžete minimalizovat riziko změn ve výrobních systémech. Protože se však moderní databáze s otevřeným zdrojovým kódem vyvíjejí tak rychle, je náročnější udržet vaše systémy správy na úrovni všech nových funkcí.
Dalším přirozeným krokem je hledání automatizačních platforem. Existuje mnoho platforem, které můžete použít k nasazení systémů. Puppet, Chef a Ansible jsou pravděpodobně nejlepší příklady tohoto nového trendu. Tyto platformy jsou vhodné pro rychlé nasazení různých softwarových služeb. Jsou ideální pro nasazení, ale stále vyžadují, abyste udržovali kód, pokrývali změny funkcí a obvykle pokrývají pouze jeden aspekt vaší práce. Věci jako zálohování, výkon a údržba stále potřebují externí nástroje nebo skripty.
Na druhé straně máme cloudové platformy s vylepšenými rozhraními a řadou doplňkových služeb pro plně spravované prostředí. To však nemusí být proveditelné; například hybridní prostředí, kde možná používáte cloud, ale stále s výrazným zastoupením na místě.
Co takhle vyhrazenou vrstvu správy pro vaše databáze MariaDB?
ClusterControl byl navržen tak, aby automatizoval nasazení a správu MariaDB a dalších open source databází. Jádrem ClusterControl je funkčnost, která vám umožní automatizovat databázové úlohy, které musíte pravidelně provádět, jako je nasazování nových instancí databáze a clusterů, správa záloh, vysoká dostupnost a převzetí služeb při selhání, změny topologie, upgrady, škálování nových uzlů a další.
Instalace ClusterControl
Chcete-li začít s ClusterControl, potřebujete vyhrazený virtuální počítač nebo hostitele. Požadavky na VM a podporované systémy jsou popsány zde. Minimálně můžete začít s malým virtuálním počítačem s 2 GB RAM, 2 jádry procesoru a 20 GB úložného prostoru, ať už on-prem, nebo v cloudu.
Primární metodou instalace je stáhnout si instalačního průvodce, který vás provede všemi kroky (konfigurace operačního systému, stažení a instalace balíčku, vytvoření metadat a další).
Pro prostředí bez přístupu k internetu můžete použít proces instalace offline.
ClusterControl je bez agenta, takže nemusíte instalovat další software. Vyžaduje pouze přístup SSH k hostitelům databáze. Podporuje také monitorování založené na agentech pro vyšší rozlišení monitorovacích dat.
Chcete-li nastavit SSH bez hesla pro všechny cílové uzly (ClusterControl a všechny hostitele databáze), spusťte na serveru ClusterControl následující příkazy:
$ ssh-keygen -t rsa # press enter on all prompts
$ ssh-copy-id -i ~/.ssh/id_rsa [ClusterControl IP address]
$ ssh-copy-id -i ~/.ssh/id_rsa [Database nodes IP address] # repeat this to all target database nodes
Jedním z nejpohodlnějších způsobů, jak vyzkoušet ovládání clusteru, může být možnost spustit jej v kontejneru docker.
docker run -d --name clustercontrol \
--network db-cluster \
--ip 192.168.10.10 \
-h clustercontrol \
-p 5000:80 \
-p 5001:443 \
-v /storage/clustercontrol/cmon.d:/etc/cmon.d \
-v /storage/clustercontrol/datadir:/var/lib/mysql \
-v /storage/clustercontrol/sshkey:/root/.ssh \
-v /storage/clustercontrol/cmonlib:/var/lib/cmon \
-v /storage/clustercontrol/backups:/root/backups \
severalnines/clustercontrol
Po úspěšném nasazení byste měli mít přístup k webovému uživatelskému rozhraní ClusterControl na adrese {host's IP address}:{host's port}, například:
HTTP: http://192.168.10.100:5000/clustercontrol
HTTPS: https://192.168.10.100:5001/clustercontrol
Instalace MariaDB Cluster
Jakmile vstoupíme do rozhraní ClusterControl, první věc, kterou musíte udělat, je nasadit novou databázi nebo importovat existující. Verze 1.7.2 zavedla podporu pro verzi 10.3 (spolu s 10.0, 10.1, 10.2). Ve verzi 1.7.3, která byla vydána tento týden, můžeme vidět vylepšené nasazení instalace v cloudu.
ClusterControl:Deploy/ImportV době psaní tohoto blogu jsou aktuální verze 10.3.16. Nejnovější balíčky jsou standardně vyzvednuty. Vyberte možnost „Deploy Database Cluster“ a postupujte podle zobrazených pokynů.
Nyní je čas poskytnout data potřebná pro spojení mezi uzly ClusterControl a DB. V tomto kroku byste měli čisté virtuální počítače nebo obrazy operačního systému, které používáte ve vaší organizaci. Při výběru MariaDB musíme zadat uživatele, klíč nebo heslo a port pro připojení pomocí SSH k našim serverům.
ClusterControl:Nasazení databázového klastruPo nastavení přístupových informací SSH musíme zadat data pro přístup k naší databázi, pro MariaDB to bude root superuživatele. Můžeme také určit, které úložiště použít. Při nasazování databázového serveru/klastru pomocí ClusterControl můžete mít tři typy úložišť:
- Používejte úložiště dodavatelů. Poskytujte software nastavením a používáním preferovaného softwarového úložiště dodavatele databáze. ClusterControl nainstaluje nejnovější verzi toho, co poskytuje úložiště dodavatele databáze.
- Nenastavujte úložiště dodavatelů. ClusterControl nenastaví žádná úložiště. ClusterControl se bude spoléhat na konfiguraci systému (vaše výchozí soubory úložiště).
- Vytvořte a zrcadlte úložiště aktuálního dodavatele databáze a poté jej nasaďte pomocí místního zrcadleného úložiště. To vám umožní „zmrazit“ aktuální verze softwarových balíčků.
Když je vše nastaveno, stiskněte tlačítko nasazení. Proces nasazení se také postará o instalaci dalších nástrojů poskytovaných MariaDB, jako je mariabackup a nástroje od externích dodavatelů, oblíbené v administraci databází.
Importovat nový klastr
Máme také možnost spravovat stávající nastavení jeho importem do ClusterControl. Takové prostředí lze vytvořit pomocí ClusterControl nebo jinými metodami (loutka, kuchař, ansible, docker…). Tento proces je jednoduchý a nevyžaduje speciální znalosti.
Nejprve musíme zadat přihlašovací údaje SSH pro přístup k našim stávajícím databázovým serverům. Poté zadáme přístupové údaje do naší databáze, datový adresář serveru a verzi. Přidáme uzly podle IP nebo názvu hostitele stejným způsobem jako při nasazení a stiskneme Importovat. Po dokončení úkolu jsme připraveni spravovat náš cluster z ClusterControl. V tomto okamžiku můžeme také definovat možnosti pro automatickou obnovu uzlu nebo clusteru.
ClusterControl:Import existujícího databázového clusteru 10.3Škálování MariaDB, přidání dalších uzlů do clusteru DB
S ClusterControl je přidání dalších serverů na server snadným krokem. Můžete to udělat z GUI nebo CLI. Pro pokročilejší uživatele můžete použít ClusterControl Developer Studio a napsat základní podmínku zdrojů pro automatické rozšíření vašeho clusteru.
ClusterControl:Přidání MariaDB NodeClusterControl podporuje možnost použití stávající zálohy, takže není potřeba zahlcovat hlavní produkční uzel další prací.
Zabezpečení MariaDB
Výchozí instalace MariaDB přichází s uvolněným zabezpečením. To bylo vylepšeno s posledními verzemi, ale produkční systémy stále vyžadují vylepšení ve výchozí konfiguraci my.cnf. Nasazení ClusterControl přicházejí s jiným než výchozím nastavením my.cnf (pro různé typy clusterů se liší).
ClusterControl odstraňuje lidskou chybu a poskytuje přístup k sadě bezpečnostních funkcí, které automaticky chrání vaše databáze před hackery a jinými hrozbami.
ClusterControl:Panel zabezpečeníClusterControl umožňuje podporu SSL pro připojení MariaDB. Povolení SSL přidává další úroveň zabezpečení pro komunikaci mezi aplikacemi (včetně ClusterControl) a databází. Klienti MariaDB otevírají šifrovaná připojení k databázovým serverům a ověřují identitu těchto serverů před přenosem jakýchkoli citlivých informací.
ClusterControl provede všechny potřebné kroky, včetně vytvoření certifikátů na všech databázových uzlech. Takové certifikáty lze později udržovat na kartě Správa klíčů.
Pomocí ClusterControl můžete také povolit auditování. Používá auditní plugin poskytovaný MariaDB. Nepřetržitý audit je nezbytným úkolem pro monitorování vašeho databázového prostředí. Auditováním databáze můžete dosáhnout odpovědnosti za provedené akce nebo přístup k obsahu. Kromě toho může audit zahrnovat některé kritické systémové komponenty, jako jsou ty, které jsou spojené s finančními údaji, aby podpořily přesný soubor předpisů, jako je SOX nebo nařízení EU GDPR. Řízený proces vám umožňuje vybrat, co by mělo být auditováno a jak udržovat soubory protokolu auditu.
Monitorování a upozornění
Při práci s databázovými systémy byste měli být schopni je monitorovat. To vám umožní identifikovat trendy, plánovat upgrady nebo vylepšení nebo efektivně reagovat na jakékoli problémy nebo chyby, které mohou nastat.
ClusterControl:PřehledNový ClusterControl používá Prometheus jako úložiště dat s dotazovacím jazykem PromQL. Seznam dashboardů zahrnuje Server General, Server Caches, InnoDB Metrics, Replication Master, Replication Slave, System Overview a Cluster Overview Dashboards.
ClusterControl:DashBoardClusterControl instaluje agenty Prometheus, konfiguruje metriky a udržuje přístup ke konfiguraci exportérů Prometheus prostřednictvím svého GUI, takže můžete lépe spravovat konfiguraci parametrů, jako jsou příznaky kolektoru pro exportéry (Prometheus).
Jako provozovatel databáze potřebujeme být informováni, kdykoli se v naší databázi vyskytne něco kritického. Mezi tři hlavní metody v ClusterControl pro získání výstrahy patří:
- e-mailová upozornění
- integrace
- poradci
E-mailová upozornění můžete nastavit na uživatelské úrovni. Přejděte do Nastavení> E-mailová upozornění. Kde si můžete vybrat mezi kritičností a typem upozornění, které se má odeslat.
Další metodou je použití integračních služeb. Jde o předání konkrétní kategorie událostí jiné službě, jako jsou vstupenky ServiceNow, Slack, PagerDuty atd., abyste mohli vytvářet pokročilé způsoby oznamování a integrace v rámci vaší organizace.
Poslední možností je zapojit sofistikovanou analýzu metrik do sekce Poradce, kde můžete vytvářet inteligentní kontroly a spouštěče.
ClusterControl:PoradciSledování SQL
SQL Monitoring je rozdělen do tří sekcí.
- Nejčastější dotazy - uvádí informace o dotazech, které zabírají značnou část zdrojů. Monitor dotazů:Nejčastější dotazy
- Spouštění dotazů - je to procesní seznam informací kombinovaných ze všech uzlů databázového clusteru do jednoho pohledu. Můžete to použít k ukončení dotazů, které ovlivňují vaše databázové operace. Monitor dotazů:Spouštění dotazů
- Odlehlé hodnoty dotazu - prezentovat seznam dotazů s delší než průměrnou dobou provedení. Monitor dotazů:Odlehlé hodnoty dotazů
Zálohování a obnovení
Nyní, když máte MariaDB v provozu a máte své monitorování na místě, je čas na další krok:zajistěte si zálohu vašich dat.
ClusterControl:Úložiště zálohClusterControl poskytuje rozhraní pro správu zálohování MariaDB s podporou plánování a kreativních sestav. Poskytuje vám dvě možnosti metod zálohování.
- Logická záloha (text):mysqldump
- Binární zálohy:xtrabackup (nižší verze), mariabackup
Dobrá strategie zálohování je kritickou součástí každého systému správy databází. ClusterControl nabízí mnoho možností pro zálohování a obnovu/obnovu.
Uchovávání záloh ClusterControl je konfigurovatelné; můžete si vybrat, zda chcete zálohu uchovat na jakékoli časové období nebo nikdy zálohy neodstranit. Šifrování AES256 se používá k zabezpečení vašich záloh proti podvodným prvkům. Pro rychlou obnovu lze zálohy obnovit přímo do nového clusteru – ClusterControl se postará o celý proces obnovy od spuštění nového nastavení databáze až po obnovu dat, přičemž z procesu odstraní manuální kroky náchylné k chybám.
Zálohy lze po dokončení automaticky ověřit a poté nahrát do služeb cloudového úložiště (AWS, Azure a Google). Pro místní zálohy v datovém centru i pro zálohy, které se nahrávají do cloudu, lze definovat různé zásady uchovávání.
Automatické obnovení uzlu a clusteru
ClusterControl poskytuje pokročilou podporu pro detekci a řešení poruch. Umožňuje vám také nasadit různé proxy a integrovat je do vašeho zásobníku HA, takže není třeba upravovat připojovací řetězec aplikace nebo záznam DNS pro přesměrování aplikace na nový hlavní uzel.
Když je hlavní server mimo provoz, ClusterControl vytvoří úlohu, která provede automatické převzetí služeb při selhání. ClusterControl provádí veškerou práci na pozadí při výběru nového hlavního serveru, nasazení podřízených serverů s přepnutím při selhání a konfiguraci nástrojů pro vyrovnávání zátěže.
Automatické převzetí služeb při selhání ClusterControl bylo navrženo s následujícími principy:
- Před převzetím služeb při selhání se ujistěte, že je hlavní server skutečně mrtvý
- Přechod při selhání pouze jednou
- Nepřebírejte na nekonzistentní slave
- Pište pouze hlavnímu serveru
- Neobnovujte automaticky neúspěšnou hlavní stránku
Díky vestavěným algoritmům lze převzetí služeb při selhání často provést velmi rychle, takže si můžete zajistit nejvyšší SLA pro vaše databázové prostředí.
ClusterControl:Automatické obnoveníProces je vysoce konfigurovatelný. Dodává se s několika parametry, které můžete použít k přizpůsobení obnovy specifikům vašeho prostředí. Mezi různými možnostmi můžete najít replication_stop_on_error, replication_auto_rebuild_slave, replication_failover_blacklist, replication_failover_whitelist, replication_skip_apply_missing_txs, replication_onfail_failover_script a mnoho dalších.
Přepnutí při selhání je proces přechodu do normálního pohotovostního režimu během selhání nebo události údržby, aby se zachovala doba provozuschopnosti. Čím rychleji to lze provést, tím rychleji můžete být zpět online. Pokud hledáte způsob, jak minimalizovat prostoje a plnit své smlouvy SLA prostřednictvím automatizovaného přístupu pro TimescaleDB, pak je tento blog pro vás.
MaxScale Load Balancer
Kromě MariaDB 10.3 přidává ClusterControl možnost vyvažování zátěže MaxScale 2.3. MaxScale je SQL-aware proxy, kterou lze použít k vytvoření vysoce dostupných prostředí. Dodává se s mnoha funkcemi, ale hlavním cílem je umožnit vyrovnávání zátěže a vysokou dostupnost.
ClusterControl:MaxScaleMaxScale lze použít ke sledování stavu hlavního uzlu MariaDB a v případě, že selže, provést rychlé automatické převzetí služeb při selhání. Automatizované převzetí služeb při selhání je klíčové při vytváření vysoce dostupného řešení, které se dokáže po selhání rychle zotavit.
Relace databáze zůstatku zatížení
Rozdělení čtení a zápisu je kritickou funkcí umožňující škálování čtení. Stačí, aby se aplikace připojila k MaxScale a ta detekuje topologii, určí, která MariaDB funguje jako master a která jako slave. Podle toho směruje provoz.
Shrnutí
Doufáme, že vám tento blog pomůže seznámit se s administračními moduly ClusterControl a MariaDB 10.3. Nejlepší možností je stáhnout si ClusterControl a otestovat každý z nich.