Zabbix 2 — мониторим MySQL
Новая версия Zabbix 2, помимо прочих плюшек, умеет легко и красиво мониторить основные параметры MySQL-серверов. Более того, в ней для этого есть стандартный шаблон Template Default MySQL. И как оказалось, настраивается он в пару нажатий.
Итак, на хосте, который надо мониторить, нам понадобится следующее:
1. Выполняем в MySQL запрос вида
GRANT USAGE ON *.* TO 'zabbix'@'%' IDENTIFIED BY 'superpassword';
2. В zabbix_agentd.conf проверяем подключение дополнительных конфигов и путь к ним:
Include=/etc/zabbix/conf.d/
3. Если при установке агента файл userparameter_mysql.conf не распаковался, создаем его в каталоге из п.2:
UserParameter=mysql.status[*],echo "show global status where Variable_name='$1';" | HOME=/var/lib/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=/var/lib/zabbix mysql -N
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.version,mysql -V
4. В этом файле обращаем внимание на переменную HOME=/var/lib/zabbix. Именно в этот каталог надо положить файл .my.cnf со следующим содержанием:
[client]
user = zabbix
password = superpassword
5. Все, теперь осталось подключить шаблон к хосту и наблюдать за цифрами и веселыми картинками.
6.2.2 MySQL
Файл конфигурации misc/conf/zabbix_agentd.conf содержит список пользовательских параметров, которые могут быть использованы для наблюдения за MySQL.
### Set of parameter for monitoring MySQL server (v3.23.42 and later) ### Change -u and add -p if required #UserParameter=mysql[ping],mysqladmin -uroot ping|grep alive|wc -l #UserParameter=mysql[uptime],mysqladmin -uroot status|cut -f2 -d":"|cut -f1 -d"T" #UserParameter=mysql[threads],mysqladmin -uroot status|cut -f3 -d":"|cut -f1 -d"Q" #UserParameter=mysql[questions],mysqladmin -uroot status|cut -f4 -d":"|cut -f1 -d"S" #UserParameter=mysql[slowqueries],mysqladmin -uroot status|cut -f5 -d":"|cut -f1 -d"O" #UserParameter=mysql[qps],mysqladmin -uroot status|cut -f9 d":" #UserParameter=version[mysql],mysql -V
6.2.2.1 mysql[ping]
Проверить в рабочем ли состоянии MySQL
Результат: 0 - не запущен 1 - в рабочем состоянии
6.2.2.2 mysql[uptime]
Количество секунд с момента запуска MySQL
6.2.2.3 mysql[threads]
Количество потоков MySQL
6.2.2.4 mysql[questions]
Количество обрабатываемых запросов
6.2.2.5 mysql[slowqueries]
Количество медленных запросов
6.2.2.6 mysql[qps]
Запросов в секунду
6.2.2.7 mysql[version]
Версия MySQL. Пример: mysql Ver 11.16 Distrib 3.23.49, для pc-linux-gnu (i686)