Как контролировать сервис MySQL и SSH с помощью Monit на Linux

Если Вы хотели поработать с MySQL в операционной системе Linux Mint 18, например, для того чтобы изучить язык SQL или просто познакомиться с СУБД (а может быть задействовать ее у себя на работе), но Вы не знаете, как установить сервер MySQL, какие первоначальные настройки необходимо внести, каким клиентом подключаться, для того чтобы писать запросы на языке SQL, то данный материал для Вас, так как в нем мы рассмотрим процесс установки MySQL и клиентского приложения MySQL Workbench.

Подключение репозитория MongoDB

MongoDB имеет свой собственный репозиторий, откуда и выполняется установка. В стандартных репозиториях пакета для установки данного сервера БД, нет. Создадим файл для репозитория и добавим в него данные для подключения:

# nano /etc/

Содержимое файла будет следующее:

Подключение репозитория MongoDB

[mongodb-org-4.2] name=MongoDB Repository baseurl=$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=

На момент написания статьи последняя версия MongoDB в репозитории была именно 4.2. Перед установкой на ваш сервер, перейдите на сайт разработчика и проверьте актуальную версию.

После создания repo файла с параметрами репозитория, можно приступать к установке пакетов.

Описание установки MySQL и MySQL Workbench на Linux Mint 2

Итак, как я уже сказал, рассмотрим мы два способа установки и начнем мы с рассмотрения установки с помощью менеджера программ.

На заметку! Если Вы обычный пользователь домашнего компьютера и хотите познакомиться с Linux поближе, рекомендую почитать мою книгу – «Linux для обычных пользователей», в ней я подробно рассказываю про основы операционной системы Linux

Установка MySQL с помощью менеджера программ

MySQL в Linux Mint устанавливается также как и любая другая программа, о том, как устанавливать программы с помощью менеджера программ, мы с Вами говорили в материале «Установка и удаление программ в Linux Mint».

Для наглядности давайте все равно разберем процесс установки MySQL. Запускаем менеджер программ Меню->Менеджер программ или Меню->Администрирование->Менеджер программ.

Вводим пароль администратора компьютера.

В поиск вводим MySQL и нажимам Enter (ввод), затем щелкаем двойным кликом по нужной программе. В нашем случае начинаем с MySQL-Server.

Читайте также:  Как установить nginx, MySQL, PHP (LEMP) в Ubuntu

В открывшемся окне щелкаем «Установить».

В процессе установки менеджер программ попросит нас придумать и ввести пароль для суперпользователя root в MySQL, мы вводим и нажимаем «Вперед».

Затем еще раз вводим его для подтверждения.

После того как изменится статус на «Установлена» переходим к установке следующей программы, для этого щелкаем на вкладку «Результаты поиска».

Затем точно таким же способом устанавливаем Mysql-client и Mysql-workbench (для установки MySQL Workbench потребуется около 200 мегабайт).

Все, на этом процесс базовой установки MySQL с помощью менеджера программ закончен.

Установка MySQL с помощью терминала

Запускаем терминал Linux. Например, щелкаем по ссылке на панели или запускаем из меню Mint.

Устанавливать MySQL необходимо от имени суперпользователя root, поэтому давайте сразу переключимся на этого пользователя. Для этого пишем sudo -i (или sudo su) и жмем Enter (ввод), затем вводим пароль пользователя.

Далее сначала давайте обновим список пакетов, для этого пишем команду.

apt-get update

Затем для установки: MySQL Server, MySQL Client и MySQL Workbench пишем следующую команду.

apt-get -y install mysql-server mysql-client mysql-workbench

В процессе установки нам предложат придумать и ввести пароль для администратора сервера MySQL (пользователя root), мы вводим пароль и в следующем окне подтверждаем его.

Установка будет завершена, как распакуются и настроятся все пакеты.

Примеры файлов ssh_config для организации доступа к серверам по SSH

Пример файла ssh_config с применением метода аутентификации на основе SSH-ключей

В примере файла приведена директория для пользователя root на локальной машине, в которой хранится SSH-ключ (при написании файла, вы можете подставить свои данные). Также в этом примере покажем, как создавать несколько псевдонимов в ssh_config для соединения по SSH к различным серверам (в первом случае — это наш сервер на , во втором случае — это сервер базы данных).

Host freehostUA HostName Port 22 User root IdentityFile /root/.ssh/id_rsa Host DB1 HostName Port 2222 User adminDB

*Примечание: Как создать пару SSH-ключей под Linux подробно описано в статье на нашем сайте

Решение проблемы подвисшей SSH-сессии

Приведем еще один пример файла ssh_config, но уже с использованием параметров ServerAliveInterval, ServerAliveCountMax и PreferredAuthentications (в данном примере выбран метод аутентификации publickey, т.е. с использованием SSH-ключей):

Читайте также:  Ubuntu Phone os установка вместо Android

Host test1 HostName User root PreferredAuthentications publickey ServerAliveInternal 5 ServerAliveCountMax 1

Иногда сессии SSH могут зависать по причине проблем с качеством связи и по др. причинам. Что происходит в данном случае? SSH начнет проверять соединение, выполняя отправку запросов echo на удаленный сервер в течении определенных промежутков времени. За это отвечает параметр ServerAliveInterval. Если же без ответа останется больше запросов, чем задано в параметре ServerAliveCountMax, то SSH закроет данное соединение.

Примеры файлов ssh_config для организации доступа к серверам по SSH

