4. Monitor MySQL with Zabbix agent 2

Wprowadzenie

Ta strona przeprowadzi Cię przez kroki wymagane do rozpoczęcia podstawowego monitorowania serwera MySQL.

Aby monitorować serwer MySQL, dostępnych jest kilka podejść: Zabbix agent, Zabbix agent 2 lub standard Open Database Connectivity (ODBC). Głównym celem tego przewodnika jest monitorowanie serwera MySQL za pomocą Zabbix agent 2, co jest podejściem zalecanym ze względu na jego bezproblemową konfigurację w różnych środowiskach. Jednak ta strona zawiera również instrukcje dotyczące innych podejść, więc możesz wybrać to, które najlepiej odpowiada Twoim wymaganiom.

Dla kogo jest ten przewodnik

Ten przewodnik jest przeznaczony dla nowych użytkowników Zabbix i zawiera minimalny zestaw kroków wymaganych do włączenia podstawowego monitorowania serwera MySQL. Jeśli szukasz opcji zaawansowanego dostosowywania lub potrzebujesz bardziej zaawansowanej konfiguracji, zobacz sekcję Konfiguracja w podręczniku Zabbix.

Wymagania wstępne

Przed przystąpieniem do tego przewodnika należy pobrać i zainstalować serwer Zabbix, frontend Zabbix oraz agent Zabbix 2 zgodnie z instrukcjami dla używanego systemu operacyjnego.

W zależności od środowiska niektóre kroki opisane w tym przewodniku mogą się nieznacznie różnić. Ten przewodnik opiera się na środowisku działającym pod kontrolą Ubuntu.

Utwórz użytkownika MySQL

Aby monitorować serwer MySQL, Zabbix wymaga dostępu do niego oraz do jego procesów. Twoja instalacja MySQL ma już użytkownika z wymaganym poziomem dostępu (użytkownika „zabbix”, który został utworzony podczas instalacji Zabbix), jednak ten użytkownik ma więcej uprawnień, niż jest to konieczne do prostego monitorowania (uprawnienia do DROP baz danych, DELETE wpisów z tabel itp.). Dlatego należy utworzyć użytkownika MySQL przeznaczonego wyłącznie do monitorowania serwera MySQL.

1. Połącz się z klientem MySQL, utwórz użytkownika „zbx_monitor” (zastąp <password> dla użytkownika „zbx_monitor” wybranym przez siebie hasłem) i przyznaj użytkownikowi niezbędne uprawnienia za pomocą GRANT:

mysql -u root -p
# Enter password:

mysql> CREATE USER 'zbx_monitor'@'%' IDENTIFIED BY '<password>';
mysql> GRANT REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'zbx_monitor'@'%';
mysql> quit;

Po utworzeniu użytkownika możesz przejść do następnego kroku.

Skonfiguruj frontend Zabbix

1. Zaloguj się do frontend Zabbix.

2. Utwórz hosta w interfejsie webowym Zabbix:

  • W polu Host name wprowadź nazwę hosta (np. „MySQL server”).
  • W polu Templates wpisz lub wybierz szablon „MySQL by Zabbix agent 2”, który zostanie podłączony do hosta.
  • W polu Host groups wpisz lub wybierz grupę hostów (np. „Databases”).
  • W polu Interfaces dodaj interfejs typu „Agent” i podaj adres IP swojego serwera MySQL. W tym przewodniku użyto adresu „127.0.0.1” (localhost) do monitorowania serwera MySQL zainstalowanego na tej samej maszynie co serwer Zabbix i Zabbix agent 2.

  • Na karcie Macros przełącz się na Inherited and host macros, odszukaj następujące makra i kliknij Change obok wartości makra, aby je zaktualizować:
    • {$MYSQL.DSN} - ustaw źródło danych serwera MySQL (connection string of a named session z pliku konfiguracyjnego wtyczki MySQL dla Zabbix agent 2). W tym przewodniku użyto domyślnego źródła danych „tcp://localhost:3306” do monitorowania serwera MySQL zainstalowanego na tej samej maszynie co serwer Zabbix i Zabbix agent 2.
    • {$MYSQL.PASSWORD} - ustaw hasło wcześniej utworzonego użytkownika MySQL „zbx_monitor”.
    • {$MYSQL.USER} - ustaw nazwę wcześniej utworzonego użytkownika MySQL „zbx_monitor”.

