sql >> Database teknologi >  >> NoSQL >> MongoDB

Sådan administreres konfigurationsskabeloner til dine databaser med ClusterControl

ClusterControl gør det nemt at implementere en databaseopsætning - bare udfyld nogle værdier (databaseleverandør, databasedatamappe, adgangskode og værtsnavne) i implementeringsguiden, og du er godt i gang. Resten af ​​konfigurationsmulighederne vil automatisk blive bestemt (og beregnet) baseret på værtsspecifikationerne (CPU-kerner, hukommelse, IP-adresse osv.) og anvendt på skabelonfilen, der følger med ClusterControl. I dette blogindlæg skal vi se på, hvordan ClusterControl bruger standardskabelonfiler, og hvordan brugere kan tilpasse dem til deres behov.

Basiskabelonfiler

Alle tjenester konfigureret af ClusterControl bruger en basiskonfigurationsskabelon, der er tilgængelig under /usr/share/cmon/templates på ClusterControl-noden. Følgende er skabelonfiler leveret af ClusterControl v1.4.0:

Filnavn Beskrivelse
config.ini.mc MySQL Cluster-konfigurationsfil.
haproxy.cfg HAProxy-konfigurationsskabelon til Galera Cluster.
haproxy_rw_split.cfg HAProxy-konfigurationsskabelon til læse-skrive-opdeling.
garbd.cnf Galera arbitrator daemon (garbd) konfigurationsfil.
keepalived-1.2.7.conf Ældre keepalived-konfigurationsfil (før 1.2.7). Dette er forældet.
keepalived.conf Beholdt konfigurationsfil.
keepalived.init Beholdt init-script.
MaxScale_template.cnf MaxScale-konfigurationsskabelon.
mongodb-2.6.conf.org MongoDB 2.x-konfigurationsskabelon.
mongodb.conf.org MongoDB 3.x-konfigurationsskabelon.
mongodb.conf.percona MongoDB 3.x-konfigurationsskabelon til Percona Server til MongoDB.
mongos.conf.org Mongo router (mongos) konfigurationsskabelon.
my.cnf.galera MySQL-konfigurationsskabelon til Galera Cluster.
my57.cnf.galera MySQL-konfigurationsskabelon til Galera Cluster på MySQL 5.7.
my.cnf.grouprepl MySQL-konfigurationsskabelon til MySQL-gruppereplikering.
my.cnf.gtid_replication MySQL-konfigurationsskabelon til MySQL-replikering med GTID.
my.cnf.mysqlcluster MySQL-konfigurationsskabelon til MySQL Cluster.
my.cnf.pxc55 MySQL-konfigurationsskabelon til Percona XtraDB Cluster v5.5.
my.cnf.repl57 MySQL-konfigurationsskabelon til MySQL-replikering v5.7.
my.cnf.replication MySQL-konfigurationsskabelon til MySQL/MariaDB uden MySQL's GTID.
mysqlchk.galera MySQL-sundhedstjek-scriptskabelon til Galera Cluster.
mysqlchk.mysql MySQL-sundhedstjek-scriptskabelon til MySQL-replikering.
mysqlchk_xinetd Xinetd-konfigurationsskabelon til MySQL-sundhedstjek.
mysqld.service.override Systemd-enhedsfilskabelon til MySQL-tjenesten.
proxysql_template.cnf ProxySQL-konfigurationsskabelon.

Ovenstående liste afhænger af det funktionssæt, der leveres af den installerede ClusterControl-udgivelse. I en ældre version kan du muligvis ikke finde nogle af dem. Du kan ændre disse skabelonfiler direkte, selvom vi ikke anbefaler det som forklaret i de næste afsnit.

Configuration Manager

Afhængigt af klyngetypen vil ClusterControl derefter importere den nødvendige basisskabelonfil til CMON-databasen og tilgængelig via Administrer -> Konfigurationer -> Skabeloner, når implementeringen lykkes. Overvej f.eks. følgende konfigurationsskabelon for en MariaDB Galera Cluster:

