sql >> Databasteknik >  >> NoSQL >> MongoDB

SCUMM:Den agentbaserade databasövervakningsinfrastrukturen i ClusterControl

Med 1.7-releasen av vår flaggskeppsprodukt ClusterControl introducerade vi vår nya agentbaserade övervakningsinfrastruktur:SCUMM - som den här bloggen diskuterar mer i detalj.

Som en central del av vår produkt tillhandahåller ClusterControl ett komplett övervakningssystem med realtidsdata för att veta vad som händer nu, med högupplösta mätvärden för bättre noggrannhet, förkonfigurerade instrumentpaneler och ett brett utbud av aviseringstjänster från tredje part för varning .

Lokala och molnsystem kan övervakas och hanteras från en enda punkt.

Intelligenta hälsokontroller implementeras för distribuerade topologier, till exempel upptäckt av nätverkspartitionering genom att utnyttja lastbalanserarens syn på databasnoderna.

Och ... övervakning kan vara agentfri via SSH eller agentbaserad ... vilket är där SCUMM kommer in!

ClusterControls nya SCUMM-system är agentbaserat, med en server som hämtar mätvärden från agenter som körs på samma värdar som de övervakade databaserna och använder Prometheus-agenter för större noggrannhet och anpassningsalternativ samtidigt som dina databaskluster övervakas.

Men varför SCUMM och vad handlar det om?

Introduktion till SCUMM

SCUMM - Severalnines CMON Unified Monitoring and Management - är vår nya agentbaserade övervakningsinfrastruktur.

Denna övervakningsinfrastruktur består av två huvudkomponenter:

Den första komponenten är Prometheus-servern som fungerar som tidsseriedatabasen och lagrar insamlade mätvärden.

Den andra komponenten är exportören. Det kan finnas en eller flera exportörer som ansvarar för att samla in mätvärden från en nod eller tjänst. Prometheus-servern samlar in dessa mätvärden (detta kallas skrapning) från exportörerna via HTTP. Utöver detta har vi skapat en uppsättning instrumentpaneler för att visualisera den insamlade statistiken.

De främsta fördelarna är:

  1. Samla in mätvärden med Prometheus-exportörer som stöds av gemenskapen
    1. Till exempel data från MySQL Performance Schema eller ProxySQL
  2. Ett antal specialiserade instrumentpaneler som visar de viktigaste mätvärdena och historiska trender för varje övervakad tjänst
  3. Högfrekvent övervakning gör det möjligt att skrapa målen med en sekunds intervall
  4. En arkitektur som skalas med antalet databasservrar och kluster. En enda Prometheus-instans kan ta in tusentals prover per sekund.
  5. Inget beroende av SSH-anslutning för att samla in värd- och processmått, vilket innebär ett mer skalbart system jämfört med en agentfri övervakningslösning
  6. Möjligheten att skapa anpassade instrumentpaneler med anpassade regler (se upp för våra kommande utgåvor)

SCUMM-agenterna/exportörerna som är installerade på de övervakade noderna kallas Prometheus-exportörer. Exportörerna samlar in mätvärden från noden (t.ex. CPU, RAM, disk och nätverk) och från tjänster som MySQL eller PostgreSQL-servrar. Prometheus-servern är installerad på en server och skrapar (prover) exportörerna med ett anpassat intervall.

Varför Prometheus?

Prometheus är en mycket populär tidsseriedatabase som har fått stor användning med ett aktivt ekosystem. Den erbjuder en rik datamodell och ett frågespråk med ett http-baserat omröstningssystem. Det är lätt att installera, underhålla och konfigurera även i HA-inställningar.

Prometheus skrapar mätvärden från instrumenterade jobb, antingen direkt eller via en mellanliggande push-gateway för kortlivade jobb. Den lagrar alla skrapade prover lokalt och kör regler över denna data för att antingen aggregera och registrera nya tidsserier från befintliga data eller generera varningar.

Prometheus fungerar bra för att spela in alla rent numeriska tidsserier. Den passar både maskincentrerad övervakning och övervakning av mycket dynamiska, serviceorienterade arkitekturer. I en värld av mikrotjänster är dess stöd för multidimensionell datainsamling och sökning en särskild styrka.

Prometheus är designad för tillförlitlighet, för att vara systemet du går till under ett avbrott så att du snabbt kan diagnostisera problem. Varje Prometheus-server är fristående, inte beroende av nätverkslagring eller andra fjärrtjänster. Du kan lita på det när andra delar av din infrastruktur är trasiga och du behöver inte konfigurera omfattande infrastruktur för att använda den. För hög tillgänglighet är det alltså möjligt att helt enkelt installera en andra Prometheus-server som skrapar samma data som den första Prometheus-servern.

Dessutom är Prometheus en mycket populär tidsseriedatabas och dess användning har växt väldigt snabbt. Det är möjligt för en annan Prometheus-server som är högre upp i organisationen att skrapa Prometheus-servrarna närmare databasnivån. Detta möjliggör en skalbar övervakningsinfrastruktur där dataupplösningen på databasnivån är högre än längre upp i en organisation.

Exportörer

En eller flera exportörer är installerade på den övervakade servern och ansvarar för att samla in mätvärden om en specifik del av infrastrukturen. Det kan till exempel finnas en exportör för att fånga värdspecifik information, en exportör för att fånga MySQL-statistik och ProxySQL-statistik.

Vi har också skapat en specifik processexportör som övervakar de pågående processerna på servern. Denna exportör är avgörande för funktionerna med hög tillgänglighet i ClusterControl och gör att ClusterControl snabbt kan reagera på processfel och processtillstånd. Att använda processexportern (som är installerad som standard när agentbaserad övervakning är aktiverad) minskar systembelastningen på de övervakade servrarna.

Aktivera agentbaserad övervakning i ClusterControl

Att aktivera agentbaserad övervakning är lika enkelt som att klicka på instrumentpanelen och sedan klicka på "Aktivera agentbaserad övervakning". Välj en värd där Prometheus-servern ska installeras. Denna Prometheus-server kan sedan delas med andra kluster.

Med sin version 1.7.1 kommer ClusterControl med följande instrumentpaneler:

  • Systemöversikt
  • Klusteröversikt
  • MySQL Server - Allmänt
  • MySQL-server - cachar
  • MySQL InnoDB-statistik
  • Galera-klusteröversikt
  • Galera Serveröversikt
  • PostgreSQL-översikt
  • ProxySQL-översikt
  • HAProxy-översikt
  • MongoDB-klusteröversikt
  • MongoDB ReplicaSet
  • MongoDB-server

För att sammanfatta ...

Om man vill använda en övervakningsagent eller gå den agentlösa vägen är helt baserat på organisatoriska policykrav och anpassade behov. Och även om vi älskar enkelheten i att inte behöva installera eller hantera agenter på de övervakade databasvärdarna, kan en agentbaserad metod ge högre upplösning på övervakningsdata och har vissa fördelar när det gäller säkerhet.

ClusterControls nya SCUMM-system använder Prometheus-agenter för större noggrannhet och anpassningsalternativ samtidigt som dina databaskluster övervakas.

Varför inte ge det ett försök och se själv!

Installera ClusterControl idag (det är gratis med vår Community Edition) eller ladda ner vår nya ClusterControl Guide om du vill läsa mer om vår produkt först.


  1. MongoDB findOneAndDelete()

  2. MongoDB index/RAM-förhållande

  3. Introduktion till Redis Data Structures:Sorterade uppsättningar

  4. MongoDB C#:ID Serialization bästa mönstret