MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Управление на MySQL, MongoDB и PostgreSQL с ChatOps от Slack

Какво е ChatOps?

В днешно време ние използваме множество комуникационни канали за управление или получаване на информация от нашите системи, като например имейл, чат и приложения, наред с други. Ако можехме да централизираме това в едно или само няколко различни възможни приложения и дори по-добре, ако можехме да го интегрираме с инструменти, които в момента използваме в нашата организация, бихме могли да автоматизираме процесите, да подобрим динамиката на работата и комуникацията си, като по-ясна картина на текущото състояние на нашата система. В много компании Slack или други инструменти за сътрудничество се превръщат в центъра и сърцето на екипите за разработка и операции.

Какво е ChatBot?

Чатботът е програма, която симулира разговор, като получава записи, направени от потребителя, и връща отговори въз основа на неговото програмиране.

Някои продукти са разработени с тази технология, която ни позволява да изпълняваме административни задачи или поддържа екипа в течение на текущото състояние на системите.

Това позволява, наред с други неща, да интегрираме комуникационните инструменти, които използваме ежедневно, с нашите системи.

CCBot – ClusterControl

CCbot е чат бот, който използва ClusterControl API за управление и наблюдение на клъстерите на вашите бази данни. Ще можете да разгръщате нови клъстери или настройки за репликация, да поддържате екипа си в течение на състоянието на базите данни, както и състоянието на всички административни задачи (например архивиране или непрекъснати надстройки). Можете също така да рестартирате неуспешни възли, да добавяте нови, да повишавате подчинен в главен, да добавяте балансьори на натоварване и т.н. CCBot поддържа повечето от основните услуги за чат като Slack, Flowdock и Hipchat.

CCBot е интегриран с командния ред на s9s, така че имате няколко команди, които да използвате с този инструмент.

Известия на ClusterControl чрез Slack

Имайте предвид, че можете да използвате Slack за обработка на аларми и известия от ClusterControl. Защо? Чат стаята е добро място за обсъждане на инциденти. Виждането на действителна аларма в канал на Slack улеснява обсъждането й с екипа, защото всички членове на екипа всъщност знаят какво се обсъжда и могат да се включат.

Основната разлика между CCBot и интеграцията на известия чрез Slack е, че с CCBot потребителят инициира комуникацията чрез конкретна команда, генерирайки отговор от системата. За известия ClusterControl генерира събитие, например съобщение за повреда на възел. След това това събитие се изпраща до инструмента, който сме интегрирали за нашите известия, например Slack.

Можете да прегледате тази публикация за това как да конфигурирате ClusterControl, за да изпращате известия до Slack.

След това можем да видим известия на ClusterControl в нашия Slack:

ClusterControl Slack интеграция

Инсталиране на CCBot

За да инсталираме CCBot, след като инсталираме ClusterControl, трябва да изпълним следния скрипт:

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

Избираме кой адаптер искаме да използваме, в този блог ще изберем Slack.

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

След това ще поиска от нас някаква информация, като имейл, описание, името, което ще дадем на нашия бот, порта, API токена и канала, към който искаме да го добавим.

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

За да получим токена на API, трябва да отидем в нашия Slack -> Приложения (От лявата страна на прозореца на Slack), търсим Hubot и избираме Install.

CCBot Hubot

Въвеждаме потребителското име, което трябва да съвпада с името на нашия бот.

В следващия прозорец можем да видим токена на API, който да използваме.

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

И накрая, за да можем да използваме всички функции на командния ред s9s с CCBot, трябва да създадем потребител от ClusterControl:

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

За допълнителна информация как да управлявате потребителите, моля, проверете официалната документация.

Вече можем да използваме нашия CCBot от Slack.

Тук имаме няколко примера за команди:

$ s9s --help
Помощ за CCBot

С тази команда можем да видим помощта за s9s CLI.

$ s9s cluster --list --long
Списък с клъстери CCBot

С тази команда можем да видим списък с нашите клъстери.

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

С тази команда можем да видим статистиката на един клъстер, в този случай идентификатор на клъстер 17.

$ s9s node --list --long
Списък с възли CCBot

С тази команда можем да видим списък с нашите възли.

$ s9s job --list
Списък със работни места CCBot

С тази команда можем да видим списък с нашите задачи.

$ s9s backup --create --backup-method=mysqldump --cluster-id=16 --nodes=192.168.100.34:3306 --backup-directory=/backup
CCBot архивиране

С тази команда можем да създадем резервно копие с mysqldump във възела 192.168.100.34. Архивът ще бъде запазен в директорията /backup.

Сега нека видим някои по-сложни примери:

$ 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 Създаване на репликация

С тази команда можем да създадем MySQL Master-Slave репликация с Percona за MySQL 5.7 версия.

CCBot Check Replication е създаден

И можем да проверим този нов клъстер.

В ClusterControl Topology View можем да проверим нашата текуща топология с един главен и един подчинен възел.

Репликация на изглед на топология 1
$ s9s cluster --add-node --nodes=mysql3 --cluster-id=24
CCBot Добавяне на възел

С тази команда можем да добавим нов подчинен в нашия текущ клъстер.

Преглед на топология, репликация 2

И можем да проверим новата ни топология в ClusterControl Topology View.

$ s9s cluster --add-node --cluster-id=24 --nodes="proxysql://proxysql"
CCBot Добавяне на ProxySQL

С тази команда можем да добавим нов ProxySQL възел с име "proxysql" в нашия текущ клъстер.

Преглед на топология, репликация 3

И можем да проверим новата ни топология в ClusterControl Topology View.

Можете да проверите списъка с наличните команди в документацията.
Ако се опитаме да използваме CCBot от Slack канал, трябва да добавим „@ccbot_name“ в началото на нашата команда:

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

CCBot улеснява екипите да управляват своите клъстери по съвместен начин. Той е напълно интегриран с инструментите, които използват ежедневно.

Забележка

Ако имаме следната грешка, когато искаме да стартираме инсталатора на CCBot в нашия ClusterControl:

-bash: yo: command not found
Трябва да актуализираме версията на пакета nodejs.

Заключение

Както казахме по-рано, има няколко алтернативи на ChatBot за различни цели, можем дори да създадем наш собствен ChatBot, но тъй като тази технология улеснява задачите ни и има няколко предимства, които споменахме в началото на този блог, не всичко, което блести, е злато.

Има една много важна подробност, която трябва да имате предвид – сигурността. Трябва да сме много внимателни, когато ги използваме и да вземем всички необходими предпазни мерки, за да знаем какво позволяваме да правим, по какъв начин, в кой момент, на кого и откъде.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Довеждане на MongoDB в производство

  2. Настройване на singleton връзка с node.js и mongo

  3. Повишете подполета до най-високо ниво в проекцията, без да изброявате всички ключове

  4. Множество изрази $elemMatch за съвпадение на стойности на масиви, използващи $all в MongoDB?

  5. Mongo групово намиране и актуализиране на полето за съответстващи документи в една заявка?