sql >> Databasteknik >  >> RDS >> Mysql

Övervakning &Ops Management av MySQL 8.0 med ClusterControl

Användare av databaser med öppen källkod måste ofta använda en blandning av verktyg och egenutvecklade skript för att hantera sina produktionsdatabasmiljöer. Men även om man har egna egenutvecklade skript i lösningen är det svårt att underhålla det och hålla jämna steg med nya databasfunktioner, säkerhetskrav eller uppgraderingar. Med nya större versioner av en databas, inklusive MySQL 8.0, kan denna uppgift bli ännu svårare.

Hjärtat i ClusterControl är dess automatiseringsfunktion som låter dig automatisera de databasuppgifter du måste utföra regelbundet, som att distribuera nya databaser, lägga till och skala nya noder, hantera säkerhetskopior, hög tillgänglighet och failover, topologiändringar, uppgraderingar och mer. Automatiserade procedurer är korrekta, konsekventa och repeterbara så att du kan minimera risken för förändringar i produktionsmiljöerna.

Dessutom, med ClusterControl är MySQL-användare inte längre föremål för leverantörslåsning; något som ifrågasattes av många nyligen. Du kan distribuera och importera en mängd olika MySQL-versioner och leverantörer från en enda konsol gratis.

I den här artikeln kommer vi att visa dig hur du distribuerar MySQL 8.0 med en stridstestad konfiguration och hanterar den på ett automatiserat sätt. Här hittar du hur du gör:

  • ClusterControl-installation
  • MySQL-distributionsprocess
    • Distribuera ett nytt kluster
    • Importera befintligt kluster
  • Skala MySQL
  • Säker MySQL
  • Övervakning och trend
  • Säkerhetskopiering och återställning
  • Autoåterställning av nod och kluster (automatisk failover)

ClusterControl-installation

För att börja med ClusterControl behöver du en dedikerad virtuell maskin eller värd. Kraven på virtuella datorer och system som stöds beskrivs här. Den virtuella basen kan börja från 2 GB, 2 kärnor och diskutrymme 20 GB lagringsutrymme, antingen on-prem eller i molnet.

Installationen är väl beskriven i dokumentationen men i princip laddar du ner ett installationsskript som leder dig genom stegen. Guidens skript ställer in den interna databasen, installerar nödvändiga paket, förråd och andra nödvändiga justeringar. För miljöer utan internetåtkomst kan du använda offlineinstallationsprocessen.

ClusterControl kräver SSH-åtkomst till databasvärdarna, och övervakningen kan vara agentbaserad eller agentlös. Ledningen är agentlös.

För att ställa in lösenordslös SSH till alla målnoder (ClusterControl och alla databasvärdar), kör följande kommandon på ClusterControl-servern:

$ 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

Ett av de mest bekväma sätten att prova klusterkontroll kanske alternativet att köra det 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 framgångsrik implementering bör du kunna komma åt ClusterControl Web UI på {värdens IP-adress}:{värdens port}, till exempel:

HTTP: http://192.168.10.100:5000/clustercontrol
HTTPS: https://192.168.10.100:5001/clustercontrol

Implementering och skalning

Distribuera MySQL 8.0

När vi väl går in i ClusterControl-gränssnittet är det första vi ska göra att distribuera en ny databas eller importera en befintlig. Den nya versionen 1.7.2 introducerar stöd för version 8.0 av Oracle Community Edition och Percona Server. När jag skriver denna blogg är de aktuella versionerna Oracle MySQL Server 8.0.15 och Percona Server för MySQL 8.0-15. Välj alternativet "Distribuera databaskluster ” och följ instruktionerna som visas.

ClusterControl:Distribuera databaskluster

När vi väljer MySQL måste vi ange Användare, Nyckel eller Lösenord och port för att ansluta med SSH till våra servrar. Vi behöver också ett namn för vårt nya kluster och om vi vill att ClusterControl ska installera motsvarande programvara och konfigurationer åt oss.

Efter att ha ställt in SSH-åtkomstinformationen måste vi ange uppgifterna för att komma åt vår databas. Vi kan också specificera vilket arkiv som ska användas. Lagringskonfiguration är en viktig aspekt för databasservrar och kluster. Du kan ha tre typer av arkiv när du distribuerar databasserver/kluster med ClusterControl:

  • Använd leverantörsarkiv
    Tillhandahåll programvara genom att ställa in och använda databasleverantörens föredragna programvarulager. ClusterControl kommer att installera den senaste versionen av det som tillhandahålls av databasleverantörens arkiv.
  • Konfigurera inte leverantörsförråd
    Tillhandahåll programvara genom att använda det redan existerande programvaruförrådet som redan är inställt på noderna. Användaren måste ställa in programvaruförrådet manuellt på varje databasnod och ClusterControl kommer att använda detta förvaret för distribution. Detta är bra om databasnoderna körs utan internetanslutning.
  • Använd speglade arkiv (Skapa nytt arkiv)
    Skapa och spegla den aktuella databasleverantörens arkiv och distribuera sedan med det lokala speglade arkivet. Detta låter dig "frysa" de aktuella versionerna av programpaketen.

