Доброго времени суток.
Никогда не было интересно узнать как часто происходят обращения к Вашему MYSQL-серверу?
Как оказалось, это не трудно реализовать.
И так, ближе к делу:
1. Вы должны настроить MRTG (Multi Router Traffic Grapher). О том как это сделать – можно почитать перейдя по этой ссылке https://silverghost.org.ua/2008/05/04/svyazka-snmpd-mrtg/(SNMP в этом случае не обязательно).
2. Создать скрипт, который с помощью команд MYSQL SHOW STATUS будет получать информацию о количестве запросов к серверу. На графике будет показано зеленым количество запросов в секнду SELECT, а синим количество запросов в секунду INSERT/UPDATE/DELETE. Назовем его mrtg-mysql.pl и установим права на выполнение.
#!/usr/bin/perl
use strict;use DBI;
my $dbh=DBI->connect(“dbi:mysql:dbname=mysql;host=localhost”,”root”,”password”);
my $select=0;my $modify=0;
my $sql=”SHOW GLOBAL STATUS LIKE ‘Com_%'”;my $sth=$dbh->prepare($sql) or die;$sth->execute or die;while(my ($key,$val)=$sth->fetchrow) { if($key eq “Com_select”) { $select=$val; } if($key eq “Com_insert” || $key eq “Com_insert_select” || $key eq “Com_replace” || $key eq “Com_replace_select” || $key eq “Com_update” || $key eq “Com_update_multi” || $key eq “Com_delete” || $key eq “Com_delete_multi”) { $modify+=$val; }}
print $select,”\n”,$modify,”\n”;
Где вместо “password” нужно указать рутовый пароль для подключения к mysql.
3. В /etc/mrtg.cfg добавляем следующее:
# MYSQL SERVER #
Title[mysql-s]: MYSQL SERVER
PNGTitle[mysql-s]: MYSQL SERVER
MaxBytes[mysql-s]: 100
AbsMax[mysql-s]: 100
Options[mysql-s]: growright, bits
PageTop[mysql-s]: <h1> Mysql Server</h1>
Target[mysql-s]: `/root/scripts/mrtg-mysql.pl`
YLegend[mysql-s]: Queries/Second
ShortLegend[mysql-s]: q/s
LegendI[mysql-s]: Select
LegendO[mysql-s]: Modify
WithPeak[mysql-s]: ymwd_multi”
Где Target[mysql-s]: `/root/scripts/mrtg-mysql.pl` адрес к скрипту, который мы только что создавали.
Ну а дальше Вы можете все параметры настроить на свой вкус. 🙂
На этом все 🙂
