github MySQL-remoteCheck
СКАЧАТЬ Я создал два шаблона MySQL, которые полезны в том случае, если вы не хотите, чтобы установить агент Zabbix на сервере базы данных.
Чтобы использовать их, вам нужно будет поставить два перл файлы в /usr/lib/zabbix/externalscripts каталог и сделать их
исполняемыми пользователем Zabbix.
Первый mysql_status_check.pl скрипта используются отдельной поверкой для заполнения данных. Scond snmp_mysql_status_discovery.pl скрипт используется в открытии, чтобы вытащить все IP от хоста через SNMP, так что если у вас есть несколько экземпляров MySQL на одном сервере, все будет контролироваться.
Вам нужно будет добавить следующие регулярные выражения для открытия работать, как ожидалось:
"Игнорировать Loopback IP"
1 » "^127 \ 0,0 \ 0,0 \ 0,1 $"[Результат FALSE]
2 » "^169 \ 0,254.* $"[Результат FALSE]
"Ненулевой"
1 » "^ $ | \ s +"[Результат FALSE]
Вы также хотите, чтобы заполнить имя пользователя базы данных и пароль в макросах шаблонов после импорта. Разумно использовать пользователь, кроме корня, которая имеет соответствующие разрешения, необходимые для чтения статистики MySQL.
Этот шаблон использует клиент MySQL на сервере Zabbix для подключения к серверам удаленных баз данных, чтобы вытащить статистику, поэтому она не требует агента Zabbix на удаленных серверах баз данных.
mysql_status_check.pl
Код: Выделить всё
#!/usr/bin/perl
use strict;
use warnings;
use Getopt::Std;
use Try::Tiny;
use DBI;
# ip
my $ip = $ARGV[0];
#snmp oid
#my $snmp_oid = $ARGV[2];
#timeout for snmpwalk
# mysql Имя пользователя
#my $mysql_user = "MYSQL_USERNAME";
my $mysql_user = $ARGV[1];
# mysql Пароль
#my $mysql_password = "MYSQL_PASSWORD";
my $mysql_password = $ARGV[2];
# запрашиваемое возвращаемое значение (необязательно)
#my $requested_return = $ARGV[1];
my $requested_return = $ARGV[3];
my $timeout = 5;
my $snmp_oid = "1.3.6.1.2.1.4.20.1.1";
#if ( $#ARGV != 0 and $#ARGV != 1 )
if ( $#ARGV != 2 and $#ARGV != 3 )
{
print " Недостаточно параметров\n";
print " Использование: mysql_status_check.pl <IP> [<Запрошенное Возвращаемое Значение>]\n";
exit 2;
}
#
# Определите начальный массив
#
my %mysqlarr;
# ИНДЕКС
my $id1 = $ip;
$mysqlarr{$id1}{uc("get_ip")} = $id1;
#
# Используйте значения массива для запроса баз данных
#
my $dbserver;
my $dbh;
for $dbserver ( keys %mysqlarr) {
eval {
$dbh = DBI->connect("DBI:mysql:database=mysql;host=$dbserver;mysql_connect_timeout=2",$mysql_user,$mysql_password,{RaiseError => 1,PrintWarn => 1});
};
#Сбор информации mysql (работает только для запросов с одной строкой или первой строкой при запросах с несколькими строками)
%mysqlarr = AppendArray($dbh, $dbserver, "show slave status", %mysqlarr);
%mysqlarr = AppendArray($dbh, $dbserver, "select \@\@version as Version", %mysqlarr);
%mysqlarr = AppendArrayiMultiKeyValue($dbh, $dbserver, "show global status", %mysqlarr);
#Генерировать вычисленные значения из заполненных данных
%mysqlarr = MysqlStatus($dbh, $dbserver, %mysqlarr);
%mysqlarr = pretty_uptime($dbserver, %mysqlarr);
%mysqlarr = CalculateStatsAgainstUptime($dbserver, "com_begin", %mysqlarr);
%mysqlarr = CalculateStatsAgainstUptime($dbserver, "com_insert", %mysqlarr);
%mysqlarr = CalculateStatsAgainstUptime($dbserver, "com_commit", %mysqlarr);
%mysqlarr = CalculateStatsAgainstUptime($dbserver, "bytes_received", %mysqlarr);
%mysqlarr = CalculateStatsAgainstUptime($dbserver, "bytes_sent", %mysqlarr);
%mysqlarr = CalculateStatsAgainstUptime($dbserver, "questions", %mysqlarr);
%mysqlarr = CalculateStatsAgainstUptime($dbserver, "com_rollback", %mysqlarr);
%mysqlarr = CalculateStatsAgainstUptime($dbserver, "com_update", %mysqlarr);
%mysqlarr = CalculateStatsAgainstUptime($dbserver, "com_select", %mysqlarr);
%mysqlarr = CalculateStatsAgainstUptime($dbserver, "com_delete", %mysqlarr);
%mysqlarr = CalculateStatsAgainstUptime($dbserver, "queries", %mysqlarr);
eval{
#очистите дескриптор базы данных
$dbh->disconnect();
};
};
#
# РЕЗУЛЬТАТ ПЕЧАТИ без запрошенного возврата
#
if (!$requested_return) {
my $id;
my $role;
my $firstline = 1;
print "{\n";
print "\t\"data\":[\n";
for $id ( keys %mysqlarr) {
print "\t,\n" if not $firstline;
$firstline = 0;
print "\t{\n";
my $all = "";
for $role ( keys %{ $mysqlarr{$id} } ) {
print "\t\t\"{#".$role."}\":\"" . $mysqlarr{$id}{$role} ."\",\n";
$all .= "-".$mysqlarr{$id}{$role}."-";
}
print "\t\t\"{#".uc("all")."}\":\"" . $all ."\"\n";
print "\t}\n";
}
print "\n\t]\n";
print "}\n";
#
# КОНЕЧНЫЙ РЕЗУЛЬТАТ ПЕЧАТИ
#
};
#
# РЕЗУЛЬТАТ ПЕЧАТИ с запрошенным возвратом
#
if ($requested_return) {
if (length $mysqlarr{$ip}{uc($requested_return)}) {
print $mysqlarr{$ip}{uc($requested_return)};
} else {
print "Requested Value is not defined or is empty";
};
};
#
# КОНЕЧНЫЙ РЕЗУЛЬТАТ ПЕЧАТИ
#
exit 0;
#
# [приватные функции]
#
sub _exit
{
printf join('', sprintf("%s: ", "mysql_status_check.pl"), shift(@_), ".\n"), @_;
exit 1;
}
## Требуется дескриптор базы данных, сервер базы данных, запрос для запуска, исходный массив
sub AppendArray{
my ($dbh, $server, $query, %inarr) = @_;
if ($dbh) {
my $sth = $dbh->prepare("$query");
$sth->execute();
my $columns = $sth->{NAME};
my $ref = $sth->fetchrow_arrayref;
my $numColumns = $sth->{'NUM_OF_FIELDS'} -1;
for my $i ( 0..$numColumns ) {
if($ref) {
$inarr{$server}{uc($$columns[$i])} = $$ref[$i];
};
};
$sth->finish();
};
return %inarr;
};
## Требуется дескриптор базы данных, сервер базы данных, запрос для запуска, исходный массив
## добавляет запрос, который возвращает два столбца пар ключ-значение
sub AppendArrayiMultiKeyValue{
my ($dbh, $server, $query, %inarr) = @_;
if($dbh) {
my $sth = $dbh->prepare("$query");
$sth->execute();
my $columns = $sth->{NAME};
my $numColumns = $sth->{'NUM_OF_FIELDS'} -1;
while (my $ref = $sth->fetchrow_arrayref){
if($ref) {
$inarr{$server}{uc($$ref[0])} = $$ref[1];
};
};
$sth->finish();
};
return %inarr;
};
sub MysqlStatus{
my ($dbh, $server, %inarr) = @_;
my $isUp = 0;
if ($dbh) {
$isUp = 1;
};
$inarr{$server}{uc("dbstatus")} = $isUp;
return %inarr;
};
# Средняя статистика с момента запуска сервера, не текущая на данный момент статистика
sub CalculateStatsAgainstUptime {
my ($server, $stat_to_calc, %inarr) = @_;
eval {
if (length $inarr{$server}{uc($stat_to_calc)}) {
my $var = ($inarr{$server}{uc($stat_to_calc)} / $inarr{$server}{uc("uptime")});
$inarr{$server}{uc($stat_to_calc . "_per_second")} = $var;
};
};
return %inarr;
};
sub pretty_uptime {
my ($server, %inarr) = @_;
my $uptime = $inarr{$server}{uc("uptime")};
if ($uptime) {
my $seconds = $uptime % 60;
my $minutes = int(($uptime % 3600) / 60);
my $hours = int(($uptime % 86400) / (3600));
my $days = int($uptime / (86400));
my $uptimestring;
if ($days > 0) {
$uptimestring = "${days}d ${hours}h ${minutes}m ${seconds}s";
} elsif ($hours > 0) {
$uptimestring = "${hours}h ${minutes}m ${seconds}s";
} elsif ($minutes > 0) {
$uptimestring = "${minutes}m ${seconds}s";
} else {
$uptimestring = "${seconds}s";
};
$inarr{$server}{uc("prettyuptime")} = $uptimestring;
};
return %inarr;
};
Код: Выделить всё
#!/usr/bin/perl
use strict;
use warnings;
use Net::SNMP v5.1.0 qw(:snmp DEBUG_ALL);
use Getopt::Std;
my $snmp_community = $ARGV[0];
# ip
my $ip = $ARGV[1];
#snmp oid
#my $snmp_oid = $ARGV[2];
#timeout for snmpwalk
# mysql пользователь
#my $mysql_user = "MYSQL_USERNAME";
my $mysql_user = $ARGV[2];
# mysql пароль
#my $mysql_password = "MYSQL_PASSWORD";
my $mysql_password = $ARGV[3];
my $timeout = 5;
my $snmp_oid = "1.3.6.1.2.1.4.20.1.1";
#if ( $#ARGV != 1 )
if ( $#ARGV != 3 )
{
print " Недостаточно параметров\n";
print " Использование: snmp_mysql_status_discovery.pl <SNMP_COMMUNITY> <IP> <MySQL Пользователь> <MySQL Пароль>\n";
exit 2;
}
my ($s, $e) = Net::SNMP->session(
-hostname => $ip,
-version => 1,
-community => $snmp_community,
# -debug => DEBUG_ALL,
# exists($OPTS{a}) ? (-authprotocol => $OPTS{a}) : (),
# exists($OPTS{A}) ? (-authpassword => $OPTS{A}) : (),
# exists($OPTS{D}) ? (-domain => $OPTS{D}) : (),
# exists($OPTS{d}) ? (-debug => DEBUG_ALL) : (),
# exists($OPTS{m}) ? (-maxmsgsize => $OPTS{m}) : (),
# exists($OPTS{r}) ? (-retries => $OPTS{r}) : (),
# exists($OPTS{t}) ? (-timeout => $OPTS{t}) : (),
# exists($OPTS{u}) ? (-username => $OPTS{u}) : (),
# exists($OPTS{v}) ? (-version => $OPTS{v}) : (),
# exists($OPTS{x}) ? (-privprotocol => $OPTS{x}) : (),
# exists($OPTS{X}) ? (-privpassword => $OPTS{X}) : ()
);
# Была ли создана сессия?
if (!defined($s)) {
_exit($e);
}
#
# Начать
#
my @args = (-varbindlist => [$snmp_oid] );
my $oid;
my %snmparr;
while (defined($s->get_next_request(@args)))
{
$oid = ($s->var_bind_names())[0];
if (!oid_base_match($snmp_oid, $oid)) { last; }
# INDEX
my $id1 = $s->var_bind_list()->{$oid};
$snmparr{$id1}{"get_ip"} = $id1;
# Имя
# my $oid_name = $snmp_oid.$id1;
# my $rs = $s->get_request(-varbindlist => [$oid_name],);
#$snmparr{$id1}{"name"} = $rs->{$oid_name};
# print "DEBUG:\n oid: ". $oid . " \n oid_name: " .$oid_name . "\n name: " . $rs->{$oid_name} . "\n";
#Опер Статус
#my $oid_status = $snmp_oid.$id1;
#my $rs2 = $s->get_request(-varbindlist => [$oid_status],);
#$snmparr{$id1}{"status"} = $rs2->{$oid_status};
# print "DEBUG:\n oid: ". $oid . " \n oid_status: " .$oid_name . "\n status: " . $rs2->{$oid_status} . "\n";
@args = (-varbindlist => [$oid]);
}
#
# Используйте значения SNMP для запроса баз данных
#
use DBI;
use Try::Tiny;
my %mysqlarr = %snmparr;
my $dbserver;
for $dbserver ( keys %snmparr) {
#print "\nРаботая над " . $dbserver . "\n";
eval {
my $dbh = DBI->connect("DBI:mysql:database=mysql;host=$dbserver;mysql_connect_timeout=2",$mysql_user,$mysql_password,{RaiseError => 1,PrintWarn => 1});
#Сбор информации mysql (работает только для запросов с одной строкой или первой строкой при запросах с несколькими строками)
%mysqlarr = AppendArray($dbh, $dbserver, "show slave status", %mysqlarr);
%mysqlarr = AppendArray($dbh, $dbserver, "select \@\@version as Version", %mysqlarr);
#очистите дескриптор базы данных
$dbh->disconnect();
};
};
## Требуется дескриптор базы данных, сервер базы данных, запрос для запуска, исходный массив
sub AppendArray{
my ($dbh, $server, $query, %inarr) = @_;
#print $server . "\n";
#print $query . "\n";
my $sth = $dbh->prepare("$query");
$sth->execute();
my $columns = $sth->{NAME};
my $ref = $sth->fetchrow_arrayref;
my $numColumns = $sth->{'NUM_OF_FIELDS'} -1;
#print "возвращенный запрос: " . $numColumns . " столбцы\n";
#print "Возвращенный запрос " . scalar($sth->rows) . " rows.\n";
#for my $i ( 0..$numColumns ) {
# print $$columns[$i] . "=" . $$ref[$i] . "\n";
#};
for my $i ( 0..$numColumns ) {
if($ref) {
$inarr{$server}{$$columns[$i]} = $$ref[$i];
};
};
$sth->finish();
return %inarr;
};
#print "\n";
#
#ПЕЧАТЬ РЕЗУЛЬТАТА
#
my %arr = %mysqlarr;
my $id;
my $role;
my $firstline = 1;
print "{\n";
print "\t\"data\":[\n";
for $id ( keys %arr) {
print "\t,\n" if not $firstline;
$firstline = 0;
print "\t{\n";
my $all = "";
for $role ( keys %{ $arr{$id} } ) {
print "\t\t\"{#".uc($role)."}\":\"" . $arr{$id}{$role} ."\",\n";
$all .= "-".$arr{$id}{$role}."-";
}
print "\t\t\"{#".uc("all")."}\":\"" . $all ."\"\n";
print "\t}\n";
}
print "\n\t]\n";
print "}\n";
#
# конец
#
$s->close();
exit 0;
#
# [приватные функции]
#
sub _exit
{
printf join('', sprintf("%s: ", "snmp_mysql_status_discovery.pl"), shift(@_), ".\n"), @_;
exit 1;
}
Шаблон приложения MySQL LLD Локально / Template App MySQL LLD Local rus
Используйте этот шаблон, если у вас есть несколько экземпляров mysql на сервере, или вы не знаете, есть ли у вас mysql на сервере, или IP-адрес, который прослушивает mysql, отличается от IP-адреса основного хоста.
Макросы
{$MYSQL_PASSWORD} > Пароль
{$MYSQL_USERNAME} > Пользователь
Группы элементов данных 1
MySQL
Правила обнаружения 1
Mysql Обнаружение экземпляра Прототипы элементов данных 15 Прототипы триггеров 5 Прототипы графиков 1 Прототипы узлов сети snmp_mysql_status_discovery.pl[{$SNMP_COMMUNITY},{HOST.IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}"] 1800 Внешняя проверка Активировано
Прототипы элементов данных 15
MySQL среднее количество полученных байт/сек на экземпляре {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","BYTES_RECEIVED_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Да
MySQL среднее количество отправленных байт/сек на экземпляре {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","BYTES_SENT_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Да
MySQL среднее количество операций фиксации/сек на экземпляре {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_COMMIT_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Да
MySQL среднее количество операций удаления/сек на экземпляре {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_DELETE_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Да
MySQL среднее количество операций вставки/сек на экземпляре {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_INSERT_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Да
MySQL среднее количество операций отката/сек для экземпляра {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_ROLLBACK_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Да
MySQL среднее количество операций выбора /сек на экземпляре {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_SELECT_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Да
MySQL среднее количество операций обновления/сек на экземпляре {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_UPDATE_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Да
MySQL Статус на экземпляре {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","DBSTATUS"] 120 90d 365d Внешняя проверка MySQL Да
MySQL среднее количество запросов/сек для экземпляра {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","QUERIES_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Да
MySQL среднее количество запросов/сек по экземпляру {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","QUESTIONS_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Да
MySQL время задержки подчиненной репликации на экземпляре {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"] 120 90d 365d Внешняя проверка MySQL Да
MySQL медленные запросы к экземпляру {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SLOW_QUERIES"] 120 90d 365d Внешняя проверка MySQL Да
MySQL время работы экземпляра {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","UPTIME"] 120 90d 365d Внешняя проверка MySQL Да
MySQL версия на экземпляре {#GET_IP} mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","VERSION"] 7200 90d Внешняя проверка MySQL Да
Прототипы триггеров 5
Высокая MySQL Время задержки репликации 1 час ({Template App MySQL LLD Local rus:mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>1800 and {TRIGGER.VALUE}=0) or ({Template App MySQL LLD Local rus:mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>900 and {TRIGGER.VALUE}=1) Нет
Внимание/Предупреждение MySQL Время задержки репликации 1 час ({Template App MySQL LLD Local rus:mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>900 and {TRIGGER.VALUE}=0) or ({Template App MySQL LLD Local rus:mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>450 and {TRIGGER.VALUE}=1) Нет
Внимание/Предупреждение MySQL Время задержки репликации 2 часа ({Template App MySQL LLD Local rus:mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>3600 and {TRIGGER.VALUE}=0) or ({Template App MySQL LLD Local rus:mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>1800 and {TRIGGER.VALUE}=1) Да
Высокая MySQL Время задержки репликации 2 часа ({Template App MySQL LLD Local rus:mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>7200 and {TRIGGER.VALUE}=0) or ({Template App MySQL LLD Local rus:mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>3600 and {TRIGGER.VALUE}=1) Да
Высокая MySQL Не работает {Template App MySQL LLD Local rus:mysql_status_check.pl[{#GET_IP},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","DBSTATUS"].last()}=0 Нет
Прототипы графиков 1
MySQL Репликация на несколько секунд отстает от мастера {#GET_IP} 900 200 Нормальный
Шаблон приложения MySQL Локально / Template App MySQL Local rus
Используйте этот шаблон, если вы знаете, что mysql находится на сервере, а основной IP-адрес хоста - это IP-адрес, который прослушивает mysql.
Макросы
{$MYSQL_PASSWORD} > Пароль
{$MYSQL_USERNAME} > Пользователь
Группы элементов данных 1
MySQL Элементы данных 14
Элементы данных 14
MySQL среднее количество полученных байт/сек mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","BYTES_RECEIVED_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL среднее количество отправленных байт/сек mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","BYTES_SENT_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL среднее количество операций фиксации/сек mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_COMMIT_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL среднее количество операций удаления/сек mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_DELETE_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL среднее количество операций вставки/сек mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_INSERT_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL среднее количество операций отката/сек mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_ROLLBACK_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL среднее количество операций выбора /сек mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_SELECT_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL среднее количество операций обновления/сек mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","COM_UPDATE_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL Статус Триггеры 1 mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","DBSTATUS"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL среднее количество запросов/сек mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","QUERIES_PER_SECOND"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL время задержки подчиненной репликации Триггеры 4 mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL медленные запросы mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SLOW_QUERIES"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL время работы mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","UPTIME"] 120 90d 365d Внешняя проверка MySQL Активировано
MySQL Версия mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","VERSION"] 7200 90d Внешняя проверка MySQL Активировано
Триггеры 5
Высокая MySQL Время задержки репликации 2 часа ({Template App MySQL Local rus:mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>7200 and {TRIGGER.VALUE}=0) or ({Template App MySQL Local rus:mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>3600 and {TRIGGER.VALUE}=1) Активировано
Высокая MySQL Время задержки репликации 1 час ({Template App MySQL Local rus:mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>1800 and {TRIGGER.VALUE}=0) or ({Template App MySQL Local rus:mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>900 and {TRIGGER.VALUE}=1) Деактивировано
Высокая MySQL не работает {Template App MySQL Local rus:mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","DBSTATUS"].last()}=0 Активировано
Внимание/Предупреждение MySQL Время задержки репликации 2 часа ({Template App MySQL Local rus:mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>3600 and {TRIGGER.VALUE}=0) or ({Template App MySQL Local rus:mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>1800 and {TRIGGER.VALUE}=1) Активировано
Внимание/Предупреждение MySQL Время задержки репликации 1 час ({Template App MySQL Local rus:mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>900 and {TRIGGER.VALUE}=0) or ({Template App MySQL Local rus:mysql_status_check.pl[{HOST.CONN},"{$MYSQL_USERNAME}","{$MYSQL_PASSWORD}","SECONDS_BEHIND_MASTER"].avg(#5)}>450 and {TRIGGER.VALUE}=1) Деактивировано
Графики 3
MySQL Трафик 900 200 Нормальный
MySQL Статус производительности 900 200 Нормальный
MySQL Репликация на несколько секунд отстает от мастера 900 200 Нормальный
Комплексные экраны 1
Обзор MySQL {HOST.NAME } 2 x 2 Свойства Конструктор