ClusterControl indlæser basisskabelonindholdet af Galera-konfigurationsskabelonen fra /usr/share/cmon/templates/my.cnf.galera til CMON-databasen (inde i cluster_configuration_templates-tabellen), efter at implementeringen er lykkedes. Du kan derefter tilpasse din egen konfigurationsfil direkte i ClusterControl UI. Hver gang du trykker på knappen Gem, vil den nye version af konfigurationsskabelonen blive gemt i CMON-databasen uden at overskrive basisskabelonfilen.

Når klyngen er implementeret og kører, har skabelonen i brugergrænsefladen forrang. Basisskabelonfilen bruges kun under den indledende klyngeimplementering via ClusterControl -> Deploy -> Deploy Database Cluster. Under implementeringsfasen vil ClusterControl bruge en midlertidig mappe placeret på /var/tmp/ til at forberede indholdet, for eksempel:

/var/tmp/cmon-003862-6a7775ca76c62486.tmp

Dynamiske variabler

Der er et antal konfigurationsvariabler, som kan konfigureres dynamisk af ClusterControl. Disse variabler er repræsenteret med store bogstaver omgivet af tegnet "@", for eksempel @[email protected] For alle detaljer om understøttede variabler, se venligst denne side. Dynamiske variabler konfigureres automatisk baseret på det input, der er angivet under cluster-implementering, eller ClusterControl udfører automatisk detektion baseret på værtsnavn, IP-adresse, tilgængelig RAM, antal CPU-kerner og så videre. Dette forenkler implementeringen, hvor du kun behøver at specificere minimale muligheder under klyngeimplementeringsfasen

Hvis den dynamiske variabel erstattes med en værdi (eller udefineret), vil ClusterControl springe den over og bruge den konfigurerede værdi i stedet. Dette er praktisk for avancerede brugere, hvor de normalt har deres eget sæt konfigurationsmuligheder, der er skræddersyet til specifikke databasearbejdsbelastninger.

Eksempel på konfigurationsskabelon før implementering

I stedet for at stole på ClusterControls dynamiske variabel på antallet af max_connections for vores databasenoder, kan vi ændre følgende linje inde i /usr/share/cmon/templates/my57.cnf.galera fra:

[email protected]@sqldat.com

Til:

max_connections=50

Gem tekstfilen, og sørg for, at ClusterControl bruger den korrekte basisskabelonfil i dialogboksen Implementer databaseklynge:

Klik på knappen Implementer for at starte implementeringen af ​​databaseklyngen.

Eksempel på konfigurationsskabelon efter implementering

Efter at databaseklynge-implementeringen er fuldført, har du muligvis lavet nogle finjusteringer på de kørende servere, før du beslutter dig for at skalere den op. Ved opskalering vil ClusterControl bruge konfigurationsskabelonen inde i CMON-databasen (den der er udfyldt under ClusterControl -> Konfigurationer -> Skabeloner) til at implementere de nye noder. Husk derfor at anvende den ændring du lavede på databaseserveren på skabelonfilen.

Før du tilføjer en ny node, er det en god praksis at gennemgå konfigurationsskabelonen for at sikre, at den nye node får, hvad vi forventede. Gå derefter til ClusterControl -> Tilføj node og sørg for, at den korrekte MySQL-skabelonfil er valgt:

Klik derefter på knappen "Tilføj node" for at starte implementeringen.

Det er det. Selvom ClusterControl udfører forskellige automatiseringsjob, når det kommer til implementering, giver det stadig brugerne frihed til at tilpasse implementeringen i overensstemmelse hermed. Glædelig klyngedannelse!


  1. Hvordan sammenlignes Morphia, Mongo4j og Spring-data for MongoDB?

  2. Mongo:tæl antallet af ordforekomster i et sæt dokumenter

  3. Hvordan opdaterer/upsætter jeg et dokument i Mongoose?

  4. Redis flere abonnenter