I nästa steg måste vi lägga till våra servrar i klustret som vi ska skapa. När vi lägger till våra servrar kan vi ange IP eller värdnamn och sedan välja nätverksgränssnitt. För det senare måste vi ha en DNS-server eller ha lagt till våra MySQL-servrar till den lokala upplösningsfilen (/etc/hosts) i vår ClusterControl, så att den kan lösa motsvarande namn som du vill lägga till.

På skärmen kan vi se ett exempel på driftsättning med en master- och två slavservrar. Serverlistan är dynamisk och låter dig skapa sofistikerade topologier som kan utökas efter den första installationen.

ClusterControl:Definiera topologi

När allt är klart, tryck på distribuera-knappen. Du kan övervaka statusen för skapandet av vår nya replikeringsinställning från ClusterControl-aktivitetsmonitorn. Implementeringsprocessen kommer också att ta hand om installationen av populära mysql-verktyg som percona toolkit och percona-xtradb-backup.

ClusterControl:Distribuera klusterinformation

När uppgiften är klar kan vi se vårt kluster på huvudskärmen för ClusterControl och i topologivyn. Observera att vi även har lagt till en lastbalanserare (ProxySQL) framför databasinstanserna.

ClusterControl:Topologi

Som vi kan se på bilden, när vi väl har skapat vårt kluster, kan vi utföra flera uppgifter på det, direkt från topologisektionen.

ClusterControl:Topology Management

Importera ett nytt kluster

Vi har också möjlighet att hantera en befintlig installation genom att importera den till ClusterControl. En sådan miljö kan skapas med ClusterControl eller andra metoder (docka, kock, ansible, hamnarbetare …). Processen är enkel och kräver ingen specialkunskap.

ClusterControl:Importera befintligt kluster

Först måste vi ange SSH-åtkomstuppgifterna till våra servrar. Sedan anger vi åtkomstuppgifterna till vår databas, serverdatakatalogen och versionen. Vi lägger till noderna efter IP eller värdnamn, på samma sätt som när vi distribuerar, och trycker på Importera. När uppgiften är klar är vi redo att hantera vårt kluster från ClusterControl. Vid det här laget kan vi också definiera alternativen för automatisk återställning av noder eller kluster.

Skala MySQL

Med ClusterControl är det ett enkelt steg att lägga till fler servrar till servern. Du kan göra det från GUI eller CLI. För mer avancerade användare kan du använda ClusterControl Developer Studio och skriva ett resursbasvillkor för att utöka ditt kluster automatiskt.

När du lägger till en ny nod till installationen har du möjlighet att använda befintlig backup så att du inte behöver överväldiga produktionshuvudnoden med ytterligare arbete.

ClusterControl Scaling MySQL

Med det inbyggda stödet för lastbalanserare (ProxySQL, Maxscale, HAProxy) kan du lägga till och ta bort MySQL-noder dynamiskt. Om du vill veta mer på djupet om hur man bäst hanterar MySQL-replikering och -klustring, läs MySQL-replikeringen för HA-replikering whitepaper.

Säkra MySQL

MySQL kommer med väldigt lite säkerhet ur lådan. Detta har förbättrats med den senaste versionen, men produktionskvalitetssystem kräver fortfarande tweeks i standardkonfigurationen my.cnf.

ClusterControl tar bort mänskliga fel och ger tillgång till en uppsättning säkerhetsfunktioner, för att automatiskt skydda dina databaser från hack och andra hot.

ClusterControl möjliggör SSL-stöd för MySQL-anslutningar. Aktivering av SSL lägger till ytterligare en säkerhetsnivå för kommunikation mellan applikationerna (inklusive ClusterControl) och databasen. MySQL-klienter öppnar krypterade anslutningar till databasservrarna och verifierar identiteten för dessa servrar innan känslig information överförs.

ClusterControl kommer att utföra alla nödvändiga steg, inklusive att skapa certifikat på alla databasnoder. Sådana certifikat kan underhållas senare på fliken Nyckelhantering.

ClusterControl:Manager SSL-nycklar

Perconas serverinstallationer kommer med ytterligare stöd för en granskningsplugin. Kontinuerlig granskning är en absolut nödvändig uppgift för att övervaka din databasmiljö. Genom att granska din databas kan du ta ansvar för vidtagna åtgärder eller åtkomst till innehåll. Dessutom kan revisionen inkludera några kritiska systemkomponenter, till exempel de som är kopplade till finansiell data för att stödja en exakt uppsättning förordningar som SOX eller EU:s GDPR-förordning. Den guidade processen låter dig välja vad som ska granskas och hur granskningsloggfilerna ska underhållas.

ClusterControl:Aktivera revisionslogg för Percona Server 8.0

Övervakning

När du arbetar med databassystem bör du kunna övervaka dem. Det gör att du kan identifiera trender, planera för uppgraderingar eller förbättringar eller reagera effektivt på eventuella problem eller fel som kan uppstå.

