Ricerca nel sito web

Come monitorare i contenitori Docker con lo strumento di monitoraggio Zabbix


Docker è senza dubbio uno degli strumenti DevOps più apprezzati che semplificano lo sviluppo, l'implementazione e la spedizione delle applicazioni all'interno dei container.

Il concetto di containerizzazione implica lo sfruttamento delle immagini dei contenitori. Si tratta di pacchetti eseguibili piccoli, leggeri e autonomi che includono tutto ciò che è necessario per eseguire un'applicazione, incluso il codice sorgente, le librerie, le dipendenze e i file di configurazione.

In questo modo, l'applicazione può essere eseguita in quasi tutti gli ambienti informatici; infrastruttura IT tradizionale, cloud e una miriade di versioni Linux/UNIX.

Il monitoraggio dei contenitori aiuta i team operativi a identificare i problemi sottostanti e risolverli in modo tempestivo. Il monitoraggio dei contenitori comprende l'acquisizione di parametri di base come l'utilizzo della CPU, l'utilizzo della memoria, le dimensioni del contenitore e l'utilizzo della larghezza di banda, per citarne alcuni. Inoltre, puoi raccogliere log in tempo reale utili per il debug e avvisare il team IT quando eseguire l'espansione.

Zabbix è un popolare strumento di monitoraggio dell'infrastruttura IT che tiene d'occhio quasi ogni elemento del tuo ambiente, inclusi dispositivi fisici come server e dispositivi di rete come router e switch. Può anche monitorare applicazioni, servizi e database.

In questa guida ti mostreremo come monitorare i contenitori Docker utilizzando lo strumento di monitoraggio Zabbix in Linux.

Requisiti

Ecco cosa ti serve prima di iniziare:

Per prima cosa, assicurati di avere due nodi: il primo nodo è il server Zabbix. Questo è il nodo da cui monitoreremo il server Docker remoto. Abbiamo un articolo su:

  • Come installare Zabbix su Rocky Linux e AlmaLinux
  • Come installare lo strumento di monitoraggio Zabbix su Debian 11/10
  • Come installare Zabbix su RHEL 8
  • Come installare Zabbix su Ubuntu

Il secondo nodo è il server Docker su cui è installato Docker. Questo è il nodo da cui eseguiremo i contenitori Docker e monitoreremo l'attività del contenitore.

  • Come installare Docker su Rocky Linux e AlmaLinux
  • Come installare e utilizzare Docker su Ubuntu 20.04
  • Come installare Docker in CentOS e RHEL 8/7

Successivamente, assicurati di avere accesso SSH al tuo nodo server Docker con un utente sudo già configurato.

Una volta completata la configurazione, ora puoi rimboccarti le maniche!

Passaggio 1: installa Zabbix-Agent in Linux

Per monitorare i contenitori Docker sul server remoto, è necessario installare un agente Zabbix, ovvero un agente di monitoraggio distribuito su un nodo di destinazione per monitorare attivamente le metriche di sistema e altri applicazioni.

Per prima cosa devi installare il repository Zabbix sul nodo 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

Passaggio 2: configura Zabbix-Agent in Linux

Per impostazione predefinita, l'agente Zabbix è impostato per inviare le metriche al server Zabbix sullo stesso host su cui è installato. Poiché il nostro obiettivo è monitorare i contenitori docker sul server remoto, sono necessarie alcune configurazioni aggiuntive.

Accedi quindi al file di configurazione dell'agente Zabbix.

sudo vim /etc/zabbix/zabbix_agent2.conf

Il file di configurazione contiene impostazioni che specificano l'indirizzo a cui vengono inviate le metriche, la porta utilizzata per le connessioni e molto altro ancora. Nella maggior parte dei casi, le impostazioni predefinite funzioneranno perfettamente.

Per configurare l'agente Zabbix per inviare parametri al server Zabbix, individuare la direttiva configurata per inviare parametri all'indirizzo di loopback o, in poche parole, allo stesso sistema host.

Server=127.0.0.1

Imposta l'indirizzo in modo che rifletta l'indirizzo del server Zabbix

Server=zabbix-server-IP

Inoltre, vai alla sezione "Controlli attivi" e modifica la direttiva in modo che punti all'indirizzo IP del server Zabbix.

ServerActive=zabbix-server-IP

Assicurati di modificare di conseguenza anche il nome host del server Docker. Il nome host del mio server Docker è Ubuntu20.

Hostname=Ubuntu20

Quindi salva le modifiche e esci dal file di configurazione di Zabbix.

Affinché l'agente Zabbix possa tenere d'occhio i contenitori Docker, è necessario aggiungere l'utente Zabbix, installato per impostazione predefinita, al gruppo docker.

sudo usermod -aG docker zabbix

Per applicare le modifiche apportate al file di configurazione, riavviare il servizio Zabbix-agent e abilitarlo all'avvio all'avvio del sistema.

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

Conferma lo stato di esecuzione dell'agente Zabbix come segue.

sudo systemctl status zabbix-agent2

L'agente Zabbix è in ascolto sulla porta 10050. Se hai un firewall UFW o firewalld in esecuzione, considera l'apertura della porta come segue.

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

Grande! Ora siamo a metà strada. L'agente Zabbix può ora inviare le metriche del contenitore Docker al server Zabbix.

Nel passaggio successivo aggiungeremo il server Docker all'interfaccia web Zabbix e monitoreremo i contenitori Docker.

Passaggio 3: aggiungi Docker al server Zabbix per il monitoraggio

Per monitorare un host remoto, devi aggiungerlo alla dashboard del server Zabbix tramite un browser. Zabbix fornisce una miriade di modelli per vari servizi e applicazioni. Collegheremo il modello appropriato all'host Docker per monitorare in modo specifico i contenitori. Ma prima accedi alla pagina di accesso del server Zabbix.

http://zabbix-server-ip/zabbix

Una volta effettuato l'accesso, vai alla barra laterale destra e fai clic su "Configurazione", quindi su "Host".

Nell'angolo in alto a destra, fai clic su "Crea host".

Inserisci i dettagli del server Docker come il nome host e il nome visibile. Per i gruppi, digita "Gruppi Docker" (ogni host deve essere associato a un gruppo).

Sotto l'etichetta "Interfacce" fai clic su "Aggiungi" e nel menu visualizzato seleziona "Agente".

Successivamente, inserisci l'indirizzo IP privato del server Docker e assicurati che la porta sia impostata su 10050.

Successivamente, fai clic sulla scheda Modelli e nella sezione "Collega nuovi modelli", specifica "Docker by Zabbix agent 2". Quindi fai clic sul pulsante "Aggiungi".

Quando si fa clic sul pulsante Aggiungi, l'host Docker remoto verrà aggiunto automaticamente come indicato.

A questo punto, il server Zabbix sta ora monitorando il tuo server Docker. Nel passaggio successivo, distribuiremo un contenitore e verificheremo quali parametri possono essere monitorati.

Passaggio 4: monitoraggio delle metriche Docker nel monitoraggio Zabbix

Per iniziare a monitorare le metriche Docker, lanceremo un contenitore di prova. Quindi, torna al tuo server Docker e avvia un contenitore.

In questo esempio, estrarremo un'immagine del contenitore Ubuntu e creeremo un contenitore chiamato docker_test_container. Otterremo quindi l'accesso alla shell utilizzando l'opzione -it. L'intero comando per le operazioni è il seguente.

sudo docker run --name docker_test_container -it ubuntu bash

Puoi provare qualcosa di ambizioso come l'installazione di pacchetti software come Apache o MariaDB per generare alcune metriche come l'utilizzo della CPU e il traffico di rete.

Ora torna alla dashboard del server Zabbix. Fai clic su "Monitoraggio", quindi su "Host". Fai clic sul nome del tuo server Docker e nell'opzione di menu visualizzata seleziona "Ultimi dati".

Dopo alcuni minuti dalla distribuzione del contenitore, il server Zabbix rileverà il contenitore e inizierà a compilare alcune statistiche.

Puoi anche visualizzare i grafici delle varie metriche del contenitore facendo clic sulle opzioni "grafici" del server Docker nella pagina "Host". Di seguito puoi vedere le metriche di utilizzo della CPU e della memoria.

Per simulare l'arresto anomalo del contenitore, usciremo inaspettatamente dal contenitore eseguendo il comando seguente nella shell del contenitore.

exit 2

Ciò implica che abbiamo terminato il contenitore con un codice di errore pari a 2. Questo è registrato nei metadati del contenitore. Per visualizzare l'avviso, vai alla barra laterale sinistra e fai clic su "Monitoraggio", quindi su "Dashboard".

L'avviso è visualizzato di seguito.

Per correggere l'errore è sufficiente riavviare il contenitore.

sudo docker start docker_test_container 

E questo ci porta alla fine di questa guida. Ti abbiamo guidato attraverso una procedura passo passo su come monitorare i contenitori Docker utilizzando lo strumento di monitoraggio Zabbix.