Che cos'è ChatOps?
Al giorno d'oggi, utilizziamo più canali di comunicazione per gestire o ricevere informazioni dai nostri sistemi, come e-mail, chat e applicazioni, tra gli altri. Se potessimo centralizzare questo in una o poche diverse possibili applicazioni, e meglio ancora, se potessimo integrarlo con gli strumenti che attualmente utilizziamo nella nostra organizzazione, saremmo in grado di automatizzare i processi, migliorare le nostre dinamiche di lavoro e comunicazione, avendo un quadro più chiaro dello stato attuale del nostro sistema. In molte aziende, Slack o altri strumenti di collaborazione stanno diventando il centro e il cuore dei team di sviluppo e operativi.
Cos'è ChatBot?
Un chatbot è un programma che simula una conversazione, riceve le voci fatte dall'utente e restituisce le risposte in base alla sua programmazione.
Alcuni prodotti sono stati sviluppati con questa tecnologia, che ci permette di svolgere compiti amministrativi, o mantiene il team aggiornato sullo stato attuale dei sistemi.
Questo permette, tra l'altro, di integrare gli strumenti di comunicazione che utilizziamo quotidianamente, con i nostri sistemi.
CCBot - ClusterControl
CCBot è un chatbot che utilizza le API ClusterControl per gestire e monitorare i cluster di database. Sarai in grado di distribuire nuovi cluster o configurazioni di replica, mantenere il tuo team aggiornato sullo stato dei database e sullo stato di eventuali processi amministrativi (ad es. backup o aggiornamenti in sequenza). Puoi anche riavviare i nodi non riusciti, aggiungerne di nuovi, promuovere uno slave a master, aggiungere bilanciatori di carico e così via. CCBot supporta la maggior parte dei principali servizi di chat come Slack, Flowdock e Hipchat.
CCBot è integrato con la riga di comando di s9s, quindi hai diversi comandi da usare con questo strumento.
Notifiche di ClusterControl tramite Slack
Tieni presente che puoi utilizzare Slack per gestire allarmi e notifiche da ClusterControl. Come mai? Una chat room è un buon posto per discutere di incidenti. Vedere un allarme reale in un canale Slack semplifica la discussione con il team, perché tutti i membri del team sanno effettivamente di cosa si sta discutendo e possono intervenire.
La principale differenza tra CCBot e l'integrazione delle notifiche tramite Slack è che, con CCBot, l'utente avvia la comunicazione tramite un comando specifico, generando una risposta dal sistema. Per le notifiche, ClusterControl genera un evento, ad esempio un messaggio relativo a un errore del nodo. Questo evento viene quindi inviato allo strumento che abbiamo integrato per le nostre notifiche, ad esempio Slack.
Puoi rivedere questo post su come configurare ClusterControl per inviare notifiche a Slack.
Successivamente, possiamo vedere le notifiche di ClusterControl nel nostro Slack:
Integrazione Slack ClusterControlInstallazione CCBot
Per installare CCBot, una volta installato ClusterControl, dobbiamo eseguire il seguente script:
$ /var/www/html/clustercontrol/app/tools/install-ccbot.sh
Selezioniamo quale adattatore vogliamo utilizzare, in questo blog, selezioneremo Slack.
-- Supported Hubot Adapters --
1. slack
2. hipchat
3. flowdock
Select the hubot adapter to install [1-3]: 1
Ci chiederà quindi alcune informazioni, come un'e-mail, una descrizione, il nome che daremo al nostro bot, la porta, il token API e il canale a cui vogliamo aggiungerlo.
? 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):
Per ottenere il token API, dobbiamo andare su Slack -> App (sul lato sinistro della nostra finestra Slack), cerchiamo Hubot e selezioniamo Installa.
CCBot HubotInseriamo il nome utente, che deve corrispondere al nome del nostro bot.
Nella finestra successiva, possiamo vedere il token API da utilizzare.
Token API CCBotEnter your slack API token: xoxb-111111111111-XXXXXXXXXXXXXXXXXXXXXXXX
CCBot installation completed!
Infine, per poter utilizzare tutte le funzioni della riga di comando di s9s con CCBot, dobbiamo creare un utente da ClusterControl:
$ s9s user --create --cmon-user=cmon --group=admins --controller="https://localhost:9501" --generate-key cmon
Per ulteriori informazioni su come gestire gli utenti, consulta la documentazione ufficiale.
Ora possiamo utilizzare il nostro CCBot di Slack.
Ecco alcuni esempi di comandi:
$ s9s --help
CCBot Help Con questo comando possiamo vedere l'aiuto per la CLI di s9s.
$ s9s cluster --list --long
Elenco cluster CCBot Con questo comando possiamo vedere un elenco dei nostri cluster.
$ s9s cluster --cluster-id=17 --stat
CCBot Cluster Stat Con questo comando possiamo vedere le statistiche di un cluster, in questo caso cluster id 17.
$ s9s node --list --long
Elenco nodi CCBot Con questo comando possiamo vedere un elenco dei nostri nodi.
$ s9s job --list
Elenco lavori CCBot Con questo comando possiamo vedere un elenco dei nostri lavori.
$ s9s backup --create --backup-method=mysqldump --cluster-id=16 --nodes=192.168.100.34:3306 --backup-directory=/backup
CCBot Backup Con questo comando possiamo creare un backup con mysqldump, nel nodo 192.168.100.34. Il backup verrà salvato nella directory /backup.
Vediamo ora alcuni esempi più complessi:
$ 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 Crea replica Con questo comando possiamo creare una replica MySQL Master-Slave con Percona per la versione MySQL 5.7.
CBot verifica replica creataE possiamo controllare questo nuovo cluster.
In ClusterControl Topology View, possiamo controllare la nostra topologia attuale con un nodo master e uno slave.
Topology View Replication 1$ s9s cluster --add-node --nodes=mysql3 --cluster-id=24
CCBot Aggiungi nodo Con questo comando possiamo aggiungere un nuovo slave nel nostro cluster attuale.
Topology View Replication 2E possiamo controllare la nostra nuova topologia in ClusterControl Topology View.
$ s9s cluster --add-node --cluster-id=24 --nodes="proxysql://proxysql"
CCBot Aggiungi ProxySQL Con questo comando possiamo aggiungere un nuovo nodo ProxySQL chiamato "proxysql" nel nostro cluster attuale.
Topology View Replication 3E possiamo controllare la nostra nuova topologia in ClusterControl Topology View.
Puoi controllare l'elenco dei comandi disponibili nella documentazione.
Se proviamo a utilizzare CCBot da un canale Slack, dobbiamo aggiungere "@ccbot_name" all'inizio del nostro comando:
@ccbot s9s backup --create --backup-method=xtrabackupfull --cluster-id=1 --nodes=10.0.0.5:3306 --backup-directory=/storage/backups
CCBot semplifica la gestione dei cluster da parte dei team in modo collaborativo. È completamente integrato con gli strumenti che utilizzano quotidianamente.
Nota
Se si verifica il seguente errore quando si desidera eseguire il programma di installazione di CCBot nel nostro ClusterControl:
-bash: yo: command not found
Dobbiamo aggiornare la versione del pacchetto nodejs. Conclusione
Come abbiamo detto in precedenza, ci sono diverse alternative di ChatBot per scopi diversi, possiamo persino creare il nostro ChatBot, ma poiché questa tecnologia facilita i nostri compiti e ha diversi vantaggi che abbiamo menzionato all'inizio di questo blog, non tutto ciò che brilla è oro.
C'è un dettaglio molto importante da tenere a mente:la sicurezza. Dobbiamo stare molto attenti quando li utilizziamo e prendere tutte le precauzioni necessarie per sapere cosa ci permettiamo di fare, in che modo, in quale momento, a chi e da dove.