3. Kliknij Add, aby dodać hosta. Ten host będzie reprezentował Twój serwer MySQL.

Wyświetlanie zebranych metryk

Gratulacje! Na tym etapie Zabbix monitoruje już Twój serwer MySQL.

Aby wyświetlić zebrane metryki, przejdź do sekcji menu Monitoring → Hosts i kliknij Dashboards obok hosta.

Ta czynność przeniesie Cię do pulpitu hosta (skonfigurowanego na poziomie szablonu) z najważniejszymi metrykami zebranymi z serwera MySQL.

Alternatywnie, w sekcji menu Monitoring → Hosts możesz kliknąć Latest data, aby wyświetlić wszystkie najnowsze zebrane metryki w formie listy. Zwróć uwagę, że pozycja MySQL: Calculated value of innodb_log_file_size zgodnie z oczekiwaniami nie będzie miała danych, ponieważ wartość zostanie obliczona na podstawie danych z ostatniej godziny.

Skonfiguruj alerty o problemach

Zabbix może powiadamiać Cię o problemach z infrastrukturą na wiele sposobów. Ten przewodnik przedstawia podstawowe kroki konfiguracji wysyłania alertów e-mail.

1. Przejdź do Ustawienia użytkownika → Profil, przejdź do zakładki Media i dodaj swój adres e-mail.

2. Postępuj zgodnie z przewodnikiem Otrzymywanie powiadomienia o problemie.

Następnym razem, gdy Zabbix wykryje problem, powinieneś otrzymać alert e-mail.

Przetestuj swoją konfigurację

Aby przetestować swoją konfigurację, możemy zasymulować rzeczywisty problem, aktualizując konfigurację hosta w Zabbix frontend.

1. Otwórz konfigurację swojego hosta serwera MySQL w Zabbix.

2. Przejdź do zakładki Macros i wybierz Inherited and host macros.

3. Kliknij Change obok, na przykład, wcześniej skonfigurowanej wartości makra {$MYSQL.USER} i ustaw inną nazwę użytkownika MySQL.

4. Kliknij Update, aby zaktualizować konfigurację hosta.

5. Za kilka chwil Zabbix wykryje problem „MySQL: Service is down”, ponieważ nie będzie mógł połączyć się z serwerem MySQL. Problem pojawi się w Monitoring → Problems.

Jeśli alerty są skonfigurowane, otrzymasz również powiadomienie o problemie.

6. Zmień wartość makra z powrotem na poprzednią, aby rozwiązać problem i kontynuować monitorowanie serwera MySQL.

Inne podejścia do monitorowania MySQL

Zamiast monitorować serwer MySQL za pomocą Zabbix agent 2, można również użyć Zabbix agent lub standardu Open Database Connectivity (ODBC). Chociaż zalecane jest używanie Zabbix agent 2, mogą istnieć środowiska, które nie obsługują Zabbix agent 2 lub wymagają niestandardowego podejścia.

Kluczowa różnica między Zabbix agent a ODBC polega na metodzie zbierania danych — Zabbix agent jest instalowany bezpośrednio na serwerze MySQL i zbiera dane przy użyciu wbudowanej funkcjonalności, natomiast ODBC opiera się na sterowniku ODBC, aby nawiązać połączenie z serwerem MySQL i pobierać dane za pomocą zapytań SQL.

Chociaż wiele kroków konfiguracji jest podobnych do monitorowania serwera MySQL za pomocą Zabbix agent 2, istnieją pewne istotne różnice — należy skonfigurować Zabbix agent lub ODBC, aby możliwe było monitorowanie serwera MySQL. Poniższe instrukcje przeprowadzą Cię przez te różnice.

Monitorowanie MySQL za pomocą agent Zabbix

Aby monitorować serwer MySQL za pomocą agent Zabbix, należy pobrać i zainstalować serwer Zabbix, frontend Zabbix oraz agent Zabbix zgodnie z instrukcjami dla używanego systemu operacyjnego.

Po pomyślnym zainstalowaniu wymaganych komponentów Zabbix należy utworzyć użytkownika MySQL zgodnie z opisem w sekcji Tworzenie użytkownika MySQL.

Po utworzeniu użytkownika MySQL należy skonfigurować agent Zabbix tak, aby mógł nawiązać połączenie z serwerem MySQL i go monitorować. Obejmuje to skonfigurowanie wielu parametrów użytkownika do wykonywania niestandardowych kontroli agent, a także dostarczenie agent Zabbix niezbędnych poświadczeń do łączenia się z serwerem MySQL jako wcześniej utworzony użytkownik „zbx_monitor”.

Skonfiguruj agent Zabbix

1. Przejdź do katalogu dodatkowych konfiguracji agenta Zabbix.

cd /usr/local/etc/zabbix/zabbix_agentd.d

Katalog dodatkowych konfiguracji agenta Zabbix powinien znajdować się w tym samym katalogu co plik konfiguracji agenta Zabbix (zabbix_agentd.conf). W zależności od systemu operacyjnego i instalacji Zabbix ten katalog może znajdować się w innej lokalizacji niż podano w tym przewodniku. Domyślne lokalizacje można sprawdzić w parametrze Include w pliku konfiguracji agenta Zabbix.

Zamiast definiować wszystkie niezbędne parametry użytkownika do monitorowania serwera MySQL w pliku konfiguracji agenta Zabbix, parametry te zostaną zdefiniowane w osobnym pliku w katalogu dodatkowych konfiguracji.

2. Utwórz plik template_db_mysql.conf w katalogu dodatkowych konfiguracji agenta Zabbix.

vi template_db_mysql.conf

3. Skopiuj zawartość pliku template_db_mysql.conf (znajdującego się w repozytorium Zabbix) do utworzonego pliku template_db_mysql.conf i zapisz zmiany.

4. Uruchom ponownie agent Zabbix, aby zaktualizować jego konfigurację.

systemctl restart zabbix-agent

Po skonfigurowaniu parametrów użytkownika agenta Zabbix możesz przejść do konfiguracji poświadczeń, które umożliwią agentowi Zabbix dostęp do serwera MySQL.

5. Przejdź do katalogu domowego agenta Zabbix (jeśli nie istnieje w systemie, należy go utworzyć; domyślnie: /var/lib/zabbix).

cd /var/lib/zabbix

6. Utwórz plik .my.cnf w katalogu domowym agenta Zabbix.

vi .my.cnf

7. Skopiuj poniższą zawartość do pliku .my.cnf (zastąp <password> hasłem użytkownika „zbx_monitor”).

[client]
user='zbx_monitor'
password='<password>'

Skonfiguruj frontend Zabbix i przetestuj swoją konfigurację

Aby skonfigurować frontend Zabbix, postępuj zgodnie z instrukcjami w sekcji Skonfiguruj frontend Zabbix, wprowadzając następujące zmiany:

  • W polu Templates wpisz lub wybierz szablon „MySQL by Zabbix agent”, który zostanie podlinkowany do hosta.
  • Konfiguracja Macros nie jest wymagana.

Po skonfigurowaniu frontendu Zabbix możesz wyświetlić zebrane metryki i skonfigurować alerty problemów.

Aby przetestować swoją konfigurację, postępuj zgodnie z instrukcjami w sekcji Przetestuj swoją konfigurację, wprowadzając następujące zmiany:

  • W sekcji Inherited and host macros konfiguracji hosta serwera MySQL kliknij Change obok wartości makra {$MYSQL.PORT} i ustaw inny port (np. „6033”).

Monitorowanie MySQL za pomocą ODBC

Aby monitorować serwer MySQL za pomocą ODBC, należy pobrać i zainstalować serwer Zabbix oraz frontend Zabbix.

