sql >> Databasteknik >  >> NoSQL >> MongoDB

Hantera MySQL, MongoDB &PostgreSQL med ChatOps från Slack

Vad är ChatOps?

Nuförtiden använder vi flera kommunikationskanaler för att hantera eller ta emot information från våra system, såsom e-post, chatt och applikationer bland annat. Om vi ​​kunde centralisera detta i en eller bara några olika möjliga applikationer, och ännu bättre, om vi kunde integrera det med verktyg som vi för närvarande använder i vår organisation, skulle vi kunna automatisera processer, förbättra vår arbetsdynamik och kommunikation, med en tydligare bild av det nuvarande tillståndet i vårt system. I många företag håller Slack eller andra samarbetsverktyg på att bli centrum och hjärtat i utvecklings- och operationsteamen.

Vad är ChatBot?

En chatbot är ett program som simulerar en konversation, tar emot poster gjorda av användaren och returnerar svar baserat på dess programmering.

Vissa produkter har utvecklats med denna teknik, som gör att vi kan utföra administrativa uppgifter eller håller teamet uppdaterat om systemens aktuella status.

Detta möjliggör bland annat att integrera de kommunikationsverktyg vi använder dagligen, med våra system.

CCBot - ClusterControl

CCBot är en chatbot som använder ClusterControl API:er för att hantera och övervaka dina databaskluster. Du kommer att kunna distribuera nya kluster eller replikeringsinställningar, hålla ditt team uppdaterat om statusen för databaserna samt statusen för eventuella administrativa jobb (t.ex. säkerhetskopior eller rullande uppgraderingar). Du kan också starta om misslyckade noder, lägga till nya, främja en slav till master, lägga till lastbalanserare och så vidare. CCBot stöder de flesta av de stora chatttjänsterna som Slack, Flowdock och Hipchat.

CCBot är integrerad med s9s kommandoraden, så du har flera kommandon att använda med det här verktyget.

ClusterControl-meddelanden via Slack

Observera att du kan använda Slack för att hantera larm och aviseringar från ClusterControl. Varför? Ett chattrum är ett bra ställe att diskutera incidenter. Att se ett faktiskt larm i en Slack-kanal gör det enkelt att diskutera det med teamet, eftersom alla teammedlemmar faktiskt vet vad som diskuteras och kan ringa in.

Huvudskillnaden mellan CCBot och integrationen av meddelanden via Slack är att med CCBot initierar användaren kommunikationen via ett specifikt kommando, vilket genererar ett svar från systemet. För aviseringar genererar ClusterControl en händelse, till exempel ett meddelande om ett nodfel. Denna händelse skickas sedan till verktyget som vi har integrerat för våra aviseringar, till exempel Slack.

Du kan läsa det här inlägget om hur du konfigurerar ClusterControl för att skicka meddelanden till Slack.

Efter detta kan vi se ClusterControl-meddelanden i vår Slack:

ClusterControl Slack Integration

CCBot-installation

För att installera CCBot, när vi har installerat ClusterControl, måste vi köra följande skript:

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

Vi väljer vilken adapter vi vill använda, i den här bloggen väljer vi Slack.

-- Supported Hubot Adapters --
1. slack
2. hipchat
3. flowdock
Select the hubot adapter to install [1-3]: 1

Den kommer sedan att be oss om viss information, såsom ett e-postmeddelande, en beskrivning, namnet vi kommer att ge vår bot, porten, API-token och kanalen som vi vill lägga till den i.

? Owner (User <[email protected]>)
? Description (A simple helpful robot for your Company)
Enter your bot's name (ccbot):
Enter hubot's http events listening port (8081):
Enter your slack API token:
Enter your slack message room (general):

För att få API-token måste vi gå till våra Slack -> Appar (på vänster sida av vårt Slack-fönster), vi letar efter Hubot och väljer Installera.

CCBot Hubot

Vi anger användarnamnet, som måste matcha vårt botnamn.

I nästa fönster kan vi se API-token som ska användas.

CCBot API-token
Enter your slack API token: xoxb-111111111111-XXXXXXXXXXXXXXXXXXXXXXXX
CCBot installation completed!

Slutligen, för att kunna använda alla s9s kommandoradsfunktioner med CCBot måste vi skapa en användare från ClusterControl:

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

För ytterligare information om hur man hanterar användare, vänligen kontrollera den officiella dokumentationen.

Vi kan nu använda vår CCBot från Slack.

Här har vi några exempel på kommandon:

$ s9s --help
CCBot Hjälp

Med detta kommando kan vi se hjälpen för s9s CLI.

$ s9s cluster --list --long
CCBot-klusterlista

Med detta kommando kan vi se en lista över våra kluster.

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

Med detta kommando kan vi se statistiken för ett kluster, i detta fall kluster-id 17.

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

Med detta kommando kan vi se en lista över våra noder.

$ s9s job --list
CCBot Jobblista

Med detta kommando kan vi se en lista över våra jobb.

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

Med detta kommando kan vi skapa en säkerhetskopia med mysqldump, i noden 192.168.100.34. Säkerhetskopieringen kommer att sparas i /backup-katalogen.

Låt oss nu se några mer komplexa exempel:

$ 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 Skapa replikering

Med detta kommando kan vi skapa en MySQL Master-Slave-replikering med Percona för MySQL 5.7-versionen.

CCBot-kontrollreplikering skapad

Och vi kan kontrollera det här nya klustret.

I ClusterControl Topology View kan vi kontrollera vår nuvarande topologi med en master- och en slavnod.

Topology View Replication 1
$ s9s cluster --add-node --nodes=mysql3 --cluster-id=24
CCBot Lägg till nod

Med detta kommando kan vi lägga till en ny slav i vårt nuvarande kluster.

Topology View Replication 2

Och vi kan kontrollera vår nya topologi i ClusterControl Topology View.

$ s9s cluster --add-node --cluster-id=24 --nodes="proxysql://proxysql"
CCBot Lägg till ProxySQL

Med detta kommando kan vi lägga till en ny ProxySQL-nod som heter "proxysql" i vårt nuvarande kluster.

Topology View Replication 3

Och vi kan kontrollera vår nya topologi i ClusterControl Topology View.

Du kan kontrollera listan över tillgängliga kommandon i dokumentationen.
Om vi ​​försöker använda CCBot från en Slack-kanal måste vi lägga till "@ccbot_name" i början av vårt 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 lättare för team att hantera sina kluster på ett samarbetssätt. Den är helt integrerad med de verktyg de använder dagligen.

Obs

Om vi ​​får följande fel när vi vill köra CCBot-installationsprogrammet i vår ClusterControl:

-bash: yo: command not found
Vi måste uppdatera versionen av nodejs-paketet.

Slutsats

Som vi sa tidigare finns det flera ChatBot-alternativ för olika ändamål, vi kan till och med skapa vår egen ChatBot, men eftersom denna teknik underlättar våra uppgifter och har flera fördelar som vi nämnde i början av den här bloggen är inte allt som lyser guld.

Det finns en mycket viktig detalj att tänka på – säkerhet. Vi måste vara mycket försiktiga när vi använder dem och vidta alla nödvändiga försiktighetsåtgärder för att veta vad vi tillåter att göra, på vilket sätt, i vilket ögonblick, till vem och varifrån.


  1. Garanterar MongoDB journalföring hållbarhet?

  2. Söker i mongo db med mongoose regex vs. text

  3. Redis Cross Slot-fel

  4. Mac(os x):Finns det ett sätt att installera ENDAST redis-cli?