MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Zarządzanie MySQL, MongoDB i PostgreSQL za pomocą ChatOps od Slack

Co to jest ChatOps?

Obecnie korzystamy z wielu kanałów komunikacji do zarządzania lub odbierania informacji z naszych systemów, takich jak między innymi poczta e-mail, czat i aplikacje. Gdybyśmy mogli to scentralizować w jednej lub kilku różnych możliwych aplikacjach, a jeszcze lepiej, gdybyśmy mogli zintegrować to z narzędziami, z których obecnie korzystamy w naszej organizacji, bylibyśmy w stanie zautomatyzować procesy, poprawić dynamikę naszej pracy i komunikację, mając wyraźniejszy obraz aktualnego stanu naszego systemu. W wielu firmach Slack lub inne narzędzia do współpracy stają się centrum i sercem zespołów programistycznych i operacyjnych.

Co to jest ChatBot?

Chatbot to program, który symuluje rozmowę, odbiera wpisy wprowadzone przez użytkownika i zwraca odpowiedzi na podstawie jego programowania.

Niektóre produkty zostały opracowane przy użyciu tej technologii, która pozwala nam wykonywać zadania administracyjne lub informuje zespół na bieżąco o aktualnym stanie systemów.

Pozwala to między innymi na zintegrowanie narzędzi komunikacyjnych, których używamy na co dzień, z naszymi systemami.

CCBot — ClusterControl

CCBot to chatbot, który wykorzystuje interfejsy API ClusterControl do zarządzania i monitorowania klastrów baz danych. Będziesz mógł wdrażać nowe klastry lub konfiguracje replikacji, informować zespół na bieżąco o stanie baz danych, a także o statusie wszelkich zadań administracyjnych (np. tworzenie kopii zapasowych lub uaktualnienia kroczące). Możesz także zrestartować uszkodzone węzły, dodać nowe, promować urządzenie podrzędne na nadrzędne, dodać systemy równoważenia obciążenia i tak dalej. CCBot obsługuje większość głównych usług czatu, takich jak Slack, Flowdock i Hipchat.

CCBot jest zintegrowany z wierszem poleceń s9s, więc masz kilka poleceń do użycia z tym narzędziem.

Powiadomienia ClusterControl przez Slack

Pamiętaj, że możesz używać Slacka do obsługi alarmów i powiadomień z ClusterControl. Czemu? Pokój rozmów to dobre miejsce do omówienia incydentów. Zobaczenie rzeczywistego alarmu na kanale Slack ułatwia omówienie go z zespołem, ponieważ wszyscy członkowie zespołu faktycznie wiedzą, o czym mowa i mogą się włączyć.

Główna różnica między CCBot a integracją powiadomień przez Slacka polega na tym, że w CCBot użytkownik inicjuje komunikację za pomocą określonego polecenia, generując odpowiedź z systemu. W przypadku powiadomień ClusterControl generuje zdarzenie, na przykład komunikat o awarii węzła. To zdarzenie jest następnie wysyłane do narzędzia, które zintegrowaliśmy z naszymi powiadomieniami, na przykład Slack.

Możesz przejrzeć ten post, jak skonfigurować ClusterControl, aby wysyłać powiadomienia do Slacka.

Następnie możemy zobaczyć powiadomienia ClusterControl w naszym Slacku:

Integracja z ClusterControl Slack

Instalacja CCBot

Aby zainstalować CCBot, po zainstalowaniu ClusterControl, musimy wykonać następujący skrypt:

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

Wybieramy adapter, którego chcemy użyć, na tym blogu wybierzemy Slack.

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

Następnie poprosi nas o pewne informacje, takie jak e-mail, opis, nazwę, którą nadamy naszemu botowi, port, token API i kanał, do którego chcemy go dodać.

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

Aby uzyskać token API, musimy przejść do naszego Slack -> Aplikacje (po lewej stronie naszego okna Slack), szukamy Hubota i wybieramy Zainstaluj.

CCBot Hub

Wprowadzamy nazwę użytkownika, która musi odpowiadać nazwie naszego bota.

W następnym oknie możemy zobaczyć token API do użycia.

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

Wreszcie, aby móc korzystać ze wszystkich funkcji wiersza poleceń s9s z CCBot, musimy utworzyć użytkownika z ClusterControl:

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

Więcej informacji na temat zarządzania użytkownikami można znaleźć w oficjalnej dokumentacji.

Możemy teraz używać naszego CCBota ze Slacka.

Oto kilka przykładów poleceń:

$ s9s --help
Pomoc CCBot

Za pomocą tego polecenia możemy zobaczyć pomoc dla CLI s9s.

$ s9s cluster --list --long
Lista klastrów CCBot

Za pomocą tego polecenia możemy zobaczyć listę naszych klastrów.

$ s9s cluster --cluster-id=17 --stat
Statystyka klastra CCBot

Za pomocą tego polecenia możemy zobaczyć statystyki jednego klastra, w tym przypadku identyfikator klastra 17.

$ s9s node --list --long
Lista węzłów CCBot

Za pomocą tego polecenia możemy zobaczyć listę naszych węzłów.

$ s9s job --list
Lista zadań CCBot

Za pomocą tego polecenia możemy zobaczyć listę naszych zadań.

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

Za pomocą tego polecenia możemy utworzyć kopię zapasową za pomocą mysqldump, w węźle 192.168.100.34. Kopia zapasowa zostanie zapisana w katalogu /backup.

Zobaczmy teraz kilka bardziej złożonych przykładów:

$ 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 Utwórz replikację

Za pomocą tego polecenia możemy utworzyć replikację MySQL Master-Slave z Percona dla wersji MySQL 5.7.

Utworzono replikację CCBot Check

I możemy sprawdzić ten nowy klaster.

W widoku topologii ClusterControl możemy sprawdzić naszą aktualną topologię z jednym węzłem głównym i jednym węzłem podrzędnym.

Replikacja widoku topologii 1
$ s9s cluster --add-node --nodes=mysql3 --cluster-id=24
CCBot Dodaj węzeł

Za pomocą tego polecenia możemy dodać nowe urządzenie podrzędne w naszym bieżącym klastrze.

Replikacja widoku topologii 2

I możemy sprawdzić naszą nową topologię w widoku topologii ClusterControl.

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

Za pomocą tego polecenia możemy dodać nowy węzeł ProxySQL o nazwie "proxysql" w naszym obecnym klastrze.

Replikacja widoku topologii 3

I możemy sprawdzić naszą nową topologię w widoku topologii ClusterControl.

Możesz sprawdzić listę dostępnych poleceń w dokumentacji.
Jeśli próbujemy użyć CCBot z kanału Slack, musimy dodać "@ccbot_name" na początku naszego polecenia:

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

CCBot ułatwia zespołom zarządzanie klastrami w sposób oparty na współpracy. Jest w pełni zintegrowany z narzędziami, z których korzystają na co dzień.

Uwaga

Jeśli podczas próby uruchomienia instalatora CCBot w naszym ClusterControl wystąpi następujący błąd:

-bash: yo: command not found
Musimy zaktualizować wersję pakietu nodejs.

Wniosek

Jak powiedzieliśmy wcześniej, istnieje kilka alternatyw ChatBota do różnych celów, możemy nawet stworzyć własnego Chatbota, ale ponieważ ta technologia ułatwia nasze zadania i ma kilka zalet, o których wspomnieliśmy na początku tego bloga, nie wszystko, co świeci, jest złotem.

Należy pamiętać o bardzo ważnym szczególe - bezpieczeństwie. Musimy być bardzo ostrożni podczas ich używania i podjąć wszelkie niezbędne środki ostrożności, aby wiedzieć, na co pozwalamy, w jaki sposób, w jakim momencie, komu i skąd.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sortowanie agregatów Mongodb i limitowanie w ramach grupy

  2. Interfejs Mongo

  3. Przekazywanie dodatkowych słoików do Sparka przez spark-submit

  4. Nie można zdeserializować PyMongo ObjectId z JSON

  5. Dlaczego MongoDB nie używa przecięcia indeksu?