Мониторинг MySQL/MariaDB

Мониторинг MySQL/MariaDB

zabbix

Для рассмотрения функции мониторинга, примем установку Zabbix и наличие пользователя MySQL за исходные.

Разрешаем параметру просмотр MySQL с помощью следующей комбинации:

MariaDB [(none)]> grant usage on *.* to 'zabbix'@'localhost';
Query OK, 0 rows affected (0.00 sec)

В файле /etc/zabbix/zabbix_agentd.conf следует проверить присутствие строчки:

Include=/etc/zabbix/zabbix_agentd.d/

Далее проверяем содержание или выполняем создание файла так:

# ls -l /etc/zabbix/zabbix_agentd.d/
total 4
-rw-r--r-- 1 zabbix zabbix 1517 Sep 18 12:45 userparameter_mysql.conf

В обязательном порядке файл должен содержать следующие данные:

# cat /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf
# For all the following commands HOME should be set to the directory that has .my.cnf file with password information.
# Flexible parameter to grab global variables. On the frontend side, use keys like mysql.status[Com_insert].
# Key syntax is mysql.status[variable].
UserParameter=mysql.status[*],echo «show global status where Variable_name=’$1′;» | HOME=/var/lib/zabbix mysql -N | awk ‘{print $$2}’
# Flexible parameter to determine database or table size. On the frontend side, use keys like mysql.size[zabbix,history,data].
# Key syntax is mysql.size[<database>,<table>,<type>].
# Database may be a database name or «all». Default is «all».
# Table may be a table name or «all». Default is «all».
# Type may be «data», «index», «free» or «both». Both is a sum of data and index. Default is «both».
# Database is mandatory if a table is specified. Type may be specified always.
# Returns value in bytes.
# ‘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=/var/lib/zabbix mysql -N
UserParameter=mysql.ping,HOME=/var/lib/zabbix mysqladmin ping | grep -c alive
UserParameter=mysql.veysql -V

Теперь можно приступать к созданию каталога, что отмечен в переменной HOME:

# mkdir /var/lib/zabbix

Здесь мы производим создание файла со следующим наполнением:

# cat /var/lib/zabbix/.my.cnf
[client]
user = zabbix
password = p@ssw0rd

Выполняем перезапуск zabbix-agent:

# service zabbix-agent restart
Shutting down Zabbix agent: [ OK ]
Starting Zabbix agent: [ OK ]

В завершение, традиционно проверяем наши данные:

zabbix_mysql_1

zabbix_mysql_2

Comments

comments

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