В данном примере рассмотрим простой вариант использования языка программирования Python для подключения к базе данных MariaDB / MySQL и получения от нее состояния репликации. В качестве операционной системы, на которой запустим скрипт, будем использовать Linux.
Для настройки репликации СУБД, можно использовать инструкцию Как настроить кластер MariaDB / MySQL .
В системе должен быть установлен python с поддержкой драйвера mysql. Сам питон ставим одной из команд.
а) На системах RPM (Red Hat, CentOS, Fedora):
yum install python3 python3-pip
б) На системах DEB (Debian, Ubuntu):
apt-get install python3 python3-pip
После установим драйвер PyMySQL для Python:
pip3 install PyMySQL
Подключаемся к СУБД MySQL:
mysql -uroot -p
Теперь создаем пользователя в СУБД, под которым мы будем подключаться к базе данных с целью получения статуса репликации:
> GRANT REPLICATION CLIENT ON *.* TO ‘replmon’@’localhost’ IDENTIFIED BY ‘repl_password3’;
* данной учетной записи мы даем минимальные права, необходимые для просмотра статуса.
Создаем скрипт в любой директории, например:
vi /scripts/mysql_repl_mon.py
Пример скрипта для мониторинга состояния:
Даем права скрипту на выполнение:
chmod +x /scripts/mysql_repl_mon.py
Запускаем скрипт для проверки:
/scripts/mysql_repl_mon.py
… если репликация работает корректно, скрипт должен вернуть 1, иначе — 0.
1 | Шебанг — путь до исполняемого файла интерпретатора |
3 | Импортируем библиотеку для работы с MySQL |
5 — 7 | Задаем переменные, которые будем использовать для подключения к СУБД |
10 | Подключаемся к базе |
11 | Создаем объект, который делает запросы и получает их результаты в виде списка |
12 | Выполняем SQL-запрос, который будет возвращать статус репликации баз данных |
13 | Получаем результат в виде массива и записываем его в переменную rows |
15 | Значение параметра Slave_IO_Running заносим в одноименную переменную |
16 | Значение параметра Slave_SQL_Running заносим в одноименную переменную |
18 — 21 | Проверяем значения переменных. Если одно из них не равно Yes, то возвращаем 0, иначе — 1 |
23 | Закрываем соединение с базой данных |
Данный скрипт можно добавить в cron на выполнение с периодичностью раз в 5 минут (или чаще) и дописать на отправку письма администратору, в случае возникновения проблем.
Но лучше всего настроить его в связке с системой мониторинга. Для примера, читайте инструкцию Настройка мониторинга репликации MariaDB/MySQL с помощью Zabbix .
Zulip — программное обеспечение для реализации корпоративного чата. Разработан в 2012 году, в 2014 был…
Zookeeper — cервис-координатор, который позволяет обеспечить контроль синхронизации данных. Разработан на Java компанией Apache Software…
Zimbra — программное обеспечение для реализации почтового сервиса или, если сказать точнее, автоматизации совместной деятельности…
Zabbix — бесплатная система мониторинга. Позволяет отслеживать состояние сетевых узлов, компьютеров и серверов. Возможности: Поддержка…
YouTube — компания-владелец одноименного портала для просмотра и хранения видео. Чтобы пользоваться данным порталом достаточно…
Yota — провайдер, предоставляющий доступ к сети Интернет по беспроводной связи. Впервые, сервис начал работать…