0. Кому как удобно ставим zabbix агента. Создаем директорию /zabix/1. Создаем пользователя на слейве mysql.
GRANT REPLICATION CLIENT ON *.* TO 'replication'@'localhost' IDENTIFIED BY 'S0mEPass';2. пишем скрипт slave_status
#!/bin/sh
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:mysql --defaults-file=/zabix/.my.cnf -Bse "show slave status\G" | grep $1 | awk '{ print $2 }' | head -n 1
3. Делаем конфиг /zabbix/.my.cnf[client]
user=replication
host=localhost
password='S0mEPass'Конфиг нужен затем, чтобы в вывод не попадали такие сообщения:
Warning: Using a password on the command line interface can be insecure.
Yes4. В конфиг zabbix агента добавляем
UserParameter=mysql-slave[*],/scripts/slave_status "$1"
5. Делаем рестарт zabbix агента
Забираем (http://opennet.ru/soft/zbx_export_templates.xml или https://cloud.mail.ru/public/2feb5f4dee82/zbx_export_templat...
) шаблон для zabbix (работает на 2.2), в шаблоне три параметра и два триггера.
Допиливаем под себя, не забываем делать рестарты.URL:
Обсуждается: http://www.opennet.me/tips/info/2863.shtml
show slave status не всегда говорит правду. На личном опыте проверено. Для гарантированного мониторинга стоит использовать дополнительную табличку где автоинкрементом раз в N минут увеличивать поле, и сравнивать его значение с значением на slave серверах.
Пользователю replication@localhost можно сделать пустой пароль.
> grep $1 | awk '{ print $2 }' | head -n 1awk "/$1/ {print \$2; exit}"
Костыль на костыле и с велосипедом.
В поставке zabbix-agent поставляется шаблон для мониторинга mysql. В CentOS лежит примерно тут
/usr/share/doc/zabbix20-agent-2.0.11/userparameter_mysql.conf
Создаем .my.cnf в хомяке zabbix и в файл параметров добавляем строки
UserParameter=mysql.master[*], HOME=/var/lib/zabbix mysql -e "show master status\G" | awk '/'$1'/{print $$2}'
UserParameter=mysql.slave[*], HOME=/var/lib/zabbix mysql -e "show slave status\G" | awk '/'$1'/{gsub(/NULL/,"99999",$$2); print $$2}'
И этого достаточно для просмотра show slave status
Ну и можно еще
UserParameter=mysql.replication, HOME=/var/lib/zabbix mysql -BNe "SELECT ABS(TIMESTAMPDIFF(SECOND,replication_date,(SELECT replication_date FROM system_monitor.master_status))) FROM system_monitor.slave_status;"только создать базу и сделать автоинкремент даты уже скриптами.
Percona Monitoring Plugins for Zabbix http://www.percona.com/doc/percona-monitoring-plugins/1.1/za...