Мониторинг MySQL в Zabbix

On 24/09/2013, in Zabbix, by Алексей Волобуев

Захотелось мне мониторить параметры MySQL с помощью системы мониторинга Zabbix. О том, как это сделать буду описывать далее…

У меня используется система мониторинга Zabbix версия 2.0.х. Zabbix из коробки имеет шаблон Template App MySQL . Для его работы требуется произвести следующие действия:

1) Создать пользователя в MySQL без прав. Пусть будет пользовать zabbix с паролем superpassword.

mysql> GRANT USAGE ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'superpassword';
FLUSH PRIVILEGES;

2) Правим файл конфигурации агента:
nano /usr/local/etc/zabbix2/zabbix_agentd.conf

Добавляем строчку:
Include=/usr/local/etc/zabbix2/zabbix_agentd.conf.d/

3) В папке Include=/usr/local/etc/zabbix2/zabbix_agentd.conf.d/ создадим файл userparameter_mysql.conf

Вносим туда такие строки
### Set of parameters for monitoring MySQL server (v3.23.42 and later)
### Change -u and add -p if required
UserParameter=mysql.version,mysql -V
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/usr/local/etc/zabbix2 mysql -N | awk '{print $$2}'
UserParameter=mysql.ping,HOME=/usr/local/etc/zabbix2 mysqladmin ping | grep -c alive
# 'sum' on data_length or index_length alone needed when we are getting this information for whole database instead of a single table
UserParameter=mysql.size[*],echo "select sum($(case "$3" in both|"") echo "data_length+index_length";; data|index) echo "$3_length";; free) echo "data_free";; esac)) from information_schema.tables$([[ "$1" = "all" || ! "$1" ]] || echo " where table_schema='$1'")$([[ "$2" = "all" || ! "$2" ]] || echo "and table_name='$2'");" | HOME=/usr/local/etc/zabbix2 mysql -N

4) В папке /usr/local/etc/zabbix2 необходимо создать файл .my.cnf (обращаю внимание файл начинается с точки). В него вносятся данные о пользователе из п.1
nano .my.cnf
[client]
user = zabbix
password = superpassword

5)  Перезагружаем агента Zabbix
/usr/local/etc/rc.d/zabbix_agentd restart

6) Подключаем шаблон Template App MySQL к хосту. Ждем некоторое время пока появятся данные в Zabbix.

 

Дополнено (07.12.2013):

Если перезагрузить сервер, то Zabbix радостно рапортует, что MySQL is Down, хотя на самом деле MySQL успешно работает. Я просто рестартую агент Заббикса и все восстанавливается. Позже разберусь с этой проблемой.

Tagged with:  

5 Responses to Мониторинг MySQL в Zabbix

  1. Юра:

    Спасибо, помог.
    Только у меня чего-т в логах пишет, что пытается лезть от имени меня (не рут), а не zabbix, хотя заббикс-агент работает от zabbix. Ну да фиг с ним — добавил еще себя в mysql, ибо тоже впадло разбираться.

    • Юра:

      Разобрался, может кому пригодится.
      В файле userparameter_mysql.conf мы встречаем параметр HOME=/usr/local/etc/zabbix2, так вот файл .my.cnf с логином и паролем должен находится именно в этом каталоге, в который смотрит параметр HOME.

  2. Елина Викторовна:

    Все в порядке, мониторинг нормально отработал нарушение mysql репликации. Больше тут настраивать нечего, графики и экраны не нужны, в них нет необходимости. На этом работа по настройке мониторинга окончена.

  3. Artyom:

    GRANT USAGE ON *.* TO ‘zabbix’@’%’ IDENTIFIED BY ‘superpassword’; можно записать на более секурно
    GRANT USAGE ON *.* TO ‘zabbix’@’localhost’ IDENTIFIED BY ‘superpassword’;

  4. Artyom:

    и кстати flush тоже не нужен

Добавить комментарий для Юра Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *