Monitorowanie MySQL za pomocą agent 2 Zabbix

Wprowadzenie

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

Aby monitorować serwer MySQL, dostępnych jest kilka podejść: agent Zabbix, Zabbix agent 2 lub standard Open Database Connectivity (ODBC). Główny nacisk tego przewodnika położono na monitorowanie serwera MySQL za pomocą Zabbix agent 2, co jest zalecanym podejściem ze względu na bezproblemową konfigurację w różnych środowiskach. Jednak na tej stronie znajdują się 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 zaawansowanych opcji dostosowywania lub potrzebujesz bardziej rozbudowanej konfiguracji, zobacz sekcję Konfiguracja w podręczniku Zabbix.

Wymagania wstępne

Przed kontynuowaniem tego przewodnika należy pobrać i zainstalować serwer Zabbix, frontend Zabbix oraz agent 2 Zabbix 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 i 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 potrzebne do prostego monitorowania (uprawnienia do DROP baz danych, DELETE wpisów z tabel itp.). Dlatego należy utworzyć użytkownika MySQL 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" hasłem według własnego wyboru), i GRANT niezbędne uprawnienia temu użytkownikowi:

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 host w interfejsie webowym Zabbix:

  • W polu Host name wpisz nazwę hosta (np. "MySQL server").
  • W polu Templates wpisz lub wybierz szablon "MySQL by Zabbix agent 2", który zostanie powiązany z hostem.
  • W polu Host groups wpisz lub wybierz grupę hostów (np. "Databases").
  • W polu Interfaces dodaj interfejs typu "Agent" i określ adres IP serwera MySQL. W tym przewodniku użyto "127.0.0.1" (localhost) do monitorowania serwera MySQL zainstalowanego na tym samym komputerze co serwer Zabbix i agent Zabbix agent 2.

  • Na karcie Macros przejdź do Inherited and host macros, znajdź następujące makra i kliknij Change obok wartości makra, aby ją zaktualizować:
    • {$MYSQL.DSN} - ustaw źródło danych serwera MySQL (ciąg połączenia nazwanej sesji](/manual/concepts/agent2/agent2_params_plugin/mysql_plugin#parameters) z pliku konfiguracyjnego wtyczki MySQL Zabbix agent 2). W tym przewodniku użyto domyślnego źródła danych "tcp://localhost:3306" do monitorowania serwera MySQL zainstalowanego na tym samym komputerze co serwer Zabbix i agent 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ć host. Ten host będzie reprezentował Twój serwer MySQL.

Wyświetlanie zebranych metryk

Gratulacje! W tym momencie Zabbix już monitoruje Twój serwer MySQL.

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

Ta akcja przeniesie Cię do dashboardu 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 na liście. Zwróć uwagę, że pozycja MySQL: Calculated value of innodb_log_file_size nie powinna zawierać danych, ponieważ wartość zostanie obliczona na podstawie danych z ostatniej godziny.

Skonfiguruj alerty o problemach

Zabbix może powiadamiać o problemach z infrastrukturą za pomocą różnych metod. Ten przewodnik zawiera 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 dotyczącym Odbierania 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 frontendzie Zabbix.

1. Otwórz konfigurację 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 previously configured} i ustaw inną nazwę użytkownika MySQL.

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

5. Po chwili 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ą agent 2 Zabbixa, można również użyć agenta Zabbixa lub standardu Open Database Connectivity (ODBC). Chociaż zalecane jest użycie agent 2 Zabbixa, mogą istnieć konfiguracje, które nie obsługują agent 2 Zabbixa lub wymagają niestandardowego podejścia.

Kluczowa różnica między agentem Zabbixa a ODBC polega na metodzie zbierania danych - agent Zabbixa 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 pobrać dane za pomocą zapytań SQL.

Chociaż wiele kroków konfiguracji jest podobnych do monitorowania serwera MySQL za pomocą agent 2 Zabbixa, istnieją pewne istotne różnice - aby monitorować serwer MySQL, należy skonfigurować agenta Zabbixa lub ODBC. Poniższe instrukcje przeprowadzą Cię przez te różnice.

Monitorowanie MySQL za pomocą agent

Aby monitorować serwer MySQL za pomocą agent, 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, jak opisano 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 monitorować go. Obejmuje to skonfigurowanie wielu parametrów użytkownika do wykonywania niestandardowych sprawdzeń agent, a także przekazanie agent Zabbix niezbędnych danych uwierzytelniających do łączenia się z serwerem MySQL jako użytkownik "zbx_monitor" utworzony wcześniej.

Skonfiguruj Zabbix agent

1. Przejdź do katalogu dodatkowych konfiguracji Zabbix agent.

cd /etc/zabbix/zabbix_agentd.d

Katalog dodatkowych konfiguracji Zabbix agent powinien znajdować się w tym samym katalogu co plik konfiguracyjny Zabbix agent; domyślna ścieżka zależy od systemu operacyjnego i metody instalacji Zabbix.

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

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

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 Zabbix agent, aby zaktualizować jego konfigurację.

systemctl restart zabbix-agent

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

5. Przejdź do katalogu domowego agenta Zabbix (jeśli nie istnieje w Twoim systemie, musisz 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 Szablony wpisz lub wybierz szablon "MySQL by Zabbix agent", który zostanie powiązany z hostem.
  • Konfigurowanie Makr nie jest wymagane.

Po skonfigurowaniu frontendu Zabbix możesz wyświetlić zebrane metryki oraz skonfigurować alerty o problemach.

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

  • W sekcji Dziedziczone i makra hosta konfiguracji hosta serwera MySQL kliknij Zmień 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 Utwórz użytkownika MySQL.

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

Konfiguracja ODBC

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

apt install unixodbc

2. Zainstaluj sterownik bazy danych MariaDB unixODBC. Chociaż używasz bazy danych MySQL, sterownik MariaDB unixODBC jest stosowany ze względu na kwestie zgodnoś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"). W tym przewodniku jako adres serwera MySQL użyto "127.0.0.1" (localhost) do monitorowania serwera MySQL zainstalowanego na tym samym komputerze 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 Szablony wpisz lub wybierz szablon "MySQL by ODBC", który zostanie powiązany z hostem.
  • Konfigurowanie Interfejsów nie jest wymagane.
  • Wartość makra {$MYSQL.DSN} w sekcji Dziedziczone i makra hosta konfiguracji hosta serwera MySQL powinna być ustawiona na nazwę DSN z pliku odbc.ini.

Po skonfigurowaniu frontendu Zabbix możesz wyświetlić zebrane metryki, skonfigurować alerty o problemach 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.