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.
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:
Instalacja unixODBC na systemach opartych o SUSE przy użyciu menadżera pakietów zypper:
Pakiet unixODBC-devel jest wymagany do skompilowania Zabbix z obsługą 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:
Instalacja sterownika bazy danych MySQL na systemach opartych o SUSE przy użyciu menadżera pakietów zypper:
ODBC konfiguruje się poprzez edycję plików odbcinst.ini i odbc.ini files. Żeby sprawdzić lokalizację plików konfiguracyjnych, należy wpisać:
odbcinst.ini używany jest do wyświetlania zainstalowanych sterowników baz danych ODBC:
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>
Żeby włączyć obsługę ODBC, Zabbix powinien być skompilowany z następującą flagą:
Zobacz więcej na temat instalacji Zabbix z kodów źródłowych.
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. |
select
.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.