The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Мониторинг репликации 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), в шаблоне три параметра и два триггера.  
Допиливаем под себя, не забываем делать рестарты.
 
09.11.2014 , Автор: globus
Ключи: zabbix, monitoring, mysql, replication / Лицензия: CC-BY
Раздел:    Корень / Администратору / Система / Просмотр состояния и мониторинг системы

Обсуждение [ RSS ]
  • 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;"

    только создать базу и сделать автоинкремент даты уже скриптами.

     
  • 5, Алексей (??), 10:24, 25/11/2014 [ответить]  
  • +/
    Percona Monitoring Plugins for Zabbix http://www.percona.com/doc/percona-monitoring-plugins/1.1/zabbix/index.html
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру