main

Ещё одна статья про мониторинг mysql'я zabbix'ом

Шаблон для mysql'я уже шёл "изкоропки" во второй ветке. Обеспечивает только базовый мониторинг, но нам и этого хватит.

Посмотел как например описано здесь - не понравилось. Во-первых - лапша из cut'ов, во-вторых - разбор вывода проги, формат которого может меняться, в-третьих - негибко, параметры прописаны каждый по отдельности.

В довершение ко всему - он не расчитан на работу с вышеупомянутым шаблоном. Здесь - абстрактные значения, а в шаблоне прописаны впролне конкретные переменные mysql'я. Перепилить можно, но зачем?

Слегка побродив по интернету, прочитал, что эту фичу они собираются продавать, поэтому в бесплатной версии она если и будет - то нескоро.

Вопрос решается дописыванием скрипта, который будет лезть в базу и выгребать запрошенные значения из внутренней статистики:

#!/usr/bin/perl -w

use DBI;

use strict;
use warnings;

#---------------------------------
my $user = "";
my $pass = "";
#--------------------------------

exit if (scalar(@ARGV) < 1);

my $dbh = DBI->connect("DBI:mysql:database=", $user, $pass) or die print("$!\n");
my $sth = $dbh->prepare("SHOW GLOBAL STATUS WHERE Variable_name = ?");
$sth->execute($ARGV[0]) or die print("$!\n");
my (undef, $value) = $sth->fetchrow_array;
$sth->finish();
$dbh->disconnect();

if ($value eq '') { $value = "ZBX_NOTSUPPORTED"; }
print $value, "\n";

Логин/пароль, естественно поправить, пользователя при необходимости - создать.

CREATE USER 'monitor'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Дописываем определения параметров.

UserParameter=mysql.status[*],/etc/zabbix/bin/mysql_watch.pl $1
UserParameter=mysql.version,mysql -V

ИМХО, получилось даже аккуратнее, чем в официальном решении. Там предлагается ставить unix obdc, писать к нему конфиг и заниматься прочими полезными вещами.