Вот и пришло время новых технологий и решений "из коробки" - пришёл заббикс 2.2 и теперь MySQL мониторится нативным шаблоном. Давайте посмотрим как это делается.
В ходе настроек будем опираться на статьи
http://blog.volobuev.su/monitoring-mysql-v-zabbix/ и
http://blog.themilkyway.org/2013/11/how ... app-mysql/
Итак, приступим. Сначало создадим в БД пользователя
zabbix с паролем
123456 и перечитаем таблицу привилегий (команда попросит ввести ваш пароль на MySQL):
Код: Выделить всё
mysql -uroot -p -e"GRANT USAGE ON *.* TO 'zabbix'@'127.0.0.1' IDENTIFIED BY '123456'";
mysql -uroot -p -e"GRANT USAGE ON *.* TO 'zabbix'@'localhost' IDENTIFIED BY '123456'";
mysql -uroot -p -e"flush privileges"
Теперь проверим что у нас всё получилось:
Если статуст увидели - то хорошо, пошли дальше.
Нам надо определиться где будет лежать конфиг - я не стал изобретать велосипед и воспользовался стандартными путями - мои скрипты будут лежать в
/usr/local/etc/zabbix22/zabbix - именно тут мы создаём файл конфигурации
Код: Выделить всё
cd /usr/local/etc/zabbix22/zabbix
touch .my.cnf
И вписываем в него наши параметры для подключения
[mysql]
user=zabbix
password=123456
[mysqladmin]
user=zabbix
password=123456
Теперь идём править файл конфигурации агента, в той его части, что следит за скулем - редактируем файл
/usr/local/etc/zabbix22/zabbix_agentd.conf.d/userparameter_mysql.conf - там есть параметр
HOME= в котором и надо прописать вот тот путь, где лежит конфиг подключения к MySQL - Соответственнно мой файл стал выглядеть так:
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/usr/local/etc/zabbix22/zabbix mysql -N | awk '{print $$2}'
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/zabbix22/zabbix mysql -N
UserParameter=mysql.ping,HOME=/usr/local/etc/zabbix22/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
А теперь надо этот конфиг, подключить к основному конфигу Агента - правим
/usr/local/etc/zabbix22/zabbix_agentd.conf вот эту часть
### Option: Include
#<----->You may include individual files or all files in a directory in the configuration file.
#<----->Installing Zabbix will create include directory in /usr/local/etc, unless modified during the compile time.
#
# Mandatory: no
# Default:
# Include=
Include=/usr/local/etc/zabbix22/zabbix_agentd.conf.d/
Всё - теперь перезапускаем клиента и он начнёт отдавать данные по скулю. Правда появятся они не сразу, так как в шаблоне есть автообнаружение.
Собственно о шаблоне - приложу пару скриншотов, как это настраивается в самом интерфейсе zabbix:
- 1.jpg (130.17 КБ) 7407 просмотров
- 2.jpg (124.3 КБ) 7407 просмотров
На сегодняшний момент если БД была перезапущена, или сервер перезагрузился - то zabbix будет показывать что "MySQL не запущен" - после перезапуска агента всё становится на свои места. Такая фича. пока не боролся с ней