Powrót do bloga

Monitoring Zabbix | 8 maja 2020

Monitoring Baz Danych w Zabbixie

Jak przygotować serwer i obserwować dane


Monitoring to nierozłączna część życia w świecie IT. Monitorować można wiele podzespołów w warstwie fizycznej (hardware), jak i aplikacyjnej (software). Dzisiaj przedstawię w jaki sposób można obserwować dane zawarte w relacyjnych bazach danych, ponieważ błędy w aplikacjach mogą być spowodowane nie tylko brakami w połączeniu z bazą, ale również z nieaktualnymi już danymi, które są zawarte w tabelach.

Blog ekspertów IT Monitoring Baz Danych Zabbix zdjęcie duże


Jakie są skutki nieaktualnych danych w bazie

Wyobraźmy sobie taką sytuację. Do banku przychodzi Klient, który chce wypłacić pieniądze ze swojego konta. Aplikacja, z której korzysta Pani „w okienku” jest połączona z bazą danych, która jest wykorzystywana również przez inne aplikacje. W momencie próby wykonania transakcji na tabele w bazie zostały nałożone tzw. „Locki”, co oznacza że można wyświetlić dane, lecz nie można ich zaktualizować. Spowodowane jest to tym, że dany rekord został wcześniej wykorzystany przez inną aplikację. Pieniądze klientowi zostają wypłacone, lecz w bazie nie księguje się informacja, że pieniądze zostały pobrane. Z perspektywy konsumenta sytuacja idealna – pieniądze za darmo. Z perspektywy banku – realna awaria i straty. Na szczęście można się przed taką sytuacją odpowiednio szybko zabezpieczyć. Poprzez monitoring bazy danych.

Jak korzystać z silników ODBC

System monitoringu Zabbix pozwala na skorzystanie z silników ODBC (Open DataBase Connectivity) różnych baz danych, takich jak MSSQL, MySQL, Oracle DB2, PostgreSQL i inne. Jak to działa? Z poziomu serwera Zabbix wysyłamy zapytanie bazodanowe (odpowiednie do typu bazy), które zwrócić ma nam daną zawartą w bazie danych.

Jak przygotować serwer Zabbix

Zaprezentuję przygotowanie serwera Zabbixa na przykładzie systemu CentOS i mySQLowej bazy danych Zabbixa. Do monitorowania bazy danych trzeba odpowiednio przygotować środowisko, na którym pracuje serwer Zabbix. Należy zainstalować silnik MySQL ODBC do bazy danych. Pozwolą na to polecenia:

# yum install unixODBC unixODBC-devel -y
# yum install mysql-connector-odbc -y

Po wykonaniu powyższych poleceń pojawi się plik w lokalizacji /etc o nazwie odbcinst.ini. Współgra z nim plik odbc.ini, który należy wytworzyć samodzielnie.

  • /etc/odbcinst.ini  – Plik konfiguracyjny silników baz danych
  • /etc/odbc.ini – Plik konfiguracyjny do połączenia z bazą danych, wskazujący na silnik ODBC z pliku /etc/odbcinst.ini

Po zainstalowaniu paczki mysql-connector-odbc plik odbcinst.ini automatycznie uzupełnia się potrzebnymi danymi w następujący sposób:

[MySQL] # DSN określający sterownik silnika
Description=opis # Opis silnika
Driver= /usr/lib/libmyidbc5.so # Lokalizacja sterownika 32-bitowego
Setup= /usr/lib/libodbcmyS.so # Setup sterownika 32-bitowego
Driver64= /usr/lib64/libmyodbc5.so # Lokalizacja sterownika 64-bitowego
Setup64= /usr/lib64/libodbcmyS.so # Setup sterownika 64-bitowego
FileUsage=1 # Wpis informujący o zmianie w pliku konfiguracyjnym

Posiadając tak skonfigurowany plik odbcinst.ini możemy wytworzyć plik do łączenia się z bazami danych wykorzystując DSN wpisany w plik odbcinst.ini.

# touch /etc/odbc.ini

Wytworzony plik należy uzupełnić poniższymi danymi:

[BazaDanych] # DSN pliku odbc.ini
Description= Opis, której bazy dotyczy # Opcjonalny opis
Driver= MySQL # DSN z pliku /etc/odbcinst.ini
Server=127.0.0.1 # Adres IP/DNS serwera bazy danych
Port=3306 # Port do bazy danych
User=zabbix # Nazwa użytkownika w bazie danych
Password=zabbix123 # Hasło do bazy danych
Database=zabbix # Nazwa bazy danych

Serwer został skonfigurowany. Zabbix ma teraz możliwość korzystania z silników ODBC. Następnie skonfigurować można monitoring.

Jak wytworzyć monitoring

Do celów testowych wytworzymy monitoring ilości wszystkich wyzwalaczy w naszym własnym systemie Zabbix. Takowe dane znajdują się w tabeli triggers  w bazie zabbix, do której mamy dostęp dzięki plikowi odbc.ini skonfigurowanemu powyżej. Do zrealizowania takiego zadania musimy wytworzyć odpowiednie zapytanie SQL, zwracające nam tylko jedną daną dowolnego typu (liczba całkowita, liczba zmiennoprzecinkowa, tekst). W naszym przypadku to będzie funkcja zliczająca Count.

Monitoring Baz Danych Zabbix obraz 1

W bazie danych zapisanych jest 543 wyzwalaczy. Tworzymy więc pozycje podpięte do Hosta „Localhost” z takimi informacjami jak:

  • Nazwa: Ilość wyzwalaczy w systemie Zabbix
  • Typ: Monitor bazy danych
  • Klucz: db.odbc.select[ilosc_wyzwalaczy,BazaDanych]
  • Zapytanie SQL: select count(triggerid) from triggers;
  • Typ informacji: Numerycznie (liczba całkowita bez znaku)
  • Interwał aktualizacji: 5m
  • Okres przechowywania historii: 30d
  • Okres przechowywania trendu: 90d
  • Aplikacje: Z bazy danych

W kluczu pierwszym parametrem jest dowolny wpis – aby zachować unikatowość nazwy klucza. Natomiast drugi parametr to DSN wpisany w plik odbc.ini. Dzięki temu Zabbix wie, z którego silnika bazy danych ma skorzystać. Ważne jest, aby nie odpytywać zbyt często bazy danych i jej tym samym nie przeciążyć. Zapytania co 5 min. powinny być wystarczające.

Monitoring Baz Danych Zabbix obraz 2

Po zatwierdzeniu wykonania powyższej pozycji, w niedługim czasie na hoście „Localhost” w zakładce „Ostatnie Dane” powinny pojawić się dane z naszej pozycji odpytujące bezpośrednio bazę danych z wartości w niej zawartych.

Monitoring Baz Danych Zabbix obraz 3

Monitoring baz danych jest wykorzystywany powszechnie, również w naszej usłudze rabbIT, bezpośrednio u nas i u naszych Klientów. Powyżej zaprezentowany został koncept w jaki sposób można monitorować środowisko bazodanowe. Problemów, sytuacji i koncepcji jest wiele – np. odpytywanie bazy danych pod kątem rekordów, czy nawet pod kątem weryfikacji zadań tzw. „Jobów” bazodanowych, czy zostały wykonane pomyślnie i zasilają aplikacje. A wszystko dzięki zaawansowanemu monitoringowi poleceń języka SQL.

W Aplitt mierzymy się z tym na co dzień. Wykonujemy takie zadania powszechnie i systematycznie, więc jeśli chcesz zapobiec problemom z bazami danych w Twojej organizacji, wybierz rabbIT.


Jeśli chcesz podnieść swoje kompetencje w zakresie systemu Zabbix:

  • zaprosimy Twojego admina na szkolenie, na którym krok po kroku pokażemy jak Zabbix może mu pomóc w codziennej pracy
  • pokażemy jak duże możliwości integracji daje Zabbix i jak dużo Twojego czasu może oszczędzić
  • pomożemy właściwie skonfigurować Zabbixa

Jeśli chcesz powierzyć nam monitoring IT:

  • wspólnie określmy parametry dostępności usługi
  • określimy newralgiczne obszary dla Ciebie i Twojego biznesu
  • dostarczymy Ci raporty z przeprowadzonych działań


Summary
Monitoring Baz Danych w Zabbixie
Article Name
Monitoring Baz Danych w Zabbixie
Description
Skutki nieaktualnych danych w bazie mogą być nieodwracalne. Sprawdź jak korzystać z silników ODBC, jak przygotować serwer i skonfigurować system monitoringu infrastruktury Zabbix żeby tego uniknąć.
Author
Publisher Name
Aplitt sp. z o.o.
Publisher Logo
Podziel się opinią
Mateusz Dampc Aplitt Sp. z o.o. | Administrator ds. Monitoringu Infrastruktury

Zabbix 3.0 & 4.0 Certified Professional z kilkuletnim doświadczeniem w administracji systemami Windows i Linux. Absolwent WSB w Gdańsku na kierunku Informatyka, ze specjalizacją Inżynieria Sieci Komputerowych. Prowadzi szkolenia autorskie Zabbix.

Mateusz Dampc

Aplitt sp. z o.o. | Starszy Administrator ds. Monitoringu Infrastruktury

Napisz do mnie:  

Zobacz również

thumb image

24 września 2020

Wszystko o szkoleniach Zabbix


Czytaj
thumb image

3 sierpnia 2020

Co nowego w Zabbix 5.0


Czytaj
thumb image

7 lipca 2020

Wykrywanie i dodawanie hostów w Zabbixie


Czytaj
thumb image

21 czerwca 2020

Słowniczek podstawowych pojęć dla Zabbix


Czytaj