В данном примере рассмотрим простой вариант использования языка программирования 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 .
Иногда mercurial, при скачивании и комитах ругается на https. Особенно на самоподписанные сертификаты. Чтобы заработал…
Если возникает ошибка libvirt destroy lxc permission denied , при попытке остановить контейнер: _x000D_# virsh…
Иногда возникает ситуация, когда криво настроенные пакеты не устанавливаются в системе. У меня это произошло…