[comment]: # aside:5

[comment]: # ({13a65fe6-b4128477})
# Monitoruj MySQL za pomocą agent 2 Zabbix

[comment]: # ({/13a65fe6-b4128477})

[comment]: # ({ad3dab41-2185307b})
#### 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łówny nacisk tego przewodnika położony jest na monitorowaniu serwera MySQL za pomocą Zabbix agent 2, co jest **zalecanym** podejściem ze względu na bezproblemową konfigurację w różnych środowiskach.
Jednak ta strona zawiera również instrukcje dotyczące [innych podejść](#other-approaches-to-monitor-mysql), więc możesz wybrać to, które najlepiej odpowiada Twoim wymaganiom.

[comment]: # ({/ad3dab41-2185307b})

[comment]: # ({0cf7feb5-831aae47})
**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](/manual/config) w podręczniku Zabbix.

[comment]: # ({/0cf7feb5-831aae47})

[comment]: # ({519621df-2fd1df9d})
**Wymagania wstępne**

Przed kontynuowaniem tego przewodnika należy [pobrać i zainstalować](https://www.zabbix.com/download) 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 Ubuntu.

[comment]: # ({/519621df-2fd1df9d})

[comment]: # ({8ae78277-ae0ef261})
#### 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 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" hasłem według własnego wyboru),
i [GRANT](https://dev.mysql.com/doc/refman/8.0/en/grant.html) 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.

[comment]: # ({/8ae78277-ae0ef261})

[comment]: # ({7d9d17aa-e6607c21})
#### Skonfiguruj frontend Zabbix

1\. Zaloguj się do frontend Zabbix.

2\. [Utwórz host](/manual/config/hosts/host) w interfejsie web 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](/manual/config/templates/linking) z hostem.
-   W polu *Host groups* wpisz lub wybierz grupę hostów (np. "Databases").
-   W polu *Interfaces* dodaj interfejs typu "Agent" i podaj adres IP serwera MySQL.
    W tym przewodniku użyto "127.0.0.1" (localhost) do monitorowania serwera MySQL, który jest zainstalowany na tym samym komputerze co serwer Zabbix i agent Zabbix agent 2.

![](../../../assets/en/manual/guides/mysql_host.png){width="600"}

-   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 dla nazwanej sesji](/manual/appendix/config/zabbix_agent2_plugins/mysql_plugin#parameters) 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, który jest zainstalowany na tym samym komputerze co serwer Zabbix i agent Zabbix agent 2.
    -   {$MYSQL.PASSWORD} - ustaw hasło wcześniej [utworzonego użytkownika MySQL](#create-mysql-user) "zbx_monitor".
    -   {$MYSQL.USER} - ustaw nazwę wcześniej [utworzonego użytkownika MySQL](#create-mysql-user) "zbx_monitor".

![](../../../assets/en/manual/guides/mysql_macros.png){width="600"}

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

[comment]: # ({/7d9d17aa-e6607c21})

[comment]: # ({bdcc4c70-339fa505})
#### 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*](/manual/web_interface/frontend_sections/monitoring/hosts) i kliknij *Dashboards* obok hosta.

![](../../../assets/en/manual/guides/mysql_hosts.png){width="600"}

Ta akcja przeniesie Cię do dashboardu hosta (skonfigurowanego na poziomie szablonu) z najważniejszymi metrykami zebranymi z serwera MySQL.

![](../../../assets/en/manual/guides/mysql_dashboard.png){width="600"}

Alternatywnie, w sekcji menu [*Monitoring → Hosts*](/manual/web_interface/frontend_sections/monitoring/hosts) możesz kliknąć [*Latest data*](/manual/web_interface/frontend_sections/monitoring/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.

![](../../../assets/en/manual/guides/mysql_latestdata.png){width="600"}

[comment]: # ({/bdcc4c70-339fa505})

[comment]: # ({eca01285-91c440fc})
#### 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*](/manual/web_interface/user_profile), przełącz się na kartę *Media* i [dodaj swój adres e-mail](/manual/quickstart/basic_config/login#adding-user).

![](../../../assets/en/manual/quickstart/new_media.png){width="600"}

2\. Postępuj zgodnie z przewodnikiem dotyczącym [Odbierania powiadomienia o problemie](/manual/quickstart/basic_config/notification).

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

[comment]: # ({/eca01285-91c440fc})

[comment]: # ({77c86049-3e5fc0d5})
#### 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 karty *Macros* i wybierz *Inherited and host macros*.

3\. Kliknij *Change* obok na przykład [wcześniej skonfigurowanej](#configure-zabbix-frontend) wartości makra {$MYSQL.USER} 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 w stanie połączyć się z serwerem MySQL.
Problem pojawi się w [*Monitoring → Problems*](/manual/web_interface/frontend_sections/monitoring/problems).

![](../../../assets/en/manual/guides/mysql_problem.png){width="600"}

Jeśli alerty są [skonfigurowane](#set-up-problem-alerts), otrzymasz również powiadomienie o problemie.

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

[comment]: # ({/77c86049-3e5fc0d5})

[comment]: # ({599a98b0-69f193e9})
#### Inne sposoby 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życie Zabbix agent 2, mogą istnieć konfiguracje, 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 - aby monitorować serwer MySQL, należy skonfigurować Zabbix agent lub ODBC.
Poniższe instrukcje przeprowadzą Cię przez te **różnice**.

[comment]: # ({/599a98b0-69f193e9})

[comment]: # ({c3f2cc9e-c7da6279})
##### Monitorowanie MySQL za pomocą agent

Aby monitorować serwer MySQL za pomocą agent, należy [pobrać i zainstalować](https://www.zabbix.com/download) 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*](#create-mysql-user).

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](/manual/config/items/userparameters) do wykonywania niestandardowych kontroli agent,
a także przekazanie agent Zabbix niezbędnych danych uwierzytelniających do łączenia się z serwerem MySQL jako użytkownik [utworzony wcześniej](#create-mysql-user) "zbx_monitor".

[comment]: # ({/c3f2cc9e-c7da6279})

[comment]: # ({71f0c028-81cd968b})
**Konfiguracja Zabbix agent**

1\. Przejdź do katalogu dodatkowych konfiguracji Zabbix agent.

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

::: noteimportant
Katalog dodatkowych konfiguracji Zabbix agent powinien znajdować się w tym samym katalogu co plik konfiguracji Zabbix agent (*zabbix_agentd.conf*).
W zależności od systemu operacyjnego i instalacji Zabbix, katalog ten może znajdować się w innym miejscu niż podano w tym przewodniku.
Aby sprawdzić domyślne lokalizacje, zobacz parametr [`Include`](/manual/appendix/config/zabbix_agentd#include) w pliku konfiguracji Zabbix agent.
:::

Zamiast definiować wszystkie niezbędne parametry użytkownika do monitorowania serwera MySQL w pliku konfiguracji 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*](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent/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.

[comment]: # ({/71f0c028-81cd968b})

[comment]: # ({49d8d7e7-98d0d0b4})
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 następującą zawartość do pliku *.my.cnf* (zastąp *<password>* hasłem użytkownika "zbx_monitor").

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

[comment]: # ({/49d8d7e7-98d0d0b4})

[comment]: # ({e1d7b01f-3d796e6b})
**Skonfiguruj frontend Zabbix i przetestuj swoją konfigurację**

Aby skonfigurować frontend Zabbix, postępuj zgodnie z instrukcjami w sekcji [*Skonfiguruj frontend Zabbix*](#configure-zabbix-frontend), wprowadzając następujące zmiany:

-   W polu *Templates* wpisz lub wybierz szablon "MySQL by Zabbix agent", który zostanie [powiązany](/manual/config/templates/linking) z hostem.
-   Konfigurowanie *Macros* nie jest wymagane.

Po skonfigurowaniu frontendu Zabbix możesz [wyświetlić zebrane metryki](#view-collected-metrics) oraz [skonfigurować alerty o problemach](#set-up-problem-alerts).

Aby przetestować konfigurację, postępuj zgodnie z instrukcjami w sekcji [*Przetestuj swoją konfigurację*](#test-your-configuration), 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").

![](../../../assets/en/manual/guides/mysql_port.png){width="600"}

[comment]: # ({/e1d7b01f-3d796e6b})

[comment]: # ({b2aad39e-876f1a94})
##### Monitorowanie MySQL za pomocą ODBC

Aby monitorować serwer MySQL za pomocą ODBC, należy [pobrać i zainstalować](https://www.zabbix.com/download) 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*](#create-mysql-user).

Po utworzeniu użytkownika MySQL należy skonfigurować ODBC.
Obejmuje to instalację jednej z najczęściej używanych implementacji otwartego API ODBC - [unixODBC](https://www.unixodbc.org/) - oraz sterownika unixODBC, a także edycję pliku konfiguracji sterownika ODBC.

[comment]: # ({/b2aad39e-876f1a94})

[comment]: # ({7530ff59-445fc52a})
**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](#configure-zabbix-frontend).

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

[comment]: # ({/7530ff59-445fc52a})

[comment]: # ({f773e20d-062f32d6})
**Skonfiguruj frontend Zabbix i przetestuj swoją konfigurację**

Aby skonfigurować frontend Zabbix, postępuj zgodnie z instrukcjami w sekcji [*Skonfiguruj frontend Zabbix*](#configure-zabbix-frontend), wprowadzając następujące zmiany:

-   W polu *Szablony* wpisz lub wybierz szablon "MySQL by ODBC", który zostanie [powiązany](/manual/config/templates/linking) 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 frontend Zabbix możesz [wyświetlić zebrane metryki](#view-collected-metrics), [skonfigurować alerty o problemach](#set-up-problem-alerts) oraz [przetestować swoją konfigurację](#test-your-configuration).

[comment]: # ({/f773e20d-062f32d6})

[comment]: # ({c2903286-123e0265})
#### Zobacz także

-   [Tworzenie pozycji](/manual/config/items/item) - jak rozpocząć monitorowanie dodatkowych metryk.
-   [Eskalacje problemów](/manual/config/notifications/action/escalations) - 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](/manual/config/items/itemtypes/odbc_checks) - 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*](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent) - dodatkowe informacje o szablonie *MySQL by Zabbix agent*.
-   Szablon [*MySQL by Zabbix agent 2*](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_agent2) - dodatkowe informacje o szablonie *MySQL by Zabbix agent 2*.
-   Szablon [*MySQL by ODBC*](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/mysql_odbc) - dodatkowe informacje o szablonie *MySQL by ODBC*.

[comment]: # ({/c2903286-123e0265})
