Hvordan overvåke Docker-containere med Zabbix-overvåkingsverktøy


Docker er uten tvil et av de mest kjære DevOps-verktøyene som effektiviserer utvikling, distribusjon og frakt av applikasjoner i containere.

Konseptet med containerisering innebærer å utnytte containerbilder. Dette er små, lette og frittstående kjørbare pakker som inkluderer alt som trengs for å kjøre en applikasjon, inkludert kildekoden, biblioteker og avhengigheter og konfigurasjonsfiler.

Ved å gjøre det kan applikasjonen kjøres i nesten alle datamiljøer; tradisjonell IT-infrastruktur, sky og en myriade av Linux/UNIX-smaker.

Overvåking av containere hjelper operasjonsteam med å identifisere underliggende problemer og løse dem i tide. Containerovervåking omfatter å fange opp grunnleggende beregninger som sanntidslogger som er nyttige for feilsøking og varsler IT-teamet når de skal skaleres opp.

Zabbix er et populært overvåkingsverktøy for IT-infrastruktur som holder øye med nesten alle elementer i miljøet ditt, inkludert fysiske enheter som servere og nettverksenheter som rutere og svitsjer. Den kan også overvåke applikasjoner, tjenester og databaser.

I denne guiden vil vi vise deg hvordan du kan overvåke Docker-containere ved å bruke Zabbix-overvåkingsverktøyet i Linux.

Her er det du trenger før du begynner:

Først av alt, sørg for at du har to noder – Den første noden er Zabbix-serveren. Dette er noden vi skal overvåke den eksterne Docker-serveren fra. Vi har en artikkel om:

  • Hvordan installerer Zabbix på Rocky Linux og AlmaLinux
  • Hvordan installerer Zabbix overvåkingsverktøy på Debian 11/10
  • Slik installerer du Zabbix på RHEL 8
  • Hvordan installerer Zabbix på Ubuntu

Den andre noden er Docker-serveren som Docker er installert på. Dette er noden hvorfra vi skal kjøre Docker-containere og overvåke containeraktivitet.

  • Hvordan installerer du Docker på Rocky Linux og AlmaLinux
  • Hvordan installere og bruke Docker på Ubuntu 20.04
  • Hvordan installerer du Docker i CentOS og RHEL 8/7

Deretter må du sørge for at du har SSH-tilgang til Docker-servernoden din med en sudo-bruker som allerede er konfigurert.

Med oppsettet på plass kan du nå brette ermene!

Trinn 1: Installer Zabbix-Agent i Linux

For å overvåke Docker-beholdere på den eksterne serveren, må du installere en Zabbix-agent, som er en overvåkingsagent som er distribuert på en målnode for aktivt å overvåke systemmålinger og andre applikasjoner.

Først må du installere Zabbix-depotet på Docker-noden.

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

Trinn 2: Konfigurer Zabbix-Agent i Linux

Som standard er Zabbix-agenten satt til å sende beregninger til Zabbix-serveren på samme vert som den er installert. Siden målet vårt er å overvåke docker-containere på den eksterne serveren, kreves det noen ekstra konfigurasjoner.

Få derfor tilgang til Zabbix-agentkonfigurasjonsfilen.

$ sudo vim /etc/zabbix/zabbix_agent2.conf

Konfigurasjonsfilen inneholder innstillinger som spesifiserer adressen som metrikken sendes til, porten som brukes for tilkoblinger og mye mer. For det meste vil standardinnstillingene fungere helt fint.

For å konfigurere Zabbix-agenten til å sende beregninger til Zabbix-serveren, finn direktivet som er konfigurert til å sende beregninger til tilbakekoblingsadressen, eller enkelt sagt, det samme vertssystemet.

Server=127.0.0.1

Angi adressen til å gjenspeile Zabbix-serverens adresse

Server=zabbix-server-IP

I tillegg, naviger til delen Aktive kontroller og endre direktivet til å peke på Zabbix-serverens IP-adresse.

ServerActive=zabbix-server-IP

Pass på å også justere vertsnavnet til Docker-serveren tilsvarende. Vertsnavnet til Docker-serveren min er Ubuntu20.

Hostname=Ubuntu20

Lagre deretter endringene og avslutt Zabbix-konfigurasjonsfilen.

For at Zabbix-agenten skal holde øye med Docker-beholdere, må du legge til Zabbix-brukeren, som er installert som standard, til docker-gruppen.

$ sudo usermod -aG docker zabbix

For å bruke endringene som er gjort i konfigurasjonsfilen, start Zabbix-agent-tjenesten på nytt og aktiver den til å starte ved systemstart.

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

Bekreft kjørestatusen til Zabbix-agenten som følger.

$ sudo systemctl status zabbix-agent2

Zabbix-agent lytter på port 10050. Hvis du har en brannmur kjører, bør du vurdere å åpne porten som følger.

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

Flott! Vi er nå halvveis. Zabbix-agenten kan nå sende Docker-beholderberegningene til Zabbix-serveren.

I neste trinn vil vi legge til Docker-serveren til Zabbix-nettgrensesnittet og overvåke Docker-beholdere.

Trinn 3: Legg Docker til Zabbix Server for overvåking

For å overvåke en ekstern vert, må du legge den til Zabbix-serverens dashbord via en nettleser. Zabbix tilbyr utallige maler for ulike tjenester og applikasjoner. Vi vil koble den aktuelle malen til Docker-verten for å spesifikt overvåke containere. Men først, gå til Zabbix-serverens påloggingsside.

http://zabbix-server-ip/zabbix

Når du har logget på, naviger til høyre sidefelt og klikk på Konfigurasjon og deretter Verter.

Helt øverst til høyre klikker du på Opprett vert.

Fyll inn detaljene for Docker-serveren, for eksempel vertsnavnet og synlig navn. For grupper, skriv inn Docker Groups (hver vert må være tilknyttet en gruppe).

Under «Grensesnitt»-etiketten klikker du på «Legg til» og velger «Agent» i menyen som vises.

Deretter fyller du ut Docker-serverens private IP-adresse og kontrollerer at porten er satt til 10050.

Deretter klikker du på fanen Maler, og i delen Koble til nye maler, spesifiser Docker by Zabbix agent 2. Klikk deretter på 'Legg til'-knappen.

Når du klikker på Legg til-knappen, vil den eksterne Docker-verten automatisk legges til som angitt.

På dette tidspunktet overvåker Zabbix-serveren nå Docker-serveren din. I neste trinn vil vi distribuere en container og sjekke ut hvilke beregninger som kan overvåkes.

Trinn 4: Overvåking av Docker Metrics i Zabbix Monitoring

For å begynne å overvåke Docker-målinger, skal vi lansere en testbeholder. Så gå tilbake til Docker-serveren din og start en container.

I dette eksemplet vil vi trekke et Ubuntu-beholderbilde og lage en beholder kalt docker_test_container. Vi vil da få shell-tilgang ved å bruke -it-alternativet. Hele kommandoen for operasjonene er som følger.

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

Du kan prøve noe ambisiøst som å installere programvarepakker som Apache eller MariaDB for å generere noen beregninger som CPU-utnyttelse og nettverkstrafikk.

Gå nå tilbake til Zabbix-serverdashbordet. Klikk på Overvåking og deretter Verter. Klikk på navnet på Docker-serveren din, og velg Siste data i menyalternativet som vises.

Etter noen minutter med utplassering av beholderen, vil Zabbix-serveren oppdage beholderen og begynne å fylle ut litt statistikk.

Du kan også se grafene til de forskjellige beholderberegningene ved å klikke på grafer-alternativene til Docker-serveren på Verter-siden. Nedenfor kan du se beregningene for CPU og minnebruk.

For å simulere containerkrasj, vil vi uventet avslutte containeren ved å kjøre kommandoen nedenfor i containerskallet.

# exit 2

Dette innebærer at vi har avsluttet containeren med en feilkode på 2. Dette registreres i containerens metadata. For å se varselet, naviger til venstre sidefelt og klikk på Overvåking og deretter Dashboard.

Varselet vises nedenfor.

For å rette feilen starter du bare beholderen på nytt.

$ sudo docker start docker_test_container 

Og dette bringer oss til slutten av denne veiledningen. Vi har ledet deg gjennom en trinn-for-trinn prosedyre for hvordan du kan overvåke Docker-beholdere ved å bruke Zabbix-overvåkingsverktøyet.