Шаблон приложения MySQL LLD Локально / Template_App_MySQL_LLD_Local

MySql, Microsoft SQL, MSSQL
Аватара пользователя
Артём Мамзиков
Admin
Сообщения: 496
Стаж: 3 года 5 месяцев
Откуда: Вологодская область
Поблагодарили: 20 раз
Контактная информация:

Шаблон приложения MySQL LLD Локально / Template_App_MySQL_LLD_Local

Сообщение Артём Мамзиков »

Источник share.zabbix mysql-server-checks
github MySQL-remoteCheck

СКАЧАТЬ
Проверки шаблона MySQL Server (не агент).zip
Проверки шаблона MySQL Server (не агент).zip
(33.69 КБ) 3 скачивания
Я создал два шаблона 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;
};

snmp_mysql_status_discovery.pl

Код: Выделить всё

#!/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 Локально
Шаблон приложения MySQL LLD Локально
Шаблон приложения MySQL LLD Локально Макросы
Шаблон приложения MySQL LLD Локально Макросы
Шаблон приложения MySQL LLD Локально Группы
Шаблон приложения MySQL LLD Локально Группы
Шаблон приложения MySQL LLD Локально Правила обнуружения
Шаблон приложения MySQL LLD Локально Правила обнуружения
Шаблон приложения MySQL LLD Локально Прототипы элементы данных
Шаблон приложения MySQL LLD Локально Прототипы элементы данных
Шаблон приложения MySQL LLD Локально Прототипы триггеров
Шаблон приложения MySQL LLD Локально Прототипы триггеров
Шаблон приложения MySQL LLD Локально Прототипы графиков
Шаблон приложения MySQL LLD Локально Прототипы графиков
Шаблон приложения MySQL Локально
Шаблон приложения MySQL Локально
Шаблон приложения MySQL Локально Макросы
Шаблон приложения MySQL Локально Макросы
Шаблон приложения MySQL Локально Группы
Шаблон приложения MySQL Локально Группы
Шаблон приложения MySQL Локально Элементы данных
Шаблон приложения MySQL Локально Элементы данных
Шаблон приложения MySQL Локально Триггеры
Шаблон приложения MySQL Локально Триггеры
Шаблон приложения MySQL Локально Графики
Шаблон приложения MySQL Локально Графики
Шаблон приложения MySQL Локально Комплексные экраны
Шаблон приложения MySQL Локально Комплексные экраны

Шаблон приложения 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 Свойства Конструктор
количество слов: 2312
Партнёрская ссылка на Хостинг Beget https://beget.com/p937243

Вернуться в «Базы Данных/Databases»