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

Håndtering af MySQL, MongoDB og PostgreSQL med ChatOps fra Slack

Hvad er ChatOps?

I dag gør vi brug af flere kommunikationskanaler til at administrere eller modtage information fra vores systemer, såsom e-mail, chat og applikationer blandt andre. Hvis vi kunne centralisere dette i en eller blot nogle få forskellige mulige applikationer, og endnu bedre, hvis vi kunne integrere det med værktøjer, som vi i øjeblikket bruger i vores organisation, ville vi være i stand til at automatisere processer, forbedre vores arbejdsdynamik og kommunikation, et klarere billede af den nuværende tilstand af vores system. I mange virksomheder er Slack eller andre samarbejdsværktøjer ved at blive centrum og hjertet i udviklings- og driftsteamene.

Hvad er ChatBot?

En chatbot er et program, der simulerer en samtale, modtager indtastninger foretaget af brugeren og returnerer svar baseret på dens programmering.

Nogle produkter er blevet udviklet med denne teknologi, som giver os mulighed for at udføre administrative opgaver eller holder teamet opdateret om systemernes aktuelle status.

Dette giver blandt andet mulighed for at integrere de kommunikationsværktøjer, vi bruger dagligt, med vores systemer.

CCBot - ClusterControl

CCBot er en chatbot, der bruger ClusterControl API'erne til at administrere og overvåge dine databaseklynger. Du vil være i stand til at implementere nye klynger eller replikeringsopsætninger, holde dit team opdateret om status for databaserne samt status for eventuelle administrative opgaver (f.eks. sikkerhedskopier eller rullende opgraderinger). Du kan også genstarte mislykkede noder, tilføje nye, fremme en slave til master, tilføje belastningsbalancere og så videre. CCBot understøtter de fleste af de store chattjenester som Slack, Flowdock og Hipchat.

CCBot er integreret med s9s-kommandolinjen, så du har flere kommandoer til brug med dette værktøj.

ClusterControl-meddelelser via Slack

Bemærk, at du kan bruge Slack til at håndtere alarmer og notifikationer fra ClusterControl. Hvorfor? Et chatrum er et godt sted at diskutere hændelser. At se en faktisk alarm i en Slack-kanal gør det nemt at diskutere det med teamet, fordi alle teammedlemmer faktisk ved, hvad der diskuteres, og kan ringe ind.

Hovedforskellen mellem CCBot og integrationen af ​​notifikationer via Slack er, at med CCBot starter brugeren kommunikationen via en specifik kommando, hvilket genererer et svar fra systemet. For meddelelser genererer ClusterControl en hændelse, for eksempel en besked om en knudefejl. Denne begivenhed sendes derefter til det værktøj, som vi har integreret til vores notifikationer, for eksempel Slack.

Du kan gennemgå dette indlæg om, hvordan du konfigurerer ClusterControl for at sende meddelelser til Slack.

Herefter kan vi se ClusterControl-meddelelser i vores Slack:

ClusterControl Slack-integration

CCBot-installation

For at installere CCBot, når vi har installeret ClusterControl, skal vi udføre følgende script:

$ /var/www/html/clustercontrol/app/tools/install-ccbot.sh 

Vi vælger hvilken adapter vi vil bruge, i denne blog vælger vi Slack.

-- Understøttede Hubot-adaptere --1. slap 2. hipchat 3. flowdock Vælg hubot-adapteren for at installere [1-3]:1 

Det vil derefter bede os om nogle oplysninger, såsom en e-mail, en beskrivelse, det navn, vi vil give til vores bot, porten, API-tokenet og den kanal, som vi vil tilføje det til.

? Ejer (bruger )? Beskrivelse (En simpel hjælpsom robot til din virksomhed) Indtast din bots navn (ccbot):Indtast hubots http-begivenhedslytteport (8081):Indtast dit slack API-token:Indtast dit slack beskedrum (generelt):

For at få API-tokenet skal vi gå til vores Slack -> Apps (På venstre side af vores Slack-vindue), vi leder efter Hubot og vælger Installer.

CCBot Hubot

Vi indtaster brugernavnet, som skal matche vores botnavn.

I det næste vindue kan vi se API-tokenet, der skal bruges.

CCBot API-token
Indtast dit slack API-token:xoxb-11111111111111-XXXXXXXXXXXXcode
> 
CCBot-installation fuldført! 

Endelig, for at kunne bruge alle s9s kommandolinjefunktioner med CCBot, skal vi oprette en bruger fra ClusterControl:

$ s9s user --create --cmon-user=cmon --group=admins --controller="https://localhost:9501" --generate-key cmon 

For yderligere information om, hvordan man administrerer brugere, se venligst den officielle dokumentation.

Vi kan nu bruge vores CCBot fra Slack.

Her har vi nogle eksempler på kommandoer:

$ s9s --help 
CCBot Hjælp

Med denne kommando kan vi se hjælpen til s9s CLI.

$ s9s cluster --list --long 
CCBot-klyngeliste

Med denne kommando kan vi se en liste over vores klynger.

$ s9s cluster --cluster-id=17 --stat 
CCBot Cluster Stat

Med denne kommando kan vi se statistikken for én klynge, i dette tilfælde klynge-id 17.

$ s9s node --list --long 
CCBot Node List

Med denne kommando kan vi se en liste over vores noder.

$ s9s job --list 
CCBot-jobliste

Med denne kommando kan vi se en liste over vores job.

$ s9s backup --create --backup-method=mysqldump --cluster-id=16 --nodes=192.168.100.34:3306 --backup-directory=/backup 
CCBot Backup

Med denne kommando kan vi oprette en sikkerhedskopi med mysqldump, i noden 192.168.100.34. Sikkerhedskopien vil blive gemt i mappen /backup.

Lad os nu se nogle mere komplekse eksempler:

$ s9s cluster --create --cluster-type=mysqlreplication --nodes="mysql1;mysql2" --vendor="percona" --provider-version="5.7" --template="my .cnf.repl57" --db-admin="root" --db-admin-passwd="root123" --os-user="root" --cluster-name="MySQL1" 
CCBot Opret replikering

Med denne kommando kan vi oprette en MySQL Master-Slave-replikering med Percona til MySQL 5.7 version.

CCBot Check Replikation oprettet

Og vi kan tjekke denne nye klynge.

I ClusterControl Topology View kan vi kontrollere vores aktuelle topologi med en master- og en slavenode.

Topology View Replication 1
$ s9s cluster --add-node --nodes=mysql3 --cluster-id=24 
CCBot Tilføj node

Med denne kommando kan vi tilføje en ny slave i vores nuværende klynge.

Topologivisningsreplikering 2

Og vi kan tjekke vores nye topologi i ClusterControl Topology View.

$ s9s cluster --add-node --cluster-id=24 --nodes="proxysql://proxysql" 
CCBot Tilføj ProxySQL

Med denne kommando kan vi tilføje en ny ProxySQL-node ved navn "proxysql" i vores nuværende klynge.

Topologivisningsreplikering 3

Og vi kan tjekke vores nye topologi i ClusterControl Topology View.

Du kan tjekke listen over tilgængelige kommandoer i dokumentationen.
Hvis vi forsøger at bruge CCBot fra en Slack-kanal, skal vi tilføje "@ccbot_name" i begyndelsen af ​​vores kommando:

@ccbot s9s backup --create --backup-method=xtrabackupfull --cluster-id=1 --nodes=10.0.0.5:3306 --backup-directory=/storage/backups 

CCBot gør det nemmere for teams at administrere deres klynger på en kollaborativ måde. Det er fuldt integreret med de værktøjer, de bruger på daglig basis.

Bemærk

Hvis vi har følgende fejl, når vi ønsker at køre CCBot-installationsprogrammet i vores ClusterControl:

-bash:yo:kommando ikke fundet 
Vi skal opdatere versionen af ​​nodejs-pakken.

Konklusion

Som vi sagde tidligere, er der flere ChatBot-alternativer til forskellige formål, vi kan endda lave vores egen ChatBot, men da denne teknologi letter vores opgaver og har flere fordele, som vi nævnte i begyndelsen af ​​denne blog, er ikke alt, der skinner, guld.

Der er en meget vigtig detalje at huske på - sikkerhed. Vi skal være meget forsigtige, når vi bruger dem, og tage alle de nødvendige forholdsregler for at vide, hvad vi tillader at gøre, på hvilken måde, i hvilket øjeblik, til hvem og hvorfra.


  1. Kan redis-nøglepladsmeddelelser skubbes til redis-strømmen i stedet for pub/underkanal

  2. Hvordan bruger man redis til at gemme hierarkiske data?

  3. MongoDB $isoWeekYear

  4. Kloning af en MongoDB-instans eller replikasæt