Не работают плагины Munin - mysql_qcache

12 3
D
На сайте с 28.06.2008
Offline
1101
2008

Сам Мунин работает, все графики рисуются, в том числе и почти все мускуля.

Но мне хотелось бы еще наблюдать за qcache.

Есть три плагина:

mysql_qcache

mysql_qcache_mem

mysql_qcache_ratio

Ни один из них не работает, при тестировании пишет:

munin-run mysql_qcache_mem --debug
# Unknown service 'mysql_qcache_mem'

Что не так?

Кофигурейт по мускулю ошибок не выводит:

munin-node-configure --suggest | grep mysql
mysql_ | yes | yes (connections files_tables innodb_bpool innodb_bpool_act innodb_io innodb_log innodb_rows innodb_tnx network_traffic sorts table_locks tmp_tables +bin_relay_log +commands +innodb_insert_buf +innodb_io_pend +innodb_semaphores +myisam_indexes +qcache +qcache_mem +replication +select_types +slow)

P.S. Дебиан 9.5 + mariadb 10.3

baas
На сайте с 17.09.2012
Offline
161
#1

Хмм, а что говорит команда

su -m munin -c /usr/local/bin/munin-cron

У вас она может отличаться, у меня FreeBSD.

Еще можно проверить в самих скриптах мунина

# head -n 2 /usr/local/etc/munin/plugins/mysql_qcache
#!/usr/local/bin/perl
#/usr/bin/perl

У перла какая версия?

Настройка BSD систем. (https://www.fryaha.ru) Знание сила, незнание Рабочая сила!
D
На сайте с 28.06.2008
Offline
1101
#2

Посмотрел у плагинов мускуля которые работают и у тех которые не работают - написано одинаково:

#!/usr/bin/perl

команда что вы написали на Дебиан не выполняется

В логах мунина за сегодня по запросу "qcache" ничего не нашло.

Версия

This is perl 5, version 24, subversion 1 (v5.24.1) built for x86_64-linux-gnu-thread-multi
baas
На сайте с 17.09.2012
Offline
161
#3
Dram:
Посмотрел у плагинов мускуля которые работают и у тех которые не работают - написано одинаково:


команда что вы написали на Дебиан не выполняется

В логах мунина за сегодня по запросу "qcache" ничего не нашло.

Версия

хмм, а покажите сам файл и какие права на нем стоят?

Права исполнения стоят +x?

D
На сайте с 28.06.2008
Offline
1101
#4

Проблемные плагины пометил на скрине. До них и после них плагины работают.

Вот код плагина:

#!/usr/bin/perl
# -*- perl -*-

use strict;

my $MYSQLADMIN = $ENV{mysqladmin} || "mysqladmin";
my $COMMAND = "$MYSQLADMIN $ENV{mysqlopts} extended-status";

my %WANTED = ( "Qcache_queries_in_cache" => "queries");

my %WANTEDTYPE = ( "Qcache_queries_in_cache" => "GAUGE");

my $arg = shift();

if ($arg eq 'config') {
print_config();
exit();
} elsif ($arg eq 'autoconf') {
unless (test_service() ) {
print "yes\n";
} else {
print "no\n";
}
exit;
}


open(SERVICE, "$COMMAND |")
or die("Coult not execute '$COMMAND': $!");

while (<SERVICE>) {
my ($k, $v) = (m/(\w+).*?(\d+(?:\.\d+)?)/);
next unless ($k);
if (exists $WANTED{$k} ) {
print("$WANTED{$k}.value $v\n");
}
}

close(SERVICE);


sub print_config {

my $num = 0;

print('graph_title MySQL Queries in cache
graph_args --base 1000
graph_vlabel queries
graph_category db
graph_info Plugin available at <a href="http://rodolphe.quiedeville.org/hack/munin/">http://rodolphe.quiedeville.org/hack/munin/</a>
');

for my $key (keys %WANTED) {
my $title = $WANTED{$key};
print("$title.label ${title}\n",
"$title.min 0\n",
"$title.type ".$WANTEDTYPE{$key}."\n",
"$title.max 500000\n",
"$title.draw ", ($num) ? "STACK" : "AREA" , "\n",
);
$num++;
}

}


sub test_service {

my $return = 1;

system ("$MYSQLADMIN --version >/dev/null 2>/dev/null");
if ($? == 0)
{
system ("$COMMAND >/dev/null 2>/dev/null");
if ($? == 0)
{
print "yes\n";
$return = 0;
}
else
{
print "no (could not connect to mysql)\n";
}
}
else
{
print "no (mysqladmin not found)\n";
}
exit $return;
}
png 180440.png
baas
На сайте с 17.09.2012
Offline
161
#5

У меня он тоже не запустился, ошибка как у вас.

Вот мой файл.

#!/usr/local/bin/perl
#/usr/bin/perl
#
# Copyright (C) 2006 - Rodolphe Quiedeville <rodolphe@quiedeville.org>
# Copyright (C) 2003-2004 - Andreas Buer
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2 dated June,
# 1991.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
# $Log$
# Revision 1.0 2006/04/28 09:04:01 rodo
# Add lower limit fixed to 0
#
# Revision 1.0 2006/04/26 16:04:01 rodo
# Created by Rodolphe Quiedeville
#
# Parameters:
#
# config
# autoconf
#
# Configuration variables
#
# mysqlopts - Options to pass to mysql
# mysqladmin - Override location of mysqladmin
#
#%# family=auto
#%# capabilities=autoconf

use strict;

my $MYSQLADMIN = $ENV{mysqladmin} || "mysqladmin";
my $COMMAND = "$MYSQLADMIN $ENV{mysqlopts} extended-status";
my $COMMANDSIZE = "$MYSQLADMIN $ENV{mysqlopts} variables";

my %WANTED = ( "Qcache_free_memory" => "free" );

my $arg = shift();

if ($arg eq 'config') {
print_config();
exit();
} elsif ($arg eq 'autoconf') {
unless (test_service() ) {
print "yes\n";
} else {
print "no\n";
}
exit;
}

my ($free, $used) = (0,0);

open(SERVICE, "$COMMAND |")
or die("Coult not execute '$COMMAND': $!");

while (<SERVICE>) {
my ($k, $v) = (m/(\w+).*?(\d+(?:\.\d+)?)/);
next unless ($k);
if (exists $WANTED{$k} ) {
$free = $v;
print("$WANTED{$k}.value $v\n");
}
}
close(SERVICE);

open(SERVICE, "$COMMANDSIZE |")
or die("Coult not execute '$COMMANDSIZE': $!");

while (<SERVICE>) {
my ($k, $v) = (m/(\w+).*?(\d+(?:\.\d+)?)/);

next unless ($k);
if ($k eq "query_cache_size" ) {
print("used.value ",($v-$free),"\n");
}
}
close(SERVICE);

sub print_config {

print('graph_title MySQL Queries Cache Size
graph_args --base 1024 -l 0
graph_vlabel bytes
graph_category mysql
graph_order used free
graph_total Total
graph_info Plugin available at <a href="http://rodolphe.quiedeville.org/hack/munin/">http://rodolphe.quiedeville.org/hack/munin/</a>
used.label Used
used.draw AREA
free.label Free
free.draw STACK
');
}

sub test_service {

my $return = 1;

system ("$MYSQLADMIN --version >/dev/null 2>/dev/null");
if ($? == 0)
{
system ("$COMMAND >/dev/null 2>/dev/null");
if ($? == 0)
{
print "yes\n";
$return = 0;
}
else
{
print "no (could not connect to mysql)\n";
}
}
else
{
print "no (mysqladmin not found)\n";
}
exit $return;
}
D
На сайте с 28.06.2008
Offline
1101
#6

Ваш файл не работает, ошибка такая: (вероятно перл виноват?)

# munin-run mysql_qcache --debug
# Processing plugin configuration from /etc/munin/plugin-conf.d/munin-node
# Setting /rgid/ruid/ to /113/65534/
# Setting /egid/euid/ to /113 113/65534/
# Setting up environment
# Environment mysqlpassword = ПАРОЛЬ
# Environment mysqladmin = /usr/bin/mysqladmin
# Environment mysqluser = root
# Environment mysqlshow = /usr/bin/mysqlshow
# Environment mysqlopts = -u root -pПАРОЛЬ
# About to run '/etc/munin/plugins/mysql_qcache'
Can't exec "/etc/munin/plugins/mysql_qcache": No such file or directory at /usr/share/perl5/Munin/Node/Service.pm line 263.
# FATAL: Failed to exec.
baas
На сайте с 17.09.2012
Offline
161
#7
Dram:
Ваш файл не работает, ошибка такая: (вероятно перл виноват?)

В этом файле должны быть прописаны авторизационные данные для мускула.

/usr/local/etc/munin/plugin-conf.d/plugins.conf

[mysql*]

user root
env.mysqlconnection DBI:mysql:mysql;host=localhost;port=3306
env.mysqluser munin
env.mysqlopts -u munin -pпароль_к_мускулу
env.mysqlpassword пароль_к_мускулу
env.mysqladmin /usr/local/bin/mysqladmin
env.mysqlshow /usr/local/bin/mysqlshow
D
На сайте с 28.06.2008
Offline
1101
#8

Есть два пути у меня в дебиане:

1. /usr/local/etc/ дальше пусто

2. /etc/munin/plugin-conf.d с файлом munin-node

в нем прописано:

[mysql*]

env.mysqlopts -u root -pПАРОЛЬ

env.mysqladmin /usr/bin/mysqladmin

env.mysqlshow /usr/bin/mysqlshow

env.mysqluser root

env.mysqlpassword ПАРОЛЬ

baas
На сайте с 17.09.2012
Offline
161
#9
Dram:
Есть два пути у меня в дебиане:

1. /usr/local/etc/ дальше пусто
2. /etc/munin/plugin-conf.d с файлом munin-node

в нем прописано:

[mysql*]
env.mysqlopts -u root -pПАРОЛЬ
env.mysqladmin /usr/bin/mysqladmin
env.mysqlshow /usr/bin/mysqlshow
env.mysqluser root
env.mysqlpassword ПАРОЛЬ

У меня FreeBSD /usr/local/etc/

У вас Linux как я понимаю тогда тут /etc/

Странно все.

Покажите вывод команды whereis perl и сам скрипт еще раз.

D
На сайте с 28.06.2008
Offline
1101
#10

whereis perl

perl: /usr/bin/perl /usr/bin/perl5.24-x86_64-linux-gnu /etc/perl /usr/share/perl /usr/share/man/man1/perl.1.gz

txt mysql_qcache.txt
12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий