Zabbix – monitoring MySQL + replikacja
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.