Munin: мониторинг Percona Server
Aug 25, 2016 20:52 · 339 words · 2 minute read
Давайте разберемся, как отслеживать важные параметры Percona Server и отображать их на графиках в системе мониторинга Munin!
Считаем, что у нас уже установлен Munin со всеми необходимыми зависимостями и Percona Server. Как уже упоминалось ранее, настройки плагинов mysql*
находятся в файле /etc/munin/plugin-conf.d/munin-node
и имеют примерно следующий вид:
[mysql*]
user root
env.mysqlopts --defaults-file=/etc/mysql/debian.cnf
env.mysqluser munin
env.mysqlpassword <Очень_сложный_пароль>
env.mysqlconnection DBI:mysql:mysql;host=127.0.0.1;port=3306
Не забываем создать соответствующего пользователя в базе данных с помощью следующих запросов:
CREATE USER munin@127.0.0.1 IDENTIFIED BY '< Очень_сложный_пароль >';
GRANT SUPER,PROCESS ON *.* TO munin@127.0.0.1;
GRANT SELECT ON mysql.* TO munin@127.0.0.1;
FLUSH PRIVILEGES;
Просмотрим все доступные для использования плагины мониторинга баз данных MySQL командой:
munin-node-configure --suggest 2>&1 | grep mysql
Результат выполнения команды выглядит примерно так:
mysql_ | yes | yes (innodb_bpool innodb_bpool_act innodb_io tmp_tables +bin_relay_log +commands +connections +files_tables +innodb_insert_buf +innodb_io_pend +innodb_log +innodb_rows +innodb_semaphores +innodb_tnx +myisam_indexes +network_traffic +qcache +qcache_mem +replication +select_types +slow +sorts +table_locks)
Для создания симлинков на все плагины в директории /etc/munin/plugins/
запускаем:
munin-node-configure --shell 2>&1 | grep mysql | /bin/bash
Примечание. Гораздо лучше из списка доступных выбрать только действительно необходимые плагины и включить их вручную.
Проверим корректность работы плагина с помощью munin-run
:
munin-run mysql_innodb_bpool_act
Unknown section: Main thread process no. 4159, id 140055130330880, state: sleeping at /etc/munin/plugins/mysql_innodb_bpool_act line 1098.
Получаем сообщение об ошибке, которое можно довольно легко исправить. Открываем на редактирование файл /usr/share/munin/plugins/mysql_
:
nano /usr/share/munin/plugins/mysql_
Находим процедуру update_innodb
(в моем случае это 965 строка) и в ней после строки $sth->finish();
добавляем еще одну $status =~ s/-----------------\nMain thread//g;
В результате эта процедура будет выглядеть следующим образом:
...
sub update_innodb {
my ($dbh) = @_;
my $sth = $dbh->prepare('SHOW /*!50000 ENGINE*/ INNODB STATUS');
eval {
$sth->execute();
};
if ($@) {
if ($@ =~ /Unknown (storage|table) engine 'INNODB'|Cannot call SHOW INNODB STATUS because skip-innodb is defined/i) {
$data->{_innodb_disabled} = 1;
return;
}
die $@;
}
my $row = $sth->fetchrow_hashref();
my $status = $row->{'status'};
$sth->finish();
$status =~ s/-----------------\nMain thread//g;
parse_innodb_status($status);
}
...
Еще раз проверим работоспособность плагина:
munin-run mysql_innodb_bpool
ib_bpool_size.value 4194303
ib_bpool_dbpages.value 3527649
ib_bpool_free.value 0
ib_bpool_modpages.value 30115
Не забываем перезапустить munin-node
:
/etc/init.d/munin-node restart
Спустя несколько минут графики появятся в web-интерфейсе системы мониторинга.