Munin: мониторинг Percona Server

Aug 25, 2016 20:52 · 339 words · 2 minute read munin monitoring percona

Давайте разберемся, как отслеживать важные параметры 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-интерфейсе системы мониторинга.

tweet Share