Co je ChatOps?
V současné době využíváme ke správě nebo přijímání informací z našich systémů více komunikačních kanálů, jako je mimo jiné e-mail, chat a aplikace. Pokud bychom to dokázali centralizovat do jedné nebo jen několika různých možných aplikací, a ještě lépe, pokud bychom to dokázali integrovat s nástroji, které v současné době používáme v naší organizaci, byli bychom schopni automatizovat procesy, zlepšit dynamiku naší práce a komunikaci. jasnější obrázek o současném stavu našeho systému. V mnoha společnostech se Slack nebo jiné nástroje pro spolupráci stávají středem a srdcem vývojových a operačních týmů.
Co je ChatBot?
Chatbot je program, který simuluje konverzaci, přijímá záznamy od uživatele a vrací odpovědi na základě svého naprogramování.
Některé produkty byly vyvinuty s touto technologií, což nám umožňuje provádět administrativní úkoly nebo udržovat tým aktuální o aktuálním stavu systémů.
To mimo jiné umožňuje integrovat komunikační nástroje, které denně používáme, do našich systémů.
CCBot – ClusterControl
CCBot je chatbot, který používá ClusterControl API ke správě a monitorování vašich databázových clusterů. Budete moci nasadit nové clustery nebo nastavení replikace, udržovat svůj tým v aktuálním stavu o stavu databází a také o stavu jakýchkoli administrativních úloh (např. zálohování nebo průběžné upgrady). Můžete také restartovat neúspěšné uzly, přidat nové, povýšit slave na master, přidat nástroje pro vyrovnávání zatížení a tak dále. CCBot podporuje většinu hlavních chatovacích služeb, jako je Slack, Flowdock a Hipchat.
CCBot je integrován s příkazovým řádkem s9s, takže s tímto nástrojem můžete použít několik příkazů.
Oznámení ClusterControl přes Slack
Všimněte si, že můžete použít Slack ke zpracování alarmů a oznámení z ClusterControl. Proč? Chatovací místnost je dobrým místem pro diskuzi o incidentech. Sledování skutečného alarmu na kanálu Slack usnadňuje diskusi o něm s týmem, protože všichni členové týmu ve skutečnosti vědí, o čem se diskutuje, a mohou se připojit.
Hlavním rozdílem mezi CCBot a integrací notifikací přes Slack je to, že s CCBot uživatel zahájí komunikaci prostřednictvím specifického příkazu, který vygeneruje odpověď ze systému. Pro upozornění generuje ClusterControl událost, například zprávu o selhání uzlu. Tato událost je poté odeslána do nástroje, který jsme integrovali pro naše oznámení, například Slack.
Můžete si přečíst tento příspěvek o tom, jak nakonfigurovat ClusterControl za účelem zasílání upozornění na Slack.
Poté můžeme vidět oznámení ClusterControl v našem Slacku:
ClusterControl Slack IntegrationInstalace CBotu
Chcete-li nainstalovat CCBot, jakmile nainstalujeme ClusterControl, musíme spustit následující skript:
$ /var/www/html/clustercontrol/app/tools/install-ccbot.sh
Vybereme, který adaptér chceme použít, v tomto blogu vybereme Slack.
-- Supported Hubot Adapters --
1. slack
2. hipchat
3. flowdock
Select the hubot adapter to install [1-3]: 1
Poté nás požádá o některé informace, jako je e-mail, popis, jméno, které dáme našemu robotovi, port, token API a kanál, do kterého jej chceme přidat.
? 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):
Abychom získali token API, musíme jít do našeho Slack -> Apps (na levé straně našeho okna Slack), hledat Hubot a vybrat Instalovat.
CCBot HubotZadáme uživatelské jméno, které se musí shodovat se jménem našeho robota.
V dalším okně můžeme vidět token API, který se má použít.
CCBot API TokenEnter your slack API token: xoxb-111111111111-XXXXXXXXXXXXXXXXXXXXXXXX
CCBot installation completed!
A konečně, abychom mohli používat všechny funkce příkazového řádku s9s s CCBot, musíme vytvořit uživatele z ClusterControl:
$ s9s user --create --cmon-user=cmon --group=admins --controller="https://localhost:9501" --generate-key cmon
Další informace o tom, jak spravovat uživatele, naleznete v oficiální dokumentaci.
Nyní můžeme používat našeho CCBot ze Slacku.
Zde je několik příkladů příkazů:
$ s9s --help
Nápověda CBot Pomocí tohoto příkazu můžeme vidět nápovědu pro s9s CLI.
$ s9s cluster --list --long
Seznam klastrů CBot Pomocí tohoto příkazu můžeme vidět seznam našich clusterů.
$ s9s cluster --cluster-id=17 --stat
CBot Cluster Stat Pomocí tohoto příkazu můžeme vidět statistiky jednoho clusteru, v tomto případě clusteru id 17.
$ s9s node --list --long
Seznam uzlů CBot Pomocí tohoto příkazu můžeme vidět seznam našich uzlů.
$ s9s job --list
Seznam úloh CBot Pomocí tohoto příkazu můžeme vidět seznam našich úloh.
$ s9s backup --create --backup-method=mysqldump --cluster-id=16 --nodes=192.168.100.34:3306 --backup-directory=/backup
Záloha CCCot Pomocí tohoto příkazu můžeme vytvořit zálohu s mysqldump, v uzlu 192.168.100.34. Záloha bude uložena v adresáři /backup.
Nyní se podívejme na některé složitější příklady:
$ 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 Create Replication Pomocí tohoto příkazu můžeme vytvořit replikaci MySQL Master-Slave pomocí Percona pro verzi MySQL 5.7.
Vytvořena replikace kontroly CBotA můžeme zkontrolovat tento nový cluster.
V ClusterControl Topology View můžeme zkontrolovat naši aktuální topologii s jedním hlavním a jedním podřízeným uzlem.
Replikace zobrazení topologie 1$ s9s cluster --add-node --nodes=mysql3 --cluster-id=24
CCBot Add Node Pomocí tohoto příkazu můžeme přidat nového slave do našeho aktuálního clusteru.
Replikace zobrazení topologie 2A naši novou topologii můžeme zkontrolovat v ClusterControl Topology View.
$ s9s cluster --add-node --cluster-id=24 --nodes="proxysql://proxysql"
CCBot Přidat ProxySQL Pomocí tohoto příkazu můžeme přidat nový uzel ProxySQL s názvem "proxysql" do našeho aktuálního clusteru.
Replikace zobrazení topologie 3A naši novou topologii můžeme zkontrolovat v ClusterControl Topology View.
Seznam dostupných příkazů můžete zkontrolovat v dokumentaci.
Pokud se pokusíme použít CCBot z kanálu Slack, musíme na začátek našeho příkazu přidat "@ccbot_name":
@ccbot s9s backup --create --backup-method=xtrabackupfull --cluster-id=1 --nodes=10.0.0.5:3306 --backup-directory=/storage/backups
CCBot usnadňuje týmům správu jejich clusterů způsobem spolupráce. Je plně integrován s nástroji, které používají na denní bázi.
Poznámka
Pokud máme následující chybu, když chceme spustit instalační program CCBot v našem ClusterControl:
-bash: yo: command not found
Musíme aktualizovat verzi balíčku nodejs. Závěr
Jak jsme řekli dříve, existuje několik alternativ ChatBot pro různé účely, můžeme si dokonce vytvořit vlastního ChatBota, ale protože tato technologie usnadňuje naše úkoly a má několik výhod, které jsme zmínili na začátku tohoto blogu, není všechno zlato, co se třpytí.
Je třeba mít na paměti velmi důležitý detail – bezpečnost. Při jejich používání musíme být velmi opatrní a přijmout veškerá nezbytná opatření, abychom věděli, co povolujeme, jakým způsobem, v jakém okamžiku, komu a odkud.