Den nya ClusterControl 1.7.2 kommer med uppdaterad högupplöst övervakning för MySQL 8.0. Den använder Prometheus som datalager med PromQL frågespråk. Listan över instrumentpaneler inkluderar MySQL Server General, MySQL Server Cache, MySQL InnoDB Metrics, MySQL Replication Master, MySQL Repplication Slave, System Overview och Cluster Overview Dashboards.

ClusterControl installerar Prometheus-agenter, konfigurerar mätvärden och upprätthåller åtkomst till Prometheus exportörers konfiguration via dess GUI, så att du bättre kan hantera parameterkonfiguration som samlarflaggor för exportörerna (Prometheus). Vi beskrev i detalj vad som kan övervakas nyligen i artikeln How to Monitor MySQL with Prometheus &ClusterControl.

ClusterControl:Dashboard

Larmning

Som databasoperatör måste vi informeras när något kritiskt inträffar i vår databas. De tre huvudsakliga metoderna i ClusterControl för att få en varning inkluderar:

  • e-postmeddelanden
  • integrationer
  • rådgivare

Du kan ställa in e-postmeddelanden på användarnivå. Gå till Inställningar> E-postmeddelanden . Där du kan välja mellan kritik och typ av varning som ska skickas.

ClusterControl:Meddelande

Nästa metod är att använda integrationstjänster. Detta för att skicka den specifika kategorin av evenemang till den andra tjänsten som ServiceNow-biljetter, Slack, PagerDuty etc. så att du kan skapa avancerade aviseringsmetoder och integrationer inom din organisation.

ClusterControl:Integration

Den sista är att involvera sofistikerad mätetalanalys i Advisorsektionen, där du kan bygga intelligenta kontroller och triggers.

ClusterControl:Automatic Advisors

Säkerhetskopiering och återställning

Nu när du har din MySQL igång och har din övervakning på plats är det dags för nästa steg:se till att du har en säkerhetskopia av dina data.

ClusterControl:Skapa säkerhetskopia

ClusterControl tillhandahåller ett gränssnitt för MySQL-säkerhetskopiering med stöd för schemaläggning och kreativa rapporter. Det ger dig två alternativ för säkerhetskopieringsmetoder.

  • Logiskt:mysqldump
  • Binär:xtrabackup/mariabackup
ClusterControl:Skapa säkerhetskopieringsalternativ

En bra säkerhetskopieringsstrategi är en kritisk del av alla databashanteringssystem. ClusterControl erbjuder många alternativ för säkerhetskopiering och återställning/återställning.

ClusterControl:Säkerhetskopieringsschema och säkerhetskopieringsarkiv

ClusterControl-säkerhetskopiering kan konfigureras; du kan välja att behålla din säkerhetskopia under vilken tidsperiod som helst eller att aldrig ta bort säkerhetskopior. AES256-kryptering används för att säkra dina säkerhetskopior mot oseriösa element. För snabb återställning kan säkerhetskopior återställas direkt till ett nytt kluster - ClusterControl hanterar hela återställningsprocessen från lansering av en ny databasinstallation till återställning av data, och tar bort felbenägna manuella steg från processen.

Säkerhetskopieringar kan automatiskt verifieras när de är klara och sedan laddas upp till molnlagringstjänster (AWS, Azure och Google). Olika lagringspolicyer kan definieras för lokala säkerhetskopior i datacentret samt säkerhetskopior som laddas upp i molnet.

Autoåterställning av nod och kluster

ClusterControl ger avancerat stöd för feldetektering och hantering. Det låter dig också distribuera olika proxyservrar för att integrera dem med din HA-stack så att du inte behöver justera applikationens anslutningssträng eller DNS-post för att omdirigera applikationen till den nya huvudnoden.

När huvudservern är nere kommer ClusterControl att skapa ett jobb för att utföra automatisk failover. ClusterControl gör allt bakgrundsarbete för att välja en ny master, distribuera fail-over-slavservrar och konfigurera lastbalanserare.

ClusterControl:Autoåterställning av nod

ClusterControls automatiska failover utformades med följande principer:

  • Se till att mastern verkligen är död innan du failover
  • Filover endast en gång
  • Failover inte till en inkonsekvent slav
  • Skriv bara till mastern
  • Återställ inte den misslyckade mastern automatiskt

Med de inbyggda algoritmerna kan failover ofta utföras ganska snabbt så att du kan säkerställa de högsta SLA:erna för din databasmiljö.

Processen är mycket konfigurerbar. Den levereras med flera parametrar som du kan använda för att anpassa återställningen till din miljös specifikationer. Bland de olika alternativen kan du hitta replication_stop_on_error, replication_auto_rebuild_slave, replication_failover_blacklist, replication_failover_whitelist, replication_skip_apply_missing_txs, replication_onfail_failover_script och många andra.


  1. Vad betyder ett (+)-tecken i en Oracle SQL WHERE-sats?

  2. Övervakning &Ops Management av MySQL 8.0 med ClusterControl

  3. Få första veckodagen i SQL Server

  4. Få lista över databaser från SQL Server