MariaDB Server er ikke længere en direkte efterligning af MySQL. Det voksede til en moden gaffel, som implementerer nye funktionaliteter svarende til, hvad proprietære databasesystemer tilbyder i upstream. MariaDB 10.3 udvider i høj grad listen over virksomhedsfunktioner, og med den nye SQL_MODE=bliver Oracle et spændende valg for virksomheder, der gerne vil migrere deres Oracle-databaser til en open source-database. Operationel ledelse er dog et område, hvor der stadig er lidt at komme efter, og MariaDB kræver, at du bygger dine egne scripts.
Måske en god mulighed for at se nærmere på et automatiseringssystem?
Automatiserede procedurer er nøjagtige og konsistente. De kan give dig tiltrængt repeterbarhed, så du kan minimere risikoen for ændringer i produktionssystemerne. Men da moderne open source-databaser udvikler sig så hurtigt, er det mere udfordrende at holde dine administrationssystemer på niveau med alle nye funktioner.
Det naturlige næste skridt er at lede efter automatiseringsplatforme. Der er mange platforme, som du kan bruge til at implementere systemer. Puppet, Chef og Ansible er nok de bedste eksempler på den nye trend. Disse platforme er velegnede til hurtig implementering af forskellige softwaretjenester. De er perfekte til implementeringer, men kræver stadig, at du vedligeholder koden, dækker funktionsændringer, og normalt dækker de kun ét aspekt af dit arbejde. Ting som sikkerhedskopiering, ydeevne og vedligeholdelse kræver stadig eksterne værktøjer eller scripts.
På den anden side har vi cloud-platforme med polerede grænseflader og en række yderligere tjenester for en fuldt administreret oplevelse. Det kan dog ikke lade sig gøre; for eksempel hybridmiljøer, hvor du måske bruger skyen, men med stadig et betydeligt on-prem-fodaftryk.
Så hvad med et dedikeret administrationslag til dine MariaDB-databaser?
ClusterControl blev designet til at automatisere udrulningen og administrationen af MariaDB samt andre open source-databaser. Kernen i ClusterControl er funktionalitet, der lader dig automatisere de databaseopgaver, du skal udføre regelmæssigt, såsom implementering af nye databaseforekomster og klynger, administration af sikkerhedskopier, høj tilgængelighed og failover, topologiændringer, opgraderinger, skalering af nye noder og mere.
ClusterControl-installation
For at starte med ClusterControl skal du bruge en dedikeret virtuel maskine eller vært. Kravene til VM og understøttede systemer er beskrevet her. Som minimum kan du starte fra lille VM 2 GB RAM, 2 CPU-kerner og 20 GB lagerplads, enten on-prem eller i skyen.
Den primære installationsmetode er at downloade en installationsguide, der leder dig gennem alle trinene (OS-konfiguration, pakkedownload og installation, oprettelse af metadata og andre).
For miljøer uden internetadgang kan du bruge offline installationsprocessen.
ClusterControl er agentfri, så du behøver ikke installere yderligere software. Det kræver kun SSH-adgang til databaseværterne. Det understøtter også agentbaseret overvågning for overvågningsdata med højere opløsning.
For at konfigurere adgangskodefri SSH til alle målnoder (ClusterControl og alle databaseværter), skal du køre følgende kommandoer på ClusterControl-serveren:
$ 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
En af de mest bekvemme måder at prøve klyngekontrol på, måske muligheden for at køre den i docker-container.
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
Efter vellykket implementering bør du være i stand til at få adgang til ClusterControl Web UI på {host's IP address}:{host's port}, for eksempel:
HTTP: http://192.168.10.100:5000/clustercontrol
HTTPS: https://192.168.10.100:5001/clustercontrol
Installation af MariaDB Cluster
Når vi kommer ind i ClusterControl-grænsefladen, er den første ting at gøre at implementere en ny database eller importere en eksisterende. Version 1.7.2 introducerede understøttelse af version 10.3 (sammen med 10.0,10.1,10.2). I 1.7.3, som blev udgivet i denne uge, kan vi se den forbedrede udrulning af installation i skyen.
ClusterControl:Implementer/ImportérPå tidspunktet for skrivning af denne blog er de aktuelle versioner 10.3.16. Seneste pakker afhentes som standard. Vælg indstillingen "Deploy Database Cluster", og følg instruktionerne, der vises.
Nu er det tid til at levere de nødvendige data til forbindelsen mellem ClusterControl og DB-noder. På dette trin ville du have rene VM'er eller billeder af OS, som du bruger i din organisation. Når vi vælger MariaDB, skal vi angive bruger, nøgle eller adgangskode og port for at forbinde med SSH til vores servere.
ClusterControl:Implementer databaseklyngeEfter at have konfigureret SSH-adgangsoplysningerne, skal vi indtaste dataene for at få adgang til vores database, for MariaDB vil det være superbrugerroden. Vi kan også angive, hvilket lager der skal bruges. Du kan have tre typer repositories, når du implementerer databaseserver/klynge ved hjælp af ClusterControl:
- Brug Leverandørlager. Levering af software ved at opsætte og bruge databaseleverandørens foretrukne softwarelager. ClusterControl installerer den seneste version af det, der leveres af databaseleverandørens lager.
- Opsæt ikke leverandørlagre. ClusterControl sætter ingen lagre op. ClusterControl vil stole på systemkonfigurationen (dine standardlagerfiler).
- Opret og spejle den aktuelle databaseleverandørs lager og implementer derefter ved hjælp af det lokale spejlede lager. Dette giver dig mulighed for at "fryse" de aktuelle versioner af softwarepakkerne.
Når alt er indstillet, skal du trykke på deploy-knappen. Implementeringsprocessen vil også tage sig af installationen af yderligere værktøjer leveret af MariaDB såsom mariabackup og værktøjer fra eksterne leverandører, populære i databaseadministration.
Importer en ny klynge
Vi har også mulighed for at administrere en eksisterende opsætning ved at importere den til ClusterControl. Et sådant miljø kan skabes med ClusterControl eller andre metoder (dukke, kok, ansible, docker …). Processen er enkel og kræver ikke specialviden.
Først skal vi indtaste SSH-adgangsoplysningerne til vores eksisterende databaseservere. Derefter indtaster vi adgangsoplysningerne til vores database, serverdatabiblioteket og versionen. Vi tilføjer noderne efter IP eller værtsnavn, på samme måde som når vi implementerer, og trykker på Importer. Når opgaven er færdig, er vi klar til at administrere vores klynge fra ClusterControl. På dette tidspunkt kan vi også definere mulighederne for den automatiske gendannelse af noden eller klyngen.
ClusterControl:Importer eksisterende 10.3 databaseklyngeSkalering af MariaDB, tilføjelse af flere noder til DB-klynge
Med ClusterControl er det et nemt trin at tilføje flere servere til serveren. Du kan gøre det fra GUI eller CLI. For mere avancerede brugere kan du bruge ClusterControl Developer Studio og skrive en ressourcebasebetingelse for automatisk at udvide din klynge.
ClusterControl:Tilføjelse af MariaDB-nodeClusterControl understøtter en mulighed for at bruge en eksisterende backup, så der er ingen grund til at overvælde produktionsmasterknudepunktet med yderligere arbejde.
Sikring af MariaDB
Standard MariaDB-installationen kommer med afslappet sikkerhed. Dette er blevet forbedret med de seneste versioner, men produktionssystemer kræver stadig justeringer i standard my.cnf-konfigurationen. ClusterControl-implementeringer leveres med ikke-standardindstillinger for my.cnf (forskellige for forskellige klyngetyper).
ClusterControl fjerner menneskelige fejl og giver adgang til en række sikkerhedsfunktioner for automatisk at beskytte dine databaser mod hacks og andre trusler.
ClusterControl:SikkerhedspanelClusterControl muliggør SSL-understøttelse af MariaDB-forbindelser. Aktivering af SSL tilføjer endnu et sikkerhedsniveau for kommunikation mellem applikationerne (inklusive ClusterControl) og databasen. MariaDB-klienter åbner krypterede forbindelser til databaseserverne og bekræfter identiteten af disse servere, før de overfører følsomme oplysninger.
ClusterControl vil udføre alle nødvendige trin, herunder oprettelse af certifikater på alle databasenoder. Sådanne certifikater kan vedligeholdes senere på fanen Nøglestyring.
Med ClusterControl kan du også aktivere revision. Det bruger revisions-plugin'et leveret af MariaDB. Kontinuerlig revision er en bydende opgave for at overvåge dit databasemiljø. Ved at revidere din database kan du opnå ansvarlighed for handlinger, der er foretaget, eller adgang til indhold. Desuden kan revisionen omfatte nogle kritiske systemkomponenter, såsom dem, der er forbundet med finansielle data for at understøtte et præcist sæt af regler som SOX eller EU's GDPR-forordning. Den guidede proces lader dig vælge, hvad der skal revideres, og hvordan du vedligeholder revisionslogfilerne.
Overvågning og alarmering
Når du arbejder med databasesystemer, bør du være i stand til at overvåge dem. Det vil gøre dig i stand til at identificere tendenser, planlægge opgraderinger eller forbedringer eller reagere effektivt på eventuelle problemer eller fejl, der måtte opstå.
ClusterControl:OversigtDen nye ClusterControl bruger Prometheus som datalageret med PromQL forespørgselssprog. Listen over dashboards inkluderer Server General, Server Caches, InnoDB Metrics, Replication Master, Repplication Slave, System Overview og Cluster Overview Dashboards.
ClusterControl:DashBoardClusterControl installerer Prometheus-agenter, konfigurerer metrikker og bevarer adgang til Prometheus-eksportørers konfiguration via dens GUI, så du bedre kan administrere parameterkonfiguration som samlerflag for eksportørerne (Prometheus).
Som databaseoperatør skal vi informeres, når der sker noget kritisk i vores database. De tre vigtigste metoder i ClusterControl til at få en advarsel omfatter:
- e-mail-meddelelser
- integrationer
- rådgivere
Du kan indstille e-mailmeddelelserne på brugerniveau. Gå til Indstillinger> E-mail-meddelelser. Hvor du kan vælge mellem kritikalitet og type advarsel, der skal sendes.
Den næste metode er at bruge integrationstjenesterne. Dette er for at videregive den specifikke kategori af begivenheder til den anden tjeneste som ServiceNow-billetter, Slack, PagerDuty osv., så du kan oprette avancerede notifikationsmetoder og integrationer i din organisation.
Den sidste er at involvere sofistikeret metrisk analyse i Advisor-sektionen, hvor du kan bygge intelligente checks og triggere.
ClusterControl:AdvisorsSQL-overvågning
SQL-overvågningen er opdelt i tre sektioner.
- Topforespørgsler - præsenterer oplysningerne om forespørgsler, der kræver en betydelig del af ressourcerne. Forespørgselsovervågning:Topforespørgsler
- Kørende forespørgsler - det er en procesliste med information kombineret fra alle databaseklyndeknuder i én visning. Du kan bruge det til at dræbe forespørgsler, der påvirker dine databaseoperationer. Forespørgselsovervågning:Kørende forespørgsler
- Forespørgselsudlignere - præsentere listen over forespørgsler med udførelsestid længere end gennemsnittet. Query Monitor:Query Outliers
Sikkerhedskopiering og gendannelse
Nu hvor du har din MariaDB oppe at køre og har din overvågning på plads, er det tid til næste trin:Sørg for, at du har en sikkerhedskopi af dine data.
ClusterControl:Backup repositoryClusterControl giver en grænseflade til MariaDB backup management med understøttelse af planlægning og kreative rapporter. Det giver dig to muligheder for sikkerhedskopieringsmetoder.
- Logisk backup (tekst):mysqldump
- Binære sikkerhedskopier:xtrabackup (lavere versioner), mariabackup
En god backup-strategi er en kritisk del af ethvert databasestyringssystem. ClusterControl tilbyder mange muligheder for sikkerhedskopiering og gendannelse/gendannelse.
ClusterControl sikkerhedskopiering kan konfigureres; du kan vælge at beholde din sikkerhedskopi i en hvilken som helst periode eller aldrig at slette sikkerhedskopier. AES256-kryptering bruges til at sikre dine sikkerhedskopier mod useriøse elementer. For hurtig gendannelse kan sikkerhedskopier gendannes direkte i en ny klynge - ClusterControl håndterer hele gendannelsesprocessen fra lanceringen af en ny databaseopsætning til gendannelsen af data, og fjerner fejludsatte manuelle trin fra processen.
Sikkerhedskopier kan automatisk verificeres efter færdiggørelse og derefter uploades til cloud storage-tjenester (AWS, Azure og Google). Der kan defineres forskellige opbevaringspolitikker for lokale sikkerhedskopier i datacentret samt sikkerhedskopier, der uploades i skyen.
Automatisk gendannelse af node og klynge
ClusterControl giver avanceret support til fejlregistrering og håndtering. Det giver dig også mulighed for at implementere forskellige proxyer for at integrere dem med din HA-stak, så der er ingen grund til at justere applikationsforbindelsesstreng eller DNS-indgang for at omdirigere applikationen til den nye masterknude.
Når masterserveren er nede, vil ClusterControl oprette et job for at udføre automatisk failover. ClusterControl udfører alt baggrundsarbejdet for at vælge en ny master, implementere failover-slaveservere og konfigurere belastningsbalancere.
ClusterControl automatisk failover blev designet med følgende principper:
- Sørg for, at masteren virkelig er død, før du failover
- Failover kun én gang
- Undgå failover til en inkonsekvent slave
- Skriv kun til masteren
- Gendan ikke automatisk den mislykkede master
Med de indbyggede algoritmer kan failover ofte udføres ret hurtigt, så du kan sikre de højeste SLA'er for dit databasemiljø.
ClusterControl:AutogendannelseProcessen er meget konfigurerbar. Den kommer med flere parametre, som du kan bruge til at tilpasse gendannelse til dit miljøs specifikationer. Blandt de forskellige muligheder kan du finde replication_stop_on_error, replication_auto_rebuild_slave, replication_failover_blacklist, replication_failover_whitelist, replication_skip_apply_missing_txs, replication_onfail_failover_script og mange andre.
Failover er processen med at flytte til en sund standby-komponent under en fejl- eller vedligeholdelseshændelse for at bevare oppetiden. Jo hurtigere det kan gøres, jo hurtigere kan du være online igen. Hvis du ser på at minimere nedetid og opfylde dine SLA'er gennem en automatiseret tilgang til TimescaleDB, så er denne blog noget for dig.
MaxScale Load Balancer
Ud over MariaDB 10.3 tilføjer ClusterControl en mulighed for MaxScale 2.3 load balancer. MaxScale er en SQL-bevidst proxy, der kan bruges til at bygge højt tilgængelige miljøer. Den kommer med adskillige funktioner, men hovedmålet er at muliggøre belastningsbalancering og høj tilgængelighed.
ClusterControl:MaxScaleMaxScale kan bruges til at spore sundheden for master MariaDB-knuden og, hvis den fejler, udføre en hurtig, automatisk failover. Automatiseret failover er afgørende for at opbygge en meget tilgængelig løsning, der kan komme sig hurtigt fra fejlen.
Load Balance Databasesessioner
Læse-skrive-opdeling er en kritisk funktion for at tillade læseskalering. Det er nok for applikationen at oprette forbindelse til MaxScale, og den registrerer topologien, bestemmer hvilken MariaDB der fungerer som en mester, og hvilken der fungerer som slaver. Den dirigerer trafikken i overensstemmelse hermed.
Oversigt
Vi håber, at denne blog hjælper dig med at blive fortrolig med ClusterControl og MariaDB 10.3 administrationsmoduler. Den bedste mulighed er at downloade ClusterControl og teste hver af dem.