Мониторинг репликации MySQL в Zabbix
dev-db/mysql-5.1.67
net-analyzer/zabbix-2.2.2-r1
Мониторинг репликации MySQL сводится к наблюдению за наиболее значимыми параметрами Slave сервера, которые доступны командой
SHOW SLAVE STATUS;
Настройка MySQL
Создать пользователя zabbix@localhost в MySQL с правами REPLICATION CLIENT.
mysql [(NONE)]> SHOW grants FOR zabbix@localhost; +----------------------------------------------------------------------------------------------------------------------------+ | Grants FOR zabbix@localhost | +----------------------------------------------------------------------------------------------------------------------------+ | GRANT REPLICATION CLIENT ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY PASSWORD '*FE1ED36AEB266F86C56A8EF2D0F0EE6B147DED79' | +----------------------------------------------------------------------------------------------------------------------------+
Установка скрипта
Создание папки для скриптов:
mkdir /etc/zabbix/scripts/ chown root:zabbix -R /etc/zabbix/scripts/ chmod 750 /etc/zabbix/scripts/
Создадим сам скрипт:
Кеш необходим ввиду особенности работы Zabbix, когда на каждый элемент собираемых данных выполняется по отдельному запросу. Т.е. если вы мониторинге 20 параметров MySQL, то за один период обновления будет инициировано 20 обращений к БД.
Время действия кэша в секундах должно устанавливается чуть меньше чем период опроса элементов.
Значения yes,no,none,connecting и пустую строку скрипт заменит на 0 или 1
Установка прав
chown root:zabbix /etc/zabbix/scripts/mysql-slave.sh chmod 550 /etc/zabbix/scripts/mysql-slave.sh
Проверка
sudo -u zabbix /etc/zabbix/scripts/mysql-slave.sh Master_Host USER PASSWORD
Вы должны получить данные, если этого не произошло, посмотреть содержимое кэш файла и т.д.
Если для проверки скрипт запускался с правами root, то он будет владельцем кэш файла - удалите кэш файл после проверок.
Настройка Zabbix Agent
Настройка
/etc/zabbix/zabbix_agentd.conf
... UserParameter=mysql-slave[*],/etc/zabbix/scripts/mysql-slave.sh "$1" [USER] [PASSWORD]
Для работы скрипта нужно передать имя пользователя и пароль для подключения к MySQL. Их можно указать в конфиге или в самом скрипте.
Перезапустить
/etc/init.d/zabbix-agentd restart
Проверка
zabbix_get -s HOST -k 'mysql-slave[Master_Host]'
Настройка Zabbix Server
Для контролируемых данных нужно создать соответствующее элементы с типом «Zabbix агент» и ключом вида:
mysql-slave[key]
где key - контролируемая метрика
Готовый Шаблон для мониторинга MySQL Slave (agent) с уже настроенными элементами и графиками.
Обсуждение
Спасибо большое