W jednym z ostatnich artykułów pokazałem, w jaki sposób w przeciągu około 5 minut można zainstalować Zabbix z użyciem kontenerów dockera. Korzystaliśmy w nim z podstawowych poleceń zawartych w programie. Tym razem chciałbym wskazać, w jaki sposób wykonać to samo, ale mając łatwiejszy dostęp do konfiguracji. Zobacz jak zainstalować Zabbix w inny sposób!

Zrobimy to przy pomocy docker compose, który korzysta z plików .yml. Są w nich umieszczone instrukcje odpowiedzialne za pobranie oraz instalację zarówno obrazów, jak i kontenerów. Dodatkowo korzystają one z zewnętrznych plików konfiguracyjnych, które są wykorzystywane w trakcie instalacji.

W przeciwieństwie do poprzedniego materiału, we wspomnianych plikach mamy wypisaną każdą możliwą opcję. W celu włączenia którejś, wystarczy odznaczyć znajdujący się hash ( # ) i wprowadzić odpowiednią wartość, jeżeli tego wymaga. Bez dalszego wstępu zobaczmy, jak to się robi.

 

Zapis na newsletter!

Zanim jednak rozwinę temat dalej to jedna informacja na początek. Prowadzę regularny, cotygodniowy newsletter z poradami związanymi z Zabbixem, monitoringiem oraz dobrymi praktykami w IT. Jeżeli nie chcesz przegapić kolejnych części oraz zaproszeń na nasze darmowe szkolenia to zapraszam do zapisu. Wystarczy pobrać mój poradnik. Monitoring IT – Dobre Praktyki. Wystarczy wejść klikając na obrazek:

__________________________________________

 

Jak zainstalować Zabbix – pobranie odpowiednich plików

Pierwsze co musimy zrobić, to pobrać wspomniane pliki. Znajdują się one w repozytorium githuba pod adresem https://github.com/zabbix/zabbix-docker.

W celu ich pobrania musimy skorzystać z aplikacji git w następujący sposób:

git clone https://github.com/zabbix/zabbix-docker.git

Jeżeli twój system nie odnajdzie użytego w przykładzie polecenia, należy zainstalować pakiet git https://git-scm.com/downloads. System Windows wymaga instalacji ręcznej, czyli musisz pobrać odpowiedni plik i go uruchomić. Natomiast w przypadku systemów Linux program znajduje się we wszystkich znanych mi dystrybucjach oraz ich repozytoriach.

Zapoznanie się z możliwościami

Po pobraniu odpowiedniego katalogu przejdźmy do niego i wyświetlmy zawartość:

cd zabbix-docker/

ls

build.json build.sh

docker-compose_v3_alpine_mysql_latest.yaml

docker-compose_v3_alpine_mysql_local.yaml

docker-compose_v3_alpine_pgsql_latest.yaml

docker-compose_v3_alpine_pgsql_local.yaml

docker-compose_v3_centos_mysql_latest.yaml

docker-compose_v3_centos_mysql_local.yaml

docker-compose_v3_centos_pgsql_latest.yaml

docker-compose_v3_centos_pgsql_local.yaml

docker-compose_v3_ol_mysql_latest.yaml

docker-compose_v3_ol_mysql_local.yaml

docker-compose_v3_ol_pgsql_latest.yaml

docker-compose_v3_ol_pgsql_local.yaml

docker-compose_v3_ubuntu_mysql_latest.yaml

docker-compose_v3_ubuntu_mysql_local.yaml

docker-compose_v3_ubuntu_pgsql_latest.yaml

docker-compose_v3_ubuntu_pgsql_local.yaml

Dockerfiles env_vars kubernetes.yaml LICENSE README.md

W celu lepszej czytelności prezentowany przykład został zmodyfikowany.

Chciałbym zwrócić twoją uwagę na ilość plików znajdujących się w katalogu. O czym nie wspominałem to wszystko to, co znajduje się w wyświetlonych plikach można wykonać ręcznie. Wymaga jednak bardzo dużej ilości wprowadzonych opcji. Jak i również ogromnej ilości poświęconego czasu. Dodatkowo konfiguracja w samym poleceniu może okazać się trochę mniej czytelna i skomplikowana. Dlatego w przypadku, gdy chcemy mieć lepszy obraz tego, co zrobić możemy i tego, co zrobimy lepiej jest skorzystać z prezentowanego rozwiązania.

Wybór systemu operacyjnego

Listę dostępnych dokumentów specjalnie zmodyfikowałem, aby była czytelniejsza. Zgodnie z nazwami mamy do dyspozycji cztery dystrybucje Linuksowe. Są to Alpine, Centos, Ubuntu oraz Oracle Linux. Ten ostatni jest dostępny tylko dla wersji 5 i wyżej. Z drugiego korzystamy w naszym szkoleniu. Natomiast z pierwszego korzystałem w poprzednim materiale. W związku z tym instalację Zabbix przeprowadzę używając dystrybucji Ubuntu. Jeżeli chcesz skorzystać z innego dostępnego systemu, nie zmieni to w żaden sposób tego, co poznasz w dalszej części tego materiału.

Wybór bazy danych

Poniżej przedstawiam listę dostępnych plików powiązanych z dystrybucję przeze mnie wybraną:

docker-compose_v3_ubuntu_mysql_latest.yaml

docker-compose_v3_ubuntu_mysql_local.yaml

docker-compose_v3_ubuntu_pgsql_latest.yaml

docker-compose_v3_ubuntu_pgsql_local.yaml

Pozostały cztery opcje. Tak jak poprzednio, możesz skorzystać z różnych baz danych. W przypadku dockera pracownicy Zabbix przygotowali rozwiązania do dwóch baz danych, MySQL i Postgres. Osobiście preferuję MySQL, ponieważ nigdy nie używałem bazy Postgres. W związku z tym wybieram MySQL.

Rodzaje instalacji

Po określeniu bazy danych pozostały nam dwa pliki:

docker-compose_v3_ubuntu_mysql_latest.yaml

docker-compose_v3_ubuntu_mysql_local.yaml

Co przykuwa uwagę, to ostatni człon nazwy pliku. Latest oznacza, najnowszy. W przypadku słowa local, lokalny. Niestety z samych tłumaczeń nic nie wynika. Dlatego spróbujmy dowiedzieć się, o co tak naprawdę chodzi.

Pierwsza z wymienionych możliwości, czyli latest polega na pobraniu najnowszych obrazów z repozytorium Zabbix. Zostały one specjalnie przygotowane przez pracowników firmy. Tego typu instalację możemy porównać do tej, którą wykonywałem przy użyciu samych poleceń dockera.

Drugie rozwiązanie polega na budowaniu lokalnych paczek. Oznacza to, że nie są pobierane gotowe paczki tak, jak w poprzednim przypadku. My musimy sami takie przygotować. Czyli tworzymy własne obrazy systemu na jakim będą uruchomione nasze kontenery. W tym wypadku jesteśmy w stanie dokonać każdej konfiguracji. Wiąże się to jednak z posiadaniem dużej wiedzy z zakresu tworzenia obrazów, jak i również samej instalacji Zabbix.

Wiedzę z zakresu Zabbix jesteś w stanie nabyć na naszym szkoleniu. To właśnie w nim wprowadzamy użytkownika z podstawową wiedzą z zakresu sieci, w jaki sposób go zainstalować oraz wdrożyć.

Pliki konfiguracyjne

Niezależenie od wersji jaką wybierzesz ,bardzo ważnym katalogiem jest env_vars. To w nim znajduje się cała konfiguracja naszego oprogramowania do monitoringu. Możesz się teraz zastanawiać, co znajduje się w opisywanych w poprzednim paragrafie. Otóż, jeżeli nigdy nie miałeś z tym styczności to możesz teraz mieć lekki mętlik w głowie. W plikach docker compose znajdują się dyrektywy dotyczące jaki typ, w jakiej wersji ma być zainstalowany. Natomiast w przypadku plików .env znajdują się wszystkie ustawienia wymagane przy instalacji. To z nich wspominane obrazy w plikach .yml będą korzystały, aby odpowiednio skonfigurować i uruchomić kontenery.

Wyświetlmy zawartość tego katalogu:

ls -a env_vars

. .env_agent .env_db_mysql_proxy .env_java .env_prx_mysql .env_srv .env_web_service .MYSQL_ROOT_PASSWORD .MYSQL_USER .POSTGRES_USER

.. .env_db_mysql .env_db_pgsql .env_prx .env_prx_sqlite3 .env_web .MYSQL_PASSWORD .MYSQL_ROOT_USER .POSTGRES_PASSWORD

Wszystkie pliki znajdujące się w nim są zapisane z kropką na początku nazwy. Oznacza to, że są plikami ukrytymi. Dlatego jeżeli wejdziesz do folderu przy pomocy graficznego interfejsu to będzie on pusty. Tak samo w przypadku konsoli. Jeżeli nie skorzystasz z opcji -a polecenia ls jego zawartość wyświetli się jako pusta.

Samo nazewnictwo plików jest dopasowane do funkcji, jaką pełni plik. Natomiast jeżeli otworzysz którykolwiek z nich, to pojawi się kompletna lista opcji jakie możesz użyć. W przypadku MYSQL_ROOT_USER oraz podobnych znajdziesz tylko jeden wpis. Natomiast w przypadku plików z konfiguracją serwera env_srv znajdują się w nim wszystkie wspomniane możliwości konfiguracyjne.

Z opcji jaką warto zmienić jest strefa czasowa. Dlatego modyfikujemy plik .env_web i w obecnej chwili, w linii 24 odznaczamy hash przy PHP_TZ=Europe/Warsaw i podmieniamy wartość na naszą lokalną. Jak sam widzisz po tym przykładzie jest to bardzo proste.

Uruchomienie kontenerów

Po wykonanej konfiguracji możemy przystąpić do pobrania oraz uruchomienia kontenerów:

docker compose -f docker-compose_v3_ubuntu_mysql_latest.yaml up -d

Po chwili powinny zostać uruchomione kontenery:

docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

a1be65753c81 zabbix/zabbix-web-nginx-mysql:ubuntu-6.2-latest "docker-entrypoint.sh" 6 minutes ago Up 6 minutes (healthy) 0.0.0.0:80->8080/tcp, :::80->8080/tcp, 0.0.0.0:443->8443/tcp, :::443->8443/tcp zabbix-docker-zabbix-web-nginx-mysql-1

494f4a042721 zabbix/zabbix-server-mysql:ubuntu-6.2-latest "/usr/bin/tini -- /u…" 6 minutes ago Up 6 minutes 0.0.0.0:10051->10051/tcp, :::10051->10051/tcp zabbix-docker-zabbix-server-1

9bb0d13e4340 mysql:8.0-oracle "docker-entrypoint.s…" 6 minutes ago Up 6 minutes zabbix-docker-mysql-server-1

Jak przedstawiono w przykładzie zostały uruchomione trzy kontenery. Następnie wystarczy, że uruchomimy przeglądarkę i wpiszemy adres localhost. Standardowy login to Admin, a hasło zabbix. Pamiętaj, że jako login wpisujesz pierwszą literę jako dużą.

Jak zainstalować Zabbix – podsumowanie

Instalacja z użyciem plików yml oraz dockera nie jest niczym skomplikowanym. Potwierdza to prezentowany artykuł. Co prawda, ilość możliwości konfiguracyjnych potrafi doprowadzić do zawrotów głowy, ale w ten sposób możesz dostosować zabbixa do swoich potrzeb. Szczególnie, że wszystko znajdować się będzie w izolowanym środowisku. Bo to właśnie jest szczególną cechą jaką posiada docker i dla której się z niego korzysta.

Chcesz więcej?

Oczywiście, jeżeli nie chcesz przegapić tego typu materiałów, to zapisz się na mój newsletter i przy okazji odbierz darmowe bonusy, np. e-booka ze zdjęcia poniżej! Prowadzę regularny, cotygodniowy newsletter z poradami związanymi z automatyzacją, monitoringiem oraz dobrymi praktykami w IT.

Zapisy TUTAJ

Zapisz się na Newsletter i odbierz za darmo e-book "Monitoring IT"!

X