sql >> Database teknologi >  >> RDS >> Mysql

Overvågning af dine databaser med MySQL Enterprise Monitor

Hvordan overvåger man MySQL-databaser?

Operationel synlighed er et must i ethvert produktionsmiljø. Det er afgørende at være i stand til at identificere eventuelle problemer så hurtigt som muligt, ellers kan du ende i alvorlige problemer, da et uopdaget problem kan forårsage alvorlig serviceafbrydelse eller nedetid. MySQL Enterprise Monitor er et af de ældste overvågningsprodukter til MySQL på markedet og er tilgængelig som en del af en kommerciel virksomhedsabonnementsaftale fra Oracle. I dette blogindlæg vil vi tage et kig på MySQL Enterprise Monitor og den slags indsigt, det giver ind i MySQL.

Installation

Først og fremmest er MySQL Enterprise Monitor en del af MySQL Enterprise Edition, et kommercielt tilbud fra Oracle. Det kommer i flere versioner af pakker til forskellige operativsystemer. Installationen på Windows 10 (systemet vi testede på) er ret ligetil. MySQL Enterprise Monitor er konfigureret, og nogle medfølgende tjenester vil blive installeret (MySQL, Tomcat). Værktøjet kan tilgås via browseren.

Indledende konfiguration

Først og fremmest skal du tilføje værter, du gerne vil overvåge.

Du kan enten tilføje enkelte værter eller en batch af dem. Dialogvinduet ser det samme ud, bortset fra at når du tilføjer masse, kan du sende en kommasepareret liste over servere.

Vi vil ikke gå i detaljer, men kort fortalt skal du definere, fra hvilken vært MySQL-instanserne skal overvåges - typisk vil det være værten, som du installerede MySQL Enterprise Monitor på. Du kan også konfigurere agenter på dine MySQL-instanser, i så fald vil de også være i stand til at indsamle data for værten, ikke kun MySQL-metrics. Derefter skal du definere, hvordan du når den overvågede instans (IP-adresse/værtsnavn, bruger og adgangskode). MySQL Enterprise Monitor vil derefter oprette yderligere brugere til opgaver som overvågning, som ikke kræver superbrugerrettigheder. Hvis du vil, kan du også konfigurere SSL-kommunikation, hvis det er det, MySQL-instansen bruger, du kan også definere nogle timeouts, og om en replikeringstopologi skal detekteres automatisk eller ej.

Hvad der også er vigtigt at huske på, er, at MySQL Enterprise Monitor er stærkt afhængig af Performance Schema - sørg for, at dine databaser har PS aktiveret, ellers vil du ikke drage fordel af en væsentlig del af funktionerne i MySQL Enterprise Monitor.

Overvågning

Når de overvågede MySQL-instanser er konfigureret, kan du begynde at se på de indsamlede data. Oversigtssektionen giver dig en kort oversigt over nogle af de vigtigste målinger i MySQL. Data er aggregeret, og det gør det nemmere at finde eventuelle uventede mønstre og derefter grave videre i, hvad der skete.

Fanen Hændelser giver et overblik over forskellige problemer eller hændelser rapporteret af MySQL Enterprise Monitor og dens rådgivere. Du kan klikke på en hvilken som helst af begivenhederne og læse, hvad det handler om, samt eventuelle anbefalede trin at tage:

I dette særlige tilfælde ser det ud til, at nogle forespørgsler laver fuld tabelscanninger, og det anbefales at undersøge det nærmere for at lokalisere sådanne forespørgsler og se, om de kan optimeres.

Et andet eksempel, her ser vi, at table cache ikke er konfigureret på en optimal måde. Du kan se forklaringen på problemet, råd og anbefalede handlinger baseret på denne advarsel.

Metrics

På denne fane kan vi se data for flere MySQL-metrics, der er nyttige til at forstå systemets tilstand.

Tidsseriegrafer

Skærmbilleder ovenfor er blot et eksempel, der er mange flere grafer at se på.

Det er muligt at anvende filtrering:du kan definere hvilke grafer du gerne vil se, du kan også definere hvilket tidsinterval der skal vises. Oven i det kan du bare markere en del af grafen og enten zoome ind i den eller åbne forespørgselsanalysatoren med data fra det pågældende tidspunkt:

Vi vil gennemgå denne funktion senere, men kort sagt giver den dig mulighed for at analysere forespørgsler, hvordan deres ydeevne ændrede sig over tid og nogle eksempler på forespørgsler.

Tabelstatistik

Denne fane giver os indsigt i tabelstatistik:hvordan trafikken så ud (rækker hentet, indsat, opdateret, slettet) og hvordan forsinkelsen så ud for alle rækkehandlinger.

Brugerstatistik

På denne fane præsenterer MySQL Enterprise Monitor data om brugere - udførte sætninger, latency, tabelscanninger, I/O-latens, forbindelser, hukommelsesudnyttelse. Disse data skulle give et ganske godt indblik i, hvilken bruger der er ansvarlig for belastningen på databasen. Det kan være meget nyttigt, især i flerbrugermiljøer, hvor der ikke er én hovedkilde til trafikken.

Databasefil I/O

Databasefil I/O forklarer, hvordan I/O-belastningen er fordelt på tværs af filerne i databasen. Samlet antal I/O-operationer, latens, hvor mange læsninger og skrivninger, der blev udført på en given fil.

Hukommelsesbrug

Hukommelsesbrug viser hukommelsesstrukturer i MySQL, som er med til at opbygge det bedre billede af hukommelsesudnyttelsen i databasen. Disse data kan være nyttige i tilfælde af problemer med hukommelsen - det er nemt at spore, hvor væksten er størst, og om nødvendigt reducere relevante indstillinger. Det kan også hjælpe betydeligt med at diagnosticere potentielle hukommelseslækager.

InnoDB Buffer Pool

Denne fane i MySQL Enterprise Monitor giver brugeren indsigt i strukturen af ​​bufferpuljens udnyttelse. Hvilke tabeller er cachelagret, hvor mange beskidte sider er der at skylle?

Forespørgsler

Det er ekstremt vigtigt for enhver MySQL-bruger at forstå den belastning, som forespørgsler skaber. Hvilke forespørgsler er de mest problematiske? Hvordan opfører de sig i tide? Ydeevne kan måles på flere måder, men det er ret almindeligt, at det er den forudsigelige, stabile præstation, der er vigtigere end den bedste præstation. Så længe responstiden er acceptabel, vil brugerne bedre kunne lide de forudsigelige resultater end noget hurtigere respons (lav latency), hvilket nogle gange kan bremse serveren betydeligt. Det er derfor, det er meget værdifuldt at se, hvordan en forespørgsel opfører sig i tide og udpege dem, hvilken adfærd ikke er konsistent.

MySQL Enterprise Monitor leverer bestemt sådanne data. På listen over forespørgslerne kan du nemt se, hvordan forsinkelsen ændrede sig over tid. Flad linje er god, pigge - ikke så meget. Det betyder, at en sådan forespørgsel muligvis skal undersøges nærmere. Når du klikker på det, vil MySQL Enterprise Monitor give dig flere data om det.

Som du kan se, er der nogle statistiske data om den bestemte forespørgselstype, du kan også se, hvordan latensen ændrede sig over tid. Nederst kan du se nogle eksempler på udsagn i tid, og du kan sammenligne deres eksekveringstid.

Når du klikker på en af ​​dem, vil du se en fuld forespørgsel, der blev udført på det tidspunkt. Det kan være nyttigt i tilfælde af forespørgsler, hvor ydeevnen er forskellig afhængigt af, hvilke argumenter der blev brugt i tilfældet WHERE (f.eks. WHERE some_column ='en eller anden værdi' og værdier i den kolonne er ikke fordelt jævnt på tværs af rækkerne).

Replikering

I et MySQL-replikeringsmiljø er lag noget, du skal lære at håndtere. Det, der er vigtigt, er at holde styr på det – hvor meget halter slaverne? Hvor ofte sker det? Med disse oplysninger er det muligt at prøve at lokalisere problemet og bedre forstå, hvilke forespørgsler der forårsager det. Derefter kan du prøve at implementere nogle forbedringer som f.eks. flertrådsreplikering og spore, om ændringerne forbedrede replikeringsydelsen og reducerede forsinkelsen til et acceptabelt niveau.

Hvordan er MySQL Enterprise Monitor forskellig fra ClusterControl

Som vi sagde, er MySQL Enterprise Monitor en del af den betalte MySQL Enterprise Edition. For alle brugere af MySQL Community, MariaDB eller Percona Server er MySQL Enterprise Edition ikke tilgængelig. ClusterControl giver adgang til overvågning af MySQL i sin gratis Community-version. Med hensyn til server- og forespørgselsovervågning er der mange ligheder.

ClusterControl giver dig adgang til MySQL-metrics indsamlet og gemt i Prometheus tidsseriedatabase. Du kan nemt holde styr på adskillige metrics, der er tilgængelige i ClusterControl.

ClusterControl kommer også med en liste over rådgivere, som kan bruges til at holde styr på databasens sundhed og ydeevne. Du kan også nemt oprette nye rådgivere ved hjælp af Developer Studio:

Hvis du er interesseret i forespørgselsydeevne, leverer ClusterControl en forespørgselsmonitor til dig - udførte forespørgsler indsamles, og deres ydeevne sammenlignes, hvilket gør det nemt for brugeren at finde ud af, hvilke forespørgsler der bruger mest af CPU'en i databasen.

Du kan se statistiske data om forespørgslerne - udførelser, rækker sendt og undersøgt, eksekveringstid. Du kan også tjekke forklaringsplanen for en bestemt forespørgselstype.

Overvågning af polyglot-vedholdenhed

En stor forskel er evnen til at overvåge alle hovedvarianterne af MySQL-økosystemet (Oracle MySQL, MariaDB og Percona Server), forskellige klyngeteknologier (NDB Cluster, Group Replication, asynkron replikering og Galera Cluster), load balancers/proxies (HAProxy, Keepalived, Maxscale, ProxySQL) samt andre open source-databaser (PostgreSQL og MongoDB).

Automatisering og styring

ClusterControl giver også funktionalitet til at implementere enkelte forekomster eller klynger on-prem eller i skyen (AWS, GCE og Azure), såvel som funktioner som backup-styring, automatisk failover og gendannelse/reparation, rullende opgraderinger, klyngestyring til replikering eller klyngeopsætninger , skalering osv.

Det er alt for i dag folkens. Hvis du har arbejdet med MySQL Enterprise Monitor og gerne vil tilføje noget, bedes du gøre det i kommentarfeltet.


  1. MySQL fejlkode:1175 under OPDATERING i MySQL Workbench

  2. SQL Server Failover Cluster Installation -3

  3. Hvorfor kan jeg oprette en tabel med PRIMARY KEY på en nullbar kolonne?

  4. Kloning af databaser med PSDatabaseClone