Zabbix – monitoring MySQL + replikacja

Zabbix

Zabbix – monitoring MySQL + replikacja

 

Zabbix jest ogromnym narzędziem służącym do monitoringu który jak wiemy w administracji serwerami jest niezbędny.          Potrafi monitorować praktycznie wszystko więc jak już mamy zainstalowany ten kombajn to fajnie było by monitorować więcej niż ICMP 😉

Monitoring MySQL w Zabbix nie jest skomplikowany, aczkolwiek wymaga użycia Agent’a i zmian w jego konfiguracji.

Instalacji agenta nie będziemy opisywać i skupimy się tylko na czystej konfiguracji monitorowania serwera MySQL.

Zaczynamy od utworzenia użytkownika dzięki któremu będziemy mogli pobrać niezbędne parametry.

Generujemy jakieś losowe hasło w bashu np. tak:

</dev/urandom tr -dc '12345qwertQWERTasdfgASDFGzxcvbZXCVB' | head -c10; echo ""

Logujemy się do konsoli MySQL i wydajemy polecenie ( podmieniając HASLO oczywiście ):

Bez replikacji:

GRANT SELECT ON zabbix.* To zabbix@localhost IDENTIFIED BY 'HASLO';

Z replikacją:

GRANT SELECT, SUPER, REPLICATION CLIENT ON zabbix.* To zabbix@localhost IDENTIFIED BY 'HASLO';

Jeżeli nie dodamy powyższych parametrów zobaczymy coś ala:

ERROR 1227 (42000) at line 1: Access denied; you need (at least one of) the SUPER,REPLICATION CLIENT privilege(s) for this operation

Gdy już mamy użytkownika dodajemy odpowiednie wpisy konfiguracyjne do pliku zabbix_agentd.conf ( podmieniając HASLO oczywiście ):

Bez replikacji:

UserParameter=mysql.ping,mysqladmin -uzabbix -pHASLO ping|grep alive|wc -l
 UserParameter=mysql.uptime,mysqladmin -uzabbix -pHASLO status|cut -f2 -d":"|cut -f1 -d"T"
 UserParameter=mysql.threads,mysqladmin -uzabbix -pHASLO status|cut -f3 -d":"|cut -f1 -d"Q"
 UserParameter=mysql.questions,mysqladmin -uzabbix -pHASLO status|cut -f4 -d":"|cut -f1 -d"S"
 UserParameter=mysql.slowqueries,mysqladmin -uzabbix -pHASLO status|cut -f5 -d":"|cut -f1 -d"O"
 UserParameter=mysql.qps,mysqladmin -uzabbix -pHASLO status|cut -f9 -d":

Z replikacją to co wyżej plus:

UserParameter=mysql.replikacja.sql.run,mysql -uzabbix -pHASLO -e 'show slave statusG' | grep Slave_SQL_Running | awk '{print $2}' | sed 's/No/0/;s/Yes/1/'

Po tym wszystkim pozostaje zresetować agenta i udać się do panelu Zabbixa by wprowadzić konfiguracje schematu.

Schemat Zabbix w formie XML możliwej do importu w systemie:

https://netfs.pl/files/zbx_mysql_template.xml

Teraz wystarczy dodać do zaimportowanego schematu hosty które mają mieć dodaną konfiguracje agenta.