Po pomyślnym zainstalowaniu wymaganych komponentów Zabbix należy utworzyć użytkownika MySQL zgodnie z opisem w sekcji Tworzenie użytkownika MySQL.

Po utworzeniu użytkownika MySQL należy skonfigurować ODBC. Obejmuje to instalację jednej z najczęściej używanych implementacji API ODBC typu open source — unixODBC — oraz sterownika unixODBC, a także edycję pliku konfiguracyjnego sterownika ODBC.

Konfiguracja ODBC

1. Zainstaluj unixODBC. Zalecanym sposobem instalacji unixODBC jest użycie domyślnych repozytoriów pakietów systemu operacyjnego Linux.

apt install unixodbc

2. Zainstaluj sterownik bazy danych MariaDB unixODBC. Mimo że używasz bazy danych MySQL, sterownik MariaDB unixODBC jest używany ze względu na kwestie kompatybilności.

apt install odbc-mariadb

3. Sprawdź lokalizację plików konfiguracyjnych ODBC odbcinst.ini i odbc.ini.

odbcinst -j

Wynik wykonania tego polecenia powinien być podobny do poniższego.

unixODBC 2.3.9
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
...

4. Aby skonfigurować sterownik ODBC do monitorowania bazy danych MySQL, potrzebujesz nazwy sterownika, która znajduje się w pliku odbcinst.ini. W poniższym przykładzie pliku odbcinst.ini nazwa sterownika to "MariaDB Unicode".

[MariaDB Unicode]
Driver=libmaodbc.so
Description=MariaDB Connector/ODBC(Unicode)
Threading=0
UsageCount=1

5. Skopiuj poniższą zawartość do pliku odbc.ini (zastąp <password> hasłem użytkownika "zbx_monitor"). Ten przewodnik używa adresu "127.0.0.1" (localhost) jako adresu serwera MySQL do monitorowania serwera MySQL zainstalowanego na tej samej maszynie co sterownik ODBC. Zwróć uwagę na nazwę źródła danych (DSN) "test", która będzie wymagana podczas konfiguracji frontend Zabbix.

[test]
Driver=MariaDB Unicode
Server=127.0.0.1
User=zbx_monitor
Password=<password>
Port=3306
Database=zabbix

Skonfiguruj frontend Zabbix i przetestuj swoją konfigurację

Aby skonfigurować frontend Zabbix, postępuj zgodnie z instrukcjami w sekcji Skonfiguruj frontend Zabbix, wprowadzając następujące zmiany:

  • W polu Templates wpisz lub wybierz szablon „MySQL by ODBC”, który zostanie podłączony do hosta.
  • Konfigurowanie Interfaces nie jest wymagane.
  • Wartość makra {$MYSQL.DSN} w sekcji Inherited and host macros konfiguracji hosta serwera MySQL powinna być ustawiona na nazwę DSN z pliku odbc.ini.

Po skonfigurowaniu frontend Zabbix możesz wyświetlić zebrane metryki, skonfigurować alerty problemów oraz przetestować swoją konfigurację.

Zobacz także

  • Tworzenie pozycji — jak rozpocząć monitorowanie dodatkowych metryk.
  • Eskalacje problemów — jak tworzyć wieloetapowe scenariusze alertów (np. najpierw wysłać wiadomość do administratora systemu, a następnie, jeśli problem nie zostanie rozwiązany w ciągu 45 minut, wysłać wiadomość do kierownika centrum danych).
  • Monitorowanie ODBC — jak skonfigurować ODBC w innych dystrybucjach Linuksa oraz jak rozpocząć monitorowanie dodatkowych metryk związanych z bazą danych za pomocą ODBC.
  • Szablon MySQL by Zabbix agent — dodatkowe informacje o szablonie MySQL by Zabbix agent.
  • Szablon MySQL by Zabbix agent 2 — dodatkowe informacje o szablonie MySQL by Zabbix agent 2.
  • Szablon MySQL by ODBC — dodatkowe informacje o szablonie MySQL by ODBC.