This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

15 Monitorowanie ODBC

15.1 Przegląd

Monitorowanie ODBC odpowiada typowi pozycji Monitor bazy danych w interfejsie użytkownika Zabbix.

ODBC jest napisanym w języku programowania C pośrednim API, pozwalającym na dostęp do systemów zarządzania bazami danych (DBMS). ODBC zostało opracowane przez Microsoft a następnie zostało przeniesione na inne platformy.

Zabbix może odpytywać dowolne bazy, wyposażone w ODBC. Żeby to zrobić, Zabbix nie łączy się bezpośrednio z bazą danych, ale używa interfejsów i sterowników ustawionych w ODBC. Funkcja ta pozwala w bardziej wydajny sposób monitorować wiele aspektów różnych baz danych - na przykład, pozwala sprawdzić konkretne kolejki bazy danych, statystykę użycia i tak dalej. Zabbix obsługuje unixODBC, który jest jedną z najczęściej używanych implementacji API ODBC typu open source.

15.2 Instalacja unixODBC

Zalecanym sposobem instalacji unixODBC jest użycie domyślnych repozytoriów pakietów systemu operacyjnego Linux. W większości popularnych dystrybucji Linux, unixODBC jest domyślnie dostępny w repozytorium pakietów. Jeżeli nie jest dostępny, można go pobrać ze strony domowej unixODBC: http://www.unixodbc.org/download.html.

Instalacja unixODBC na systemach opartych o RedHat/Fedora przy użyciu menadżera pakietów yum:

shell> yum -y install unixODBC unixODBC-devel

Instalacja unixODBC na systemach opartych o SUSE przy użyciu menadżera pakietów zypper:

# zypper in unixODBC-devel

Pakiet unixODBC-devel jest wymagany do skompilowania Zabbix z obsługą unixODBC.

15.3 Instalacja sterowników unixODBC

Dla bazy danych, która ma być monitorowana, należy zainstalować sterownik bazy danych unixODBC. unixODBC udostępnia listę obsługiwanych baz danych i sterowników: http://www.unixodbc.org/drivers.html. W niektórych dystrybucjach Linux sterowniki baz danych są umieszczone w repozytorium pakietów. Instalacja sterownika bazy danych MySQL na systemach opartych o RedHat/Fedora przy użyciu menadżera pakietów yum:

shell> yum install mysql-connector-odbc

Instalacja sterownika bazy danych MySQL na systemach opartych o SUSE przy użyciu menadżera pakietów zypper:

zypper in MyODBC-unixODBC

15.4 Konfiguracja unixODBC

ODBC konfiguruje się poprzez edycję plików odbcinst.ini i odbc.ini files. Żeby sprawdzić lokalizację plików konfiguracyjnych, należy wpisać:

shell> odbcinst -j

odbcinst.ini używany jest do wyświetlania zainstalowanych sterowników baz danych ODBC:

[mysql]
       Description = ODBC for MySQL
       Driver      = /usr/lib/libmyodbc5.so

Szczegóły parametrów:

Atrybut Opis
mysql Nazwa sterownika bazy danych.
Description Opis sterownika bazy danych.
Driver Lokalizacja biblioteki sterownika bazy danych.

odbc.ini używane jest do definiowania źródeł danych:

[test]
       Description = MySQL test database
       Driver      = mysql
       Server      = 127.0.0.1
       User        = root
       Password    =
       Port        = 3306
       Database    = zabbix

Szczegóły parametrów:

Atrybut Opis
test Nazwa źródła danych (DSN).
Description Opis źródła danych.
Driver Nazwa sterownika bazy danych - określona w odbcinst.ini
Server IP/DNS serwera bazy danych.
User Użytkownik bazy danych do podłączania się.
Password Hasło użytkownika bazy danych.
Port Port do podłączania się do bazy danych.
Database Nazwa bazy danych.

Żeby zweryfikować, czy połączenie ODBC działa prawidłowo, należy przetestować połączenie do bazy danych. Można to zrobić przy pomocy narzędzia isql (zawartego w pakiecie unixODBC):

shell> isql test
       +---------------------------------------+
       | Connected!                            |
       |                                       |
       | sql-statement                         |
       | help [tablename]                      |
       | quit                                  |
       |                                       |
       +---------------------------------------+
       SQL>

15.5 Kompilacja Zabbix z obsługą ODBC

Żeby włączyć obsługę ODBC, Zabbix powinien być skompilowany z następującą flagą:

  --with-unixodbc[=ARG]   użyj sterownika odbc z pakietu unixODBC

Zobacz więcej na temat instalacji Zabbix z kodów źródłowych.

15.6 Konfiguracja pozycji w interfejsie użytkownika Zabbix

Konfiguracja pozycji monitorowania bazy danych:

Specjalnie dla pozycji monitorowania bazy danych należy wprowadzić:

Typ Należy wybrać Monitor bazy danych.
Klucz Należy wprowadzić db.odbc.select[unikalny_opis,nazwa_źródła_danych]
Unikalny opis posłuży do identyfikacji pozycji w wyzwalaczach, itp.
Nazwa źródła danych (DSN) musi być taka sama jak w odbc.ini.
Nazwa użytkownika Należy wprowadzić nazwę użytkownika bazy danych (opcjonale, jeżeli użytkownik został określony w odbc.ini)
Hasło Należy wprowadzić hasło użytkownika bazy danych (opcjonale, jeżeli hasło zostało określone w odbc.ini)
Zapytanie SQL Należy wprowadzić zapytanie SQL
Typ informacji Koniecznie trzeba wiedzieć, jakiego typu dane zwracane są przez zapytanie, żeby ustawić właściwie to pole. Z niewłaściwym typem informacji pozycja stanie się niewspierana.

15.7 Ważne uwagi

  • Zapytanie nie może być uruchamiane na serwerze dłużej niż parametr Timeout. Począwszy od Zabbix 2.0.8 wartość parametru Timeout używana jest również jako opóźnienie logowania ODBC (należy zauważyć, że w zależności od sterownika ODBC ustawienie opóźnienia logowania może być ignorowane).
  • Zapytanie musi zwracać wyłącznie jedną wartość.
  • Jeżeli zapytanie zwraca więcej niż jedną kolumnę, tylko pierwsza kolumna jest czytana.
  • Jeżeli zapytanie zwraca więcej niż jeden wiersz, tylko pierwszy jest czytany.
  • Komenda SQL musi zaczynać się od select.
  • Komenda SQL nie może zawierać żadnego znaku końca linii.

15.8 Komunikaty błędów

Począwszy od wersji Zabbix 2.0.8 komunikaty błędów ODBC są grupowane w polach, żeby przekazać bardziej szczegółowe informacje. Przykład:

Cannot execute ODBC query:[SQL_ERROR]:[42601][7][ERROR: syntax error at or near ";"; Error while executing the query]|
       -------------------------  ---------   -----  |  ------------------------------------------------------------------- |
                   |                  |         |    `- Oryginalny kod błędu       `- komunikat błędu.                      `- Separator rekordu
                   |                  |         `-SQLState
                   `- Komunikat Zabbix`- Kod powrotu ODBC

Należy zauważyć, że długość komunikatu błędu ograniczona jest do 128 znaków, zatem komunikat może być obcięty. Jeżeli istnieje więcej niż jeden rekord diagnostyczny ODBC Zabbix spróbuje połączyć je, do osiągnięcia limitu długości.