Instalację i konfigurację Zabbix krok po kroku przeprowadziliśmy w naszym kursie. Dzięki zapoznaniu się z wymienionymi materiałami, jesteś w stanie samodzielnie zainstalować oraz skonfigurować aplikację Zabbix. Ten materiał jest uzupełnieniem. Pokażę w nim krok po kroku, jak powinna przebiegać instalacja Zabbixa z wykorzystaniem kontenerów dockera.
Istnieją oficjalne obrazy Zabbix, dzięki którym jesteś w stanie zautomatyzować całą operację. Po zapoznaniu się z programem szkoleniowym, polecam przeprowadzić taką instalację, samodzielnie tworząc własne. W prezentowanym materiale wykorzystam najprostsze rozwiązanie z możliwych. Będziesz w stanie w przeciągu około 5 minut postawić własny serwer z działającym Zabbix. Prezentowany artykuł opiera się o najnowsze wersje dostępnego oprogramowania – zarówno bazy MySQL, jak i również samego Zabbixa.
Ostatni webinar w tym roku!
Zapraszamy na bezpłatny webinar poświęcony roli sztucznej inteligencji w zarządzaniu infrastrukturą IT, zarówno w dużych serwerowniach, jak i w środowiskach homelab.
W trakcie wydarzenia dowiesz się, jak AI może wspierać codzienną pracę administratora, pomagając w automatyzacji procesów, monitorowaniu zasobów, analizie danych oraz zwiększaniu efektywności operacyjnej.
Zapisy na: https://asdevops.pl/warsztaty/
Instalacja Zabbixa – tworzenie własnej sieci
Aby było prościej, stworzymy własną sieć w celu ułatwienia komunikacji pomiędzy kontenerami. Dzięki temu rozwiązaniu będzie ona następowała po ich nazwach. Pozwoli to, szczególnie osobom początkującym, na lepsze zrozumienie każdego z kroków. Dlatego też bez zbędnej zwłoki stwórzmy własną sieć:
docker network create zabbix
Po wykonaniu powyższej czynności należy sprawdzić, czy sieć została dodana do listy. Oznaczać to też będzie, że została poprawnie stworzona:
docker network ls
NETWORK ID NAME DRIVER SCOPE
c5ba2496de8f bridge bridge local
e2198787e635 host host local
e6137ead4366 none null local
8193b9479593 zabbix bridge local
Nasza sieć znajduje się na samym końcu listy, co zostało wyróżnione w przykładzie. Tworzoną przeze mnie sieć nazwałem zabbix. Przy tworzeniu kontenerów dodamy do niej wszystkie dotyczące instalowanego oprogramowania do monitoringu.
Pobranie obrazu MySQL i uruchomienie kontenera
Po stworzeniu sieci zajmijmy się teraz pobraniem odpowiednich obrazów. Następnie stworzymy z nich kontenery. Jak wspominałem, na samym początku tego materiału, chcę to wszystko pokazać w najszybszy sposób, dlatego użyjemy polecenia dockera run.
Pierwsze co zrobimy, to pobierzemy obraz bazy MySQL oraz stworzymy jedną instancję w postaci kontenera:
docker run --name zabbix-mysql –-net zabbix -e MYSQL_ROOT_PASSWORD=zabbix -d mysql
Powstały kontener z obrazu mysql będzie nosił nazwę zabbix-mysql. Należeć będzie do wcześniej utworzonej przez nas sieci zabbix. Musimy ustawić hasło do naszego konta root, z którego w tym przykładzie będziemy korzystali. Ja wybrałem najprostsze do zapamiętania. To, co chcę zaprezentować, ma za zadanie jedynie zobrazowanie prostoty instalacji.
Wiele innych możliwości konfiguracyjnych jesteś w stanie odnaleźć na stronie obrazu https://hub.docker.com/_/mysql . Natomiast wszystkie dyrektywy do obecnej wersji znajdują się pod adresem https://dev.mysql.com/doc/refman/5.7/en/environment-variables.html.
Pamiętaj jednak, że ostatni link z dyrektywami do MySQL może się różnić od wersji z jakiej korzystasz. Dlatego dobrze jest sprawdzić z jakiej używasz przy swojej instalacji.
Jeżeli zapomniałeś dodać opcji –net, dzięki której dodajesz tworzony kontener do sieci, to nie usuwaj kontenera, tylko skorzystaj z polecenia:
docker network connect zabbix zabbix-mysql
Polecenie doda już stworzony kontener do sieci. Wspominam o tym, ponieważ jest to bardzo często popełniany błąd.
Instalacja Zabbixa – pobranie obrazu serwera i stworzenie kontenera
Jak wiecie, serwer zapisuje wszystkie dane w bazie. Stworzyliśmy taką w poprzednim paragrafie. Teraz pobierzemy obraz serwera Zabbix oraz stworzymy kontener:
docker run --name zabbix-server -p 10051:10051 –-net zabbix -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_USER="root" -e MYSQL_PASSWORD="zabbix" -d zabbix/zabbix-server-mysql
Polecenie jest proste, ale może okazać się trochę skomplikowane dla osób, które nie znają dockera.
Wszystko jest proste, o ile znamy się na tym.
Idąc tą myślą pozwolę sobie na skrótowy opis.
Serwer zabbix udostępniamy na porcie 10051. Czyli, tak jak wykonywaliśmy to wszystko na wspomnianym szkoleniu. Następnie musimy wprowadzić adres, gdzie znajduje się zainstalowana przed chwilą baza danych MySQL. Gdybyśmy nie korzystali z dobrodziejstw jakie oferuje docker, wpisać musielibyśmy adres IP kontenera. Pamiętaj jednak, że jeżeli korzystasz z domyślnej sieci dockera, to taki musi się tam pojawić. Adres IP kontenera jesteś w stanie poznać przy pomocy polecenia:
docker container inspect zabbix-mysql
Natomiast my poszliśmy krok do przodu. Dla własnej wygody stworzyliśmy sieć, do której dodajemy kolejno kontenery. W związku z tym wystarczy, że podamy w tym miejscu nazwę kontenera, w którym znajduje się zainstalowana baza danych MySQL.
Gdy tworzyliśmy bazę danych, dla konta root utworzyliśmy hasło zabbix. Teraz korzystamy z tego konta wprowadzając jako nazwę root a jako hasło zabbix.
Więcej dyrektyw z jakich możesz skorzystać odnajdziesz pod adresem https://hub.docker.com/r/zabbix/zabbix-server-mysql
Po analizie prezentowanego przykładu pozostało, zainstalować panel do obsługi serwera. Dzięki czemu będziemy korzystali z zabbix w identyczny sposób jak w szkoleniu.
Instalacja panelu administracyjnego
Jak do tej pory, wszystko było bardzo proste. Szczególnie jak zna się dobrze dockera. Trzeci kontener, którego potrzebujemy, musi mieć połączenie zarówno z bazą danych, jak i również z serwerem zabbix. Takiego połączenia dokonujemy przy pomocy skonstruowanego polecenia:
docker run --name zabbix-web -p 80:8080 –-net zabbix -e DB_SERVER_HOST="zabbix-mysql" -e MYSQL_USER="root" -e MYSQL_PASSWORD="zabbix" -e ZBX_SERVER_HOST="zabbix-server" -e PHP_TZ="Europe/Warsaw" -d zabbix/zabbix-web-apache-mysql
Jest ono trochę bardziej rozbudowane niż te, które poznaliśmy poprzednio. Jeżeli przeanalizujesz je, to pomimo większej obszerności jesteś w stanie dojść do tego, co do czego służy. Niemniej jednak nie byłbym sobą, gdybym nie wykonał choć podstawowego opisu.
Pierwsza część polecenia dotyczy udostępnienia aplikacji na porcie 80. Następnie sprawiamy, aby panel komunikował się z bazą danych. Używając do tego nazwy kontenera, w którym się ona znajduje, nazwę użytkownika oraz hasło. Wszystkie te elementy utworzyliśmy w poprzednich krokach.
Dalsza część polecenia dotyczy już naszego serwera. Tak jak w przypadku bazy danych podajemy nazwę kontenera, w którym zainstalowaliśmy serwer. Jedną z nowości to jest określenie strefy czasowej, którą wykonujemy przy pomocy dyrektywy PHP_TZ.
Więcej takich dyrektyw jesteś w stanie poznać pod adresem https://hub.docker.com/r/zabbix/zabbix-web-nginx-mysql.
Logowanie do panelu administracyjnego
Jeżeli wszystko zainstalowaliśmy właściwie, to powinniśmy posiadać trzy kontenery:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
76ad5cc2808b zabbix/zabbix-web-apache-mysql "docker-entrypoint.s…" 6 seconds ago Up 4 seconds 8443/tcp, 0.0.0.0:80->8080/tcp, :::80->8080/tcp zabbix-web
dce7263a70e7 zabbix/zabbix-server-mysql "/sbin/tini -- /usr/…" 38 seconds ago Up 37 seconds 0.0.0.0:10051->10051/tcp, :::10051->10051/tcp zabbix-server
46bb9c04dd65 mysql "docker-entrypoint.s…" About a minute ago Up About a minute 3306/tcp, 33060/tcp zabbix-mysql
Każdy opisałem z osobna dlatego jeżeli masz jakiekolwiek wątpliwości, to zerknij ponownie w powyższe treści.
Pozostało tylko uruchomić przeglądarkę i wpisać localhost.
I tutaj uwaga. Jeżeli już korzystasz z portu 80, to musisz w ostatnim kroku zmienić port na inny. W przypadku użycia innego portu należy wprowadzić adres w następujący sposób:
localhost:port
W miejscu port, po dwukropku wprowadzasz port, który wybrałeś.
Niezależnie od użytego, po wprowadzeniu adresu powinien pojawić się panel administracyjny Zabbix.
Jako login wprowadzasz: Admin, a hasło zabbix. Ważne jest, aby nazwa loginu była wprowadzona z dużej litery.
Podsumowanie
Gdybym nie dokonał opisu przedstawionych tutaj poleceń, to tak naprawdę instalację Zabbix mógłbyś wykonać przy pomocy trzech poleceń. Plus do tego jedno służące do sieci. Jak widzisz instalacja Zabbixa z wykorzystaniem dockera nie jest niczym skomplikowanym. Prezentowany sposób jak najbardziej nadaje się do nauki. Jeżeli chodzi o wykorzystanie w sposób bardziej produkcyjny wymagałby dość zaawansowanej konfiguracji, którą prezentujemy w naszym kursie.
Chcesz poznać dokładnie Zabbixa?
Nie zapomnij o promocji na kurs: https://asdevops.pl/kurs/