Kako pratiti Docker kontejnere pomoću Zabbix alata za praćenje


Docker je sigurno jedan od najcjenjenijih DevOps alata koji pojednostavljuje razvoj, implementaciju i isporuku aplikacija unutar kontejnera.

Koncept kontejnerizacije podrazumijeva korištenje slika kontejnera. Ovo su mali, lagani i samostalni izvršni paketi koji uključuju sve što je potrebno za pokretanje aplikacije uključujući izvorni kod, biblioteke i ovisnosti te konfiguracijske datoteke.

Na taj način, aplikacija može raditi u gotovo svakom računarskom okruženju; tradicionalna IT infrastruktura, oblak i bezbroj Linux/UNIX ukusa.

Monitoring kontejnera pomaže operativnim timovima da identificiraju temeljne probleme i riješe ih na vrijeme. Nadgledanje kontejnera obuhvata hvatanje osnovnih metrika kao što su upotreba CPU-a, iskorišćenost memorije, veličina kontejnera i korišćenje propusnog opsega da spomenemo samo neke. Osim toga, možete prikupiti dnevnike u realnom vremenu koji su korisni u otklanjanju grešaka i upozoravanju IT tima kada treba povećati.

Zabbix je popularan alat za praćenje IT infrastrukture koji prati gotovo svaki element vašeg okruženja, uključujući fizičke uređaje kao što su serveri i mrežni uređaji kao što su ruteri i svičevi. Takođe može nadgledati aplikacije, usluge i baze podataka.

U ovom vodiču ćemo vam pokazati kako možete pratiti Docker kontejnere koristeći Zabbix alat za praćenje u Linuxu.

Zahtjevi

Evo šta vam je potrebno prije nego što počnete:

Prvo, uvjerite se da imate dva čvora – Prvi čvor je Zabbix server. Ovo je čvor sa kojeg ćemo nadgledati udaljeni Docker server. Imamo članak o:

  • Kako instalirati Zabbix na Rocky Linux i AlmaLinux
  • Kako instalirati Zabbix alat za nadzor na Debian 11/10
  • Kako instalirati Zabbix na RHEL 8
  • Kako instalirati Zabbix na Ubuntu

Drugi čvor je Docker server na kojem je Docker instaliran. Ovo je čvor odakle ćemo pokretati Docker kontejnere i pratiti aktivnost kontejnera.

  • Kako instalirati Docker na Rocky Linux i AlmaLinux
  • Kako instalirati i koristiti Docker na Ubuntu 20.04
  • Kako instalirati Docker u CentOS i RHEL 8/7

Zatim, osigurajte da imate SSH pristup vašem Docker serverskom čvoru s već konfiguriranim sudo korisnikom.

Sa postavljenom postavom, sada možete zasukati rukave!

Korak 1: Instalirajte Zabbix-Agent u Linux

Da nadgledate Docker kontejnere na udaljenom serveru, trebate instalirati Zabbix agent, koji je nadzorni agent koji je raspoređen na ciljnom čvoru da aktivno nadgleda sistemske metrike i druge aplikacije.

Prvo, trebate instalirati Zabbix spremište na Docker čvor.

----------- On Ubuntu 20.04 ----------- 
sudo wget https://repo.zabbix.com/zabbix/5.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_5.4-1+ubuntu20.04_all.deb
sudo dpkg -i zabbix-release_5.4-1+ubuntu20.04_all.deb
sudo apt update
sudo apt install zabbix-agent2

----------- On RHEL-based Distro ----------- 
sudo rpm -Uvh https://repo.zabbix.com/zabbix/5.4/rhel/8/x86_64/zabbix-release-5.4-1.el8.noarch.rpm
sudo dnf update
sudo dnf install zabbix-agent

----------- On Debian 11 ----------- 
sudo wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1%2Bdebian11_all.deb
sudo dpkg -i zabbix-release_5.4-1%2Bdebian11_all.deb
sudo apt update
sudo apt install zabbix-agent2

----------- On Debian 10 ----------- 
sudo wget https://repo.zabbix.com/zabbix/5.4/debian/pool/main/z/zabbix-release/zabbix-release_5.4-1%2Bdebian10_all.deb
sudo dpkg -i zabbix-release_5.4-1%2Bdebian10_all.deb
sudo apt update
sudo apt install zabbix-agent2

Korak 2: Konfigurirajte Zabbix-Agent u Linuxu

Prema zadanim postavkama, Zabbix agent je postavljen da šalje metriku Zabbix serveru na istom hostu na kojem je instaliran. Pošto je naš cilj nadgledanje docker kontejnera na udaljenom serveru, potrebne su neke dodatne konfiguracije.

Stoga, pristupite Zabbix konfiguracijskoj datoteci agenta.

sudo vim /etc/zabbix/zabbix_agent2.conf

Konfiguracijski fajl sadrži postavke koje određuju adresu na koju se metrika šalje, port koji se koristi za veze i još mnogo toga. Uglavnom, podrazumevane postavke će raditi sasvim dobro.

Da konfigurišete Zabbix agenta da šalje metriku Zabbix serveru, locirajte direktivu koja je konfigurisana da šalje metriku na adresu povratne petlje, ili jednostavno rečeno, isti host sistem.

Server=127.0.0.1

Postavite adresu tako da odražava adresu Zabbix servera

Server=zabbix-server-IP

Dodatno, idite na odjeljak 'Aktivne provjere' i promijenite direktivu da ukazuje na IP adresu Zabbix servera.

ServerActive=zabbix-server-IP

Obavezno prilagodite i ime hosta Docker servera u skladu s tim. Ime hosta mog Docker servera je Ubuntu20.

Hostname=Ubuntu20

Zatim spremite promjene i izađite iz Zabbix konfiguracijske datoteke.

Da bi Zabbix agent držao na oku Docker kontejnere, morate dodati Zabbix korisnika, koji je instaliran po defaultu, u docker grupu.

sudo usermod -aG docker zabbix

Da biste primijenili promjene napravljene na konfiguracijskoj datoteci, ponovo pokrenite Zabbix-agent uslugu i omogućite joj da se pokrene pri pokretanju sistema.

sudo systemctl restart zabbix-agent2
sudo systemctl enable zabbix-agent2

Potvrdite status pokretanja Zabbix agenta na sljedeći način.

sudo systemctl status zabbix-agent2

Zabbix agent sluša na portu 10050. Ako imate pokrenut UFW firewall ili firewall, razmislite o otvaranju porta na sljedeći način.

----------- On UFW Firewall ----------- 
sudo ufw allow 10050/tcp
sudo ufw reload

----------- On Firewalld ----------- 
sudo firewall-cmd --add-port=10050/tcp --permanent
sudo firewall-cmd --reload

Odlično! Sada smo na pola puta. Zabbix agent sada može slati Docker metriku kontejnera na Zabbix server.

U sljedećem koraku ćemo dodati Docker server na Zabbix web interfejs i nadgledati Docker kontejnere.

Korak 3: Dodajte Docker na Zabbix server za nadgledanje

Da nadgledate udaljeni host, morate ga dodati na kontrolnu tablu Zabbix servera putem pretraživača. Zabbix nudi bezbroj šablona za različite usluge i aplikacije. Povezaćemo odgovarajući predložak sa Docker hostom da bismo posebno nadgledali kontejnere. Ali prvo, pristupite stranici za prijavu na Zabbix server.

http://zabbix-server-ip/zabbix

Nakon što ste se prijavili, idite na desnu bočnu traku i kliknite na 'Konfiguracija', a zatim na 'Hostovi'.

U krajnjem gornjem desnom uglu kliknite na 'Kreiraj host'.

Unesite detalje Docker servera kao što su ime hosta i vidljivo ime. Za grupe, unesite „Docker grupe” (svaki host mora biti povezan s grupom).

Ispod oznake "Interfejsi" kliknite na "Dodaj" i u meniju koji se pojavi odaberite "Agent".

Zatim popunite privatnu IP adresu Docker servera i uvjerite se da je port postavljen na 10050.

Zatim kliknite na karticu Predlošci i u odjeljku 'Poveži nove predloške' navedite 'Docker by Zabbix agent 2'. Zatim kliknite na dugme 'Dodaj'.

Kada kliknete na dugme Dodaj, udaljeni Docker host će se automatski dodati kako je naznačeno.

U ovom trenutku, Zabbix server sada nadgleda vaš Docker server. U sljedećem koraku ćemo postaviti kontejner i provjeriti koje se metrike mogu pratiti.

Korak 4: Nadgledanje Docker metrika u Zabbix Monitoringu

Za početak praćenja Docker metrika, pokrenut ćemo testni kontejner. Dakle, vratite se na svoj Docker server i pokrenite kontejner.

U ovom primjeru, povući ćemo sliku Ubuntu kontejnera i kreirati kontejner pod nazivom docker_test_container. Zatim ćemo dobiti pristup ljusci pomoću opcije -it. Cijela komanda za operacije je sljedeća.

sudo docker run --name docker_test_container -it ubuntu bash

Možete pokušati nešto ambiciozno kao što je instaliranje softverskih paketa kao što su Apache ili MariaDB kako biste generirali neke metrike kao što su korištenje CPU-a i mrežni promet.

Sada se vratite na Zabbix kontrolnu tablu servera. Kliknite na 'Nadgledanje', a zatim na 'Hostovi'. Kliknite na naziv vašeg Docker servera i u opciji izbornika koja se pojavi odaberite 'Najnoviji podaci'.

Nakon nekoliko minuta od postavljanja kontejnera, Zabbix server će otkriti kontejner i početi popunjavati neke statistike.

Također možete vidjeti grafikone različitih metrika kontejnera klikom na opcije 'grafovi' Docker servera na stranici 'Hostovi'. Ispod možete vidjeti metriku korištenja CPU-a i memorije.

Da bismo simulirali pad kontejnera, neočekivano ćemo izaći iz kontejnera pokretanjem naredbe ispod u ljusci kontejnera.

exit 2

To implicira da smo zatvorili kontejner s kodom greške 2. Ovo je zabilježeno unutar metapodataka kontejnera. Da vidite upozorenje, idite na lijevu bočnu traku i kliknite na "Nadgledanje", a zatim na "Kontrolna tabla".

Upozorenje je prikazano ispod.

Da biste ispravili grešku, jednostavno ponovo pokrenite kontejner.

sudo docker start docker_test_container 

I ovo nas dovodi do kraja ovog vodiča. Proveli smo vas kroz proceduru korak po korak kako možete pratiti Docker kontejnere koristeći Zabbix alat za praćenje.