sql >> Database >  >> NoSQL >> MongoDB

MySQL, MongoDB en PostgreSQL beheren met ChatOps van Slack

Wat is ChatOps?

Tegenwoordig maken we gebruik van meerdere communicatiekanalen om informatie uit onze systemen, zoals e-mail, chat en applicaties, te beheren of te ontvangen. Als we dit zouden kunnen centraliseren in één of slechts enkele verschillende mogelijke toepassingen, en nog beter, als we het zouden kunnen integreren met tools die we momenteel in onze organisatie gebruiken, zouden we processen kunnen automatiseren, onze werkdynamiek en communicatie verbeteren, met een duidelijker beeld van de huidige staat van ons systeem. In veel bedrijven wordt Slack of andere samenwerkingstools het centrum en het hart van de ontwikkelings- en ops-teams.

Wat is ChatBot?

Een chatbot is een programma dat een gesprek simuleert, invoer van de gebruiker ontvangt en antwoorden retourneert op basis van zijn programmering.

Met deze technologie zijn enkele producten ontwikkeld waarmee we administratieve taken kunnen uitvoeren of het team op de hoogte kunnen houden van de huidige status van de systemen.

Dit maakt het onder andere mogelijk om de communicatiemiddelen die we dagelijks gebruiken te integreren met onze systemen.

CCBot - ClusterControl

CCBot is een chatbot die de ClusterControl API's gebruikt om uw databaseclusters te beheren en te bewaken. U kunt nieuwe clusters of replicatie-instellingen implementeren, uw team op de hoogte houden van de status van de databases en de status van eventuele administratieve taken (bijvoorbeeld back-ups of rolling upgrades). U kunt ook mislukte knooppunten opnieuw opstarten, nieuwe toevoegen, een slaaf tot master promoveren, load balancers toevoegen, enzovoort. CCBot ondersteunt de meeste grote chatdiensten zoals Slack, Flowdock en Hipchat.

CCBot is geïntegreerd met de s9s-opdrachtregel, dus je hebt verschillende opdrachten om met deze tool te gebruiken.

ClusterControl-meldingen via Slack

Merk op dat u Slack kunt gebruiken om alarmen en meldingen van ClusterControl af te handelen. Waarom? Een chatroom is een goede plek om incidenten te bespreken. Het zien van een echt alarm in een Slack-kanaal maakt het gemakkelijk om het met het team te bespreken, omdat alle teamleden echt weten wat er wordt besproken en kunnen inbellen.

Het belangrijkste verschil tussen CCBot en de integratie van meldingen via Slack is dat bij CCBot de gebruiker de communicatie initieert via een specifiek commando, waardoor een reactie van het systeem wordt gegenereerd. Voor meldingen genereert ClusterControl een gebeurtenis, bijvoorbeeld een bericht over een node-fout. Deze gebeurtenis wordt vervolgens verzonden naar de tool die we hebben geïntegreerd voor onze meldingen, bijvoorbeeld Slack.

Je kunt dit bericht lezen over hoe je ClusterControl configureert om meldingen naar Slack te sturen.

Hierna kunnen we ClusterControl-meldingen zien in onze Slack:

ClusterControl Slack-integratie

CCBot-installatie

Om CCBot te installeren, moeten we, nadat we ClusterControl hebben geïnstalleerd, het volgende script uitvoeren:

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

We selecteren welke adapter we willen gebruiken, in deze blog kiezen we voor Slack.

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

Het zal ons dan om wat informatie vragen, zoals een e-mail, een beschrijving, de naam die we aan onze bot zullen geven, de poort, het API-token en het kanaal waaraan we het willen toevoegen.

? 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):

Om het API-token te verkrijgen, moeten we naar onze Slack -> Apps gaan (aan de linkerkant van ons Slack-venster), we zoeken naar Hubot en selecteren Installeren.

CCBot Hubot

We voeren de gebruikersnaam in, die moet overeenkomen met onze botnaam.

In het volgende venster kunnen we de te gebruiken API-token zien.

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

Ten slotte, om alle s9s-opdrachtregelfuncties met CCBot te kunnen gebruiken, moeten we een gebruiker maken vanuit ClusterControl:

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

Raadpleeg de officiële documentatie voor meer informatie over het beheren van gebruikers.

We kunnen nu onze CCBot van Slack gebruiken.

Hier hebben we enkele voorbeelden van commando's:

$ s9s --help
CCBot-hulp

Met deze opdracht kunnen we de hulp voor de s9s CLI zien.

$ s9s cluster --list --long
CCBot-clusterlijst

Met dit commando kunnen we een lijst van onze clusters zien.

$ s9s cluster --cluster-id=17 --stat
CCBot-clusterstatistieken

Met dit commando kunnen we de statistieken van één cluster zien, in dit geval cluster id 17.

$ s9s node --list --long
CCBot-knooppuntlijst

Met dit commando kunnen we een lijst van onze nodes zien.

$ s9s job --list
CCBot-takenlijst

Met dit commando kunnen we een lijst van onze jobs zien.

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

Met dit commando kunnen we een back-up maken met mysqldump, in de node 192.168.100.34. De back-up wordt opgeslagen in de map /backup.

Laten we nu wat meer complexe voorbeelden bekijken:

$ 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-replicatie maken

Met deze opdracht kunnen we een MySQL Master-Slave-replicatie maken met Percona voor MySQL 5.7-versie.

CCBot-controlereplicatie gemaakt

En we kunnen dit nieuwe cluster controleren.

In ClusterControl Topology View kunnen we onze huidige topologie controleren met één master- en één slave-knooppunt.

Topologieweergave-replicatie 1
$ s9s cluster --add-node --nodes=mysql3 --cluster-id=24
CCBot-knooppunt toevoegen

Met dit commando kunnen we een nieuwe slaaf toevoegen aan ons huidige cluster.

Topologieweergave-replicatie 2

En we kunnen onze nieuwe topologie bekijken in ClusterControl Topology View.

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

Met deze opdracht kunnen we een nieuw ProxySQL-knooppunt met de naam "proxysql" toevoegen aan ons huidige cluster.

Topologieweergavereplicatie 3

En we kunnen onze nieuwe topologie bekijken in ClusterControl Topology View.

Je kunt de lijst met beschikbare commando's in de documentatie bekijken.
Als we CCBot van een Slack-kanaal proberen te gebruiken, moeten we "@ccbot_name" aan het begin van ons commando toevoegen:

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

CCBot maakt het voor teams gemakkelijker om hun clusters op een collaboratieve manier te beheren. Het is volledig geïntegreerd met de tools die ze dagelijks gebruiken.

Opmerking

Als we de volgende fout hebben wanneer we het CCBot-installatieprogramma in onze ClusterControl willen uitvoeren:

-bash: yo: command not found
We moeten de versie van het nodejs-pakket bijwerken.

Conclusie

Zoals we eerder zeiden, zijn er verschillende ChatBot-alternatieven voor verschillende doeleinden, we kunnen zelfs onze eigen ChatBot maken, maar omdat deze technologie onze taken faciliteert en verschillende voordelen heeft die we aan het begin van deze blog noemden, is niet alles wat blinkt goud.

Er is een heel belangrijk detail om in gedachten te houden:beveiliging. We moeten heel voorzichtig zijn bij het gebruik ervan en alle nodige voorzorgsmaatregelen nemen om te weten wat we laten doen, op welke manier, op welk moment, met wie en van waar.


  1. MongoDB - Trek meerdere objecten uit een array

  2. Redis Vue-bureaublad

  3. MongoDB $stdDevSamp

  4. hoe kan ik oneindig doorgeven aan redis van python?