| Мониторинг репликации MySQL при помощи Zabbix | [исправить] | 
| 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.
   Yes
4. В конфиг 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_templates.xml
) шаблон для zabbix (работает на 2.2), в шаблоне три параметра и два триггера.  
Допиливаем под себя, не забываем делать рестарты.
 | 
|  | 
| 
 | 
 | | Раздел:    Корень / Администратору / Система / Просмотр состояния и мониторинг системы | 
| | 1, Громозека (?), 10:08, 14/11/2014  [ответить] | +/– |  |  show slave status не всегда говорит правду. На личном опыте проверено. Для гарантированного мониторинга стоит использовать дополнительную табличку где автоинкрементом раз в N минут увеличивать поле, и сравнивать его значение с значением на slave серверах. 
 |  |  | 
 
 | 2, Зевака (?), 11:16, 14/11/2014  [ответить] | +/– |  | Пользователю replication@localhost можно сделать пустой пароль. 
 |  |  | 
 
 | 3, имя (?), 09:01, 17/11/2014  [ответить] | +1 +/– |  | > grep $1 | awk '{ print $2 }' | head -n 1 awk "/$1/ {print \$2; exit}"
 |  |  | 
 
 | 4, McLeod095 (ok), 12:52, 18/11/2014  [ответить] | +/– |  |  Костыль на костыле и с велосипедом. В поставке 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;"
 только создать базу и сделать автоинкремент даты уже скриптами. 
 |  |  | 
 
 
 
 |