Kako spremljati vsebnike Docker z orodjem za spremljanje Zabbix


Docker je nedvomno eno najbolj cenjenih orodij DevOps, ki poenostavlja razvoj, uvajanje in pošiljanje aplikacij znotraj zabojnikov.

Koncept kontejnerizacije vključuje uporabo slik kontejnerjev. To so majhni, lahki in samostojni izvedljivi paketi, ki vključujejo vse, kar je potrebno za zagon aplikacije, vključno z izvorno kodo, knjižnicami in odvisnostmi ter konfiguracijskimi datotekami.

S tem se lahko aplikacija izvaja v skoraj vsakem računalniškem okolju; tradicionalna IT infrastruktura, oblak in nešteto okusov Linux/UNIX.

Spremljanje vsebnikov pomaga operativnim skupinam prepoznati osnovne težave in jih pravočasno rešiti. Spremljanje vsebnikov zajema zajemanje osnovnih meritev, kot so dnevniki v realnem času, ki so v pomoč pri odpravljanju napak in opozarjanju ekipe IT, kdaj naj se poveča.

Zabbix je priljubljeno orodje za spremljanje infrastrukture IT, ki spremlja skoraj vsak element vašega okolja, vključno s fizičnimi napravami, kot so strežniki in omrežne naprave, kot so usmerjevalniki in stikala. Prav tako lahko spremlja aplikacije, storitve in baze podatkov.

V tem priročniku vam bomo pokazali, kako lahko spremljate vsebnike Docker z orodjem za spremljanje Zabbix v Linuxu.

Preden začnete, potrebujete naslednje:

Najprej se prepričajte, da imate dve vozlišči – prvo vozlišče je strežnik Zabbix. To je vozlišče, s katerega bomo spremljali oddaljeni strežnik Docker. Imamo članek o:

  • Kako namestiti Zabbix na Rocky Linux in AlmaLinux
  • Kako namestiti orodje za spremljanje Zabbix na Debian 11/10
  • Kako namestiti Zabbix na RHEL 8
  • Kako namestiti Zabbix na Ubuntu

Drugo vozlišče je strežnik Docker, na katerem je nameščen Docker. To je vozlišče, od koder bomo izvajali vsebnike Docker in spremljali dejavnost vsebnikov.

  • Kako namestiti Docker na Rocky Linux in AlmaLinux
  • Kako namestiti in uporabljati Docker v Ubuntu 20.04
  • Kako namestiti Docker v CentOS in RHEL 8/7

Nato zagotovite, da imate dostop SSH do vozlišča strežnika Docker z že konfiguriranim uporabnikom sudo.

Ko je vaša nastavitev pripravljena, lahko zdaj zavihate rokave!

1. korak: Namestite Zabbix-Agent v Linux

Za spremljanje vsebnikov Docker na oddaljenem strežniku morate namestiti zastopnika Zabbix, ki je agent za spremljanje, ki je nameščen na ciljnem vozlišču za aktivno spremljanje sistemskih meritev in drugih aplikacij.

Najprej morate namestiti repozitorij Zabbix na vozlišče Docker.

----------- 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

2. korak: Konfigurirajte Zabbix-Agent v Linuxu

Privzeto je agent Zabbix nastavljen tako, da pošilja meritve na strežnik Zabbix na istem gostitelju, na katerem je nameščen. Ker je naš cilj spremljati vsebnike dockerjev na oddaljenem strežniku, so potrebne nekatere dodatne konfiguracije.

Zato dostopajte do konfiguracijske datoteke agenta Zabbix.

$ sudo vim /etc/zabbix/zabbix_agent2.conf

Konfiguracijska datoteka vsebuje nastavitve, ki določajo naslov, kamor so poslane meritve, vrata, ki se uporabljajo za povezave in še veliko več. Večinoma bodo privzete nastavitve dobro delovale.

Če želite konfigurirati agenta Zabbix za pošiljanje meritev na strežnik Zabbix, poiščite direktivo, ki je konfigurirana za pošiljanje meritev na naslov povratne zanke, ali preprosto povedano, isti gostiteljski sistem.

Server=127.0.0.1

Nastavite naslov tako, da odraža naslov strežnika Zabbix

Server=zabbix-server-IP

Poleg tega se pomaknite do razdelka »Aktivni pregledi« in spremenite direktivo, da kaže na naslov IP strežnika Zabbix.

ServerActive=zabbix-server-IP

Ne pozabite ustrezno prilagoditi tudi imena gostitelja strežnika Docker. Ime gostitelja mojega strežnika Docker je Ubuntu20.

Hostname=Ubuntu20

Nato shranite spremembe in zapustite konfiguracijsko datoteko Zabbix.

Da agent Zabbix spremlja vsebnike Docker, morate v skupino Docker dodati uporabnika Zabbix, ki je privzeto nameščen.

$ sudo usermod -aG docker zabbix

Če želite uporabiti spremembe v konfiguracijski datoteki, znova zaženite storitev Zabbix-agent in ji omogočite zagon ob zagonu sistema.

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

Potrdite stanje delovanja Zabbix agenta na naslednji način.

$ sudo systemctl status zabbix-agent2

Zabbix agent posluša vrata 10050. Če imate nameščen požarni zid, razmislite o odpiranju vrat na naslednji 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

Super! Zdaj smo na polovici poti. Zabbix agent lahko zdaj pošilja meritve vsebnika Docker na strežnik Zabbix.

V naslednjem koraku bomo v spletni vmesnik Zabbix dodali strežnik Docker in spremljali Docker vsebnike.

3. korak: Dodajte Docker v strežnik Zabbix za spremljanje

Če želite spremljati oddaljenega gostitelja, ga morate prek brskalnika dodati na nadzorno ploščo strežnika Zabbix. Zabbix ponuja nešteto predlog za različne storitve in aplikacije. Ustrezno predlogo bomo povezali z gostiteljem Docker, da bomo posebej spremljali vsebnike. Najprej pa dostopite do strani za prijavo strežnika Zabbix.

http://zabbix-server-ip/zabbix

Ko ste prijavljeni, se pomaknite na desno stransko vrstico in kliknite »Konfiguracija« in nato »Hosts«.

V skrajnem zgornjem desnem kotu kliknite »Ustvari gostitelja«.

Izpolnite podrobnosti o strežniku Docker, kot sta ime gostitelja in vidno ime. Za skupine vnesite »Docker Groups« (vsak gostitelj mora biti povezan s skupino).

Pod oznako »Vmesniki« kliknite »Dodaj« in v meniju, ki se prikaže, izberite »Agent«.

Nato izpolnite zasebni naslov IP strežnika Docker in zagotovite, da so vrata nastavljena na 10050.

Nato kliknite zavihek Predloge in v razdelku »Poveži nove predloge« podajte »Docker by Zabbix agent 2«. Nato kliknite gumb »Dodaj«.

Ko kliknete gumb Dodaj, bo oddaljeni gostitelj Docker samodejno dodan, kot je navedeno.

Na tej točki strežnik Zabbix zdaj spremlja vaš strežnik Docker. V naslednjem koraku bomo namestili vsebnik in preverili, katere meritve je mogoče spremljati.

4. korak: Spremljanje meritev Dockerja v Zabbix Monitoring

Za začetek spremljanja meritev Dockerja bomo zagnali testni vsebnik. Torej, pojdite nazaj na strežnik Docker in zaženite vsebnik.

V tem primeru bomo potegnili sliko vsebnika Ubuntu in ustvarili vsebnik, imenovan docker_test_container. Nato bomo pridobili dostop do lupine z možnostjo -it. Celoten ukaz za operacije je naslednji.

$ sudo docker run --name docker_test_container -it ubuntu bash

Poskusite lahko nekaj ambicioznega, kot je namestitev programskih paketov, kot sta Apache ali MariaDB, da ustvarite nekaj meritev, kot sta izkoriščenost CPE-ja in omrežni promet.

Zdaj se vrnite na nadzorno ploščo strežnika Zabbix. Kliknite na Nadzor in nato Hosts. Kliknite ime vašega strežnika Docker in v možnosti menija, ki se prikaže, izberite »Najnovejši podatki«.

Po nekaj minutah uvajanja vsebnika bo strežnik Zabbix zaznal vsebnik in začel polniti nekaj statističnih podatkov.

Ogledate si lahko tudi grafe različnih meritev vsebnika, tako da kliknete možnosti »grafi« strežnika Docker na strani »Hosts«. Spodaj si lahko ogledate meritve uporabe CPE in pomnilnika.

Za simulacijo zrušitve vsebnika bomo nepričakovano zapustili vsebnik tako, da bomo v lupini vsebnika zagnali spodnji ukaz.

# exit 2

To pomeni, da smo vsebnik zaključili s kodo napake 2. To je zabeleženo v metapodatkih vsebnika. Če si želite ogledati opozorilo, se pomaknite na levo stransko vrstico in kliknite »Nadzor« in nato »Nadzorna plošča«.

Opozorilo je prikazano spodaj.

Če želite odpraviti napako, preprosto znova zaženite vsebnik.

$ sudo docker start docker_test_container 

In to nas pripelje do konca tega vodnika. Vodili smo vas skozi postopek po korakih, kako lahko spremljate vsebnike Docker z orodjem za spremljanje Zabbix.