Организация SSH Jump Server

SSH Jump Server — это сервер под управлением ОС Линукс, единственный в корпоративной сети компании, доступный из сети Интернет. Такой сервер применяется как шлюз в частной сети для получения доступа к другим компьютерам под Linux, используя SSH. Bastion host — единственный шлюз, через который можно получить доступ к ИТ-инфраструктуре компании. Это очень действенная мера в плане обеспечения кибербезопасности и защиты от атак злоумышленников. Для системного администратора наличие Jump host в корпоративной сети существенно упрощает ведение учета всех SSH-соединений. С помощью командной строки эту функцию можно реализовать, используя флаг –J.

Например, если вы имеете доступ к «бастиону» , то вы получаете возможность доступа к другим серверам в локальной сети организации, которые расположены за NAT, для этого нужно применить флаг -J в командной строке:

ssh -J

где — это IP адрес станции в локальной сети, к которой вы планируете подключение.

Однако, вместо ввода команды в терминале проще сразу прописать данную функцию в файле ssh_config:

Host 10.1.1.* ProxyJump

Когда администратор введет команду ssh в терминале, SSH-клиент установит соединение c , в результате чего, оно будет перенаправлено на IP в локальной сети. Конечно же, мы показали самый простой пример использования опции ProxyJump в ssh_config, для более серьезных решений необходимо еще провести дополнительные настройки на удаленном сервере, но эта тема уже для отдельной статьи про Jump host.

Заключение

Теперь у вас есть Visual Studio Code, настроенный для разработки на удаленном сервере с помощью SSH. Удаленное исполнение при помощи IDE обеспечивает множество преимуществ, в том числе способность быстро тестировать процесс выполнения вашего кода на различных операционных системах и с различными техническими спецификациями оборудования. Если у вас есть подключение к Интернету, вы можете подключаться к вашему серверу и работать над вашим кодом с любого компьютера, а также можете заниматься разработкой в среде Linux, даже если будете использовать Windows в качестве основной операционной системы.

Что можно делать с помощью SSH

Всё, что мож­но было бы делать, если бы вы сиде­ли за ком­пью­те­ром, открыв команд­ную строку:

  • настра­и­вать сервер;
  • про­грам­ми­ро­вать;
  • уста­нав­ли­вать Вордпресс;
  • чинить неис­прав­но­сти на сайте;
  • запус­кать и оста­нав­ли­вать про­грам­мы, в том чис­ле намерт­во зависшие;
  • копи­ро­вать файлы;
  • управ­лять настрой­ка­ми безопасности;
  • заста­вить ком­пью­тер перезагрузиться;
  • отфор­ма­ти­ро­вать какой-нибудь диск;
  • забрать файл с уда­лён­но­го ком­пью­те­ра или заки­нуть туда свой файл;
  • выпол­нить этот заки­ну­тый файл уда­лён­но на дру­гом компьютере;
  • делать ещё сот­ню вещей, для кото­рых доста­точ­но команд­ной строки.

Вот несколь­ко при­ме­ров из реаль­ной жизни:

У вас намерт­во завис про­цесс веб-сервера на уда­лён­ном ком­пью­те­ре, и ника­кие внут­рен­ние служ­бы не могут с ним ниче­го сде­лать. Под­клю­ча­е­тесь по SSH, нахо­ди­те завис­ший про­цесс и уби­ва­е­те его. А то и гово­ри­те машине перезагрузиться.

В офис вашей ком­па­нии ворва­лись бой­цы в мас­ках. Пока они идут в сер­вер­ную, вы наби­ра­е­те коман­ду сте­реть все жёст­кие дис­ки. Коман­да по SSH доле­та­ет до сер­ве­ра, и вуа­ля. Гос­по­да в мас­ках оста­нут­ся не при делах.

Вы напи­са­ли телеграм-бота и хоти­те, что­бы он рабо­тал на уда­лён­ном сер­ве­ре. Вы арен­ду­е­те ячей­ку на Digital Ocean, под­клю­ча­е­тесь к ней по SSH, загру­жа­е­те ваше­го бота туда и акти­ви­ру­е­те. Теперь про­грам­ма, кото­рая отве­ча­ет за бота, кру­тит­ся на уда­лён­ном сер­ве­ре, а ваш ком­пью­тер мож­но без­опас­но выключить.

Вы уже ушли с рабо­ты, как вдруг вспом­ни­ли, что забы­ли ски­нуть в общий про­ект свои послед­ние изме­не­ния. Пока вы ждё­те мет­ро, вы с теле­фо­на захо­ди­те по SSH на рабо­чий ком­пью­тер и пише­те коман­ды, что­бы послед­ние изме­не­ния доле­те­ли до коллег.

У вашей девуш­ки (или пар­ня) сего­дня день рож­де­ния. Вы под­клю­ча­е­тесь к её ком­пью­те­ру дистан­ци­он­но, загру­жа­е­те при­ло­же­ние с поздрав­ле­ни­ем и уда­лён­но запус­ка­е­те. Это очень кри­по­во, не делай­те так никогда.

У вас в офи­се есть кофе­ма­ши­на, кото­рая под­дер­жи­ва­ет SSH. Вы под­клю­ча­е­тесь к ней и зака­зы­ва­е­те кофе. К момен­ту, как вы дохо­ди­те до кофе­пойн­та, ваш кофе готов. Но кто под­ста­вит кружку?