Come monitorare i contenitori Docker con lo strumento di monitoraggio Zabbix

Docker è probabilmente uno dei più amati DevOps strumenti che semplificano lo sviluppo, la distribuzione e la spedizione delle applicazioni all'interno dei container.

Il concetto di containerizzazione implica l'utilizzo delle immagini del contenitore. Questi sono pacchetti eseguibili piccoli, leggeri e autonomi che includono tutto ciò che è necessario per eseguire un'applicazione che includa il codice sorgente, le librerie, le dipendenze e la configurazione File.

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 a risolverli in modo tempestivo. Il monitoraggio dei container comprende l'acquisizione di metriche di base come uso della CPU, utilizzo della memoria, dimensione del contenitore e utilizzo della larghezza di banda per citarne alcuni. Inoltre, puoi raccogliere log in tempo reale che sono utili per il debug e per avvisare il team IT quando è necessario aumentare le dimensioni.

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 interruttori. Può anche monitorare applicazioni, servizi e database.

In questa guida, ti mostreremo come puoi monitorare Docker contenitori che utilizzano il Zabbix strumento di monitoraggio in Linux.

Requisiti

Ecco cosa ti serve prima di iniziare:

Innanzitutto, assicurati di avere due nodi: il primo nodo è il server Zabbix. Questo è il nodo da cui controlleremo il telecomando Docker server. 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 Docker server su cui Docker è installato. Questo è il nodo da cui eseguiremo i container Docker e monitoreremo l'attività dei container.

  • 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

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

Con la tua configurazione in atto, ora puoi rimboccarti le maniche!

Passaggio 1: installa Zabbix-Agent in Linux

Monitorare Docker container sul server remoto, è necessario installare un Agente Zabbix, che è un agent di monitoraggio distribuito su un nodo di destinazione per monitorare attivamente le metriche di sistema e altre applicazioni.

Per prima cosa, devi installare il Zabbix repository sul Docker nodo.

 Su 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  Sulla distribuzione basata su RHEL  $ 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  Su 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  Su 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: configurare Zabbix-Agent in Linux

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

Pertanto, accedi a Zabbix file di configurazione dell'agente.

$ sudo vim /etc/zabbix/zabbix_agent2.conf. 

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

Per configurare il Zabbix agente per inviare metriche al Zabbix server, individuare la direttiva configurata per inviare le metriche all'indirizzo di loopback o, semplicemente, 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 al "Controlli attivi' e modifica la direttiva in modo che punti all'indirizzo IP del server Zabbix.

ServerActive=zabbix-server-IP. 

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

Nome host=Ubuntu20. 

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

Affinché l'agente Zabbix possa tenere d'occhio i container 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 consentirne l'avvio all'avvio del sistema.

$ sudo systemctl riavvia zabbix-agent2. $ sudo systemctl abilita zabbix-agent2. 

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

$ sudo systemctl status zabbix-agent2. 
Controlla lo stato dell'agente Zabbix
Controlla lo stato dell'agente Zabbix

L'agente Zabbix ascolta sulla porta 10050. Se hai un Firewall UFW o firewalld in esecuzione, considerare l'apertura della porta come segue.

 Sul firewall UFW  $ sudo ufw allow 10050/tcp. $ sudo ufw reload  Su Firewalld  $ sudo firewall-cmd --add-port=10050/tcp --permanent. $ sudo firewall-cmd --reload. 

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

Nel passaggio successivo, aggiungeremo il Docker server al Zabbix interfaccia web e monitorare i container Docker.

Passaggio 3: aggiungere la finestra mobile al server Zabbix per il monitoraggio

Per monitorare un host remoto, è necessario aggiungerlo a Zabbix dashboard del server 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. 
Accesso Zabbix
Accesso Zabbix

Una volta effettuato l'accesso, vai alla barra laterale destra e fai clic su "Configurazione' poi 'host’.

Configurazione host Zabbix
Configurazione host Zabbix

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

Zabbix Crea host
Zabbix Crea host

Compila i dettagli del Docker server come il Nome host & visibile nome. Per i gruppi, digitare "Gruppi Docker' (ogni host deve essere associato a un gruppo).

Sotto l'Interfacce' etichetta fare clic su 'Aggiungere' e nel menu che appare selezionare 'Agente’.

Aggiungi host a Zabbix Monitoring
Aggiungi host a Zabbix Monitoring

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

Aggiungi il server Docker a Zabbix
Aggiungi il server Docker a Zabbix

Quindi, fai clic su Modelli scheda, e nel 'Collega nuovi modelli' sezione, specificare 'Docker di Zabbix agente 2’. Quindi fare clic su "Aggiungerepulsante '.

Collega il modello Zabbix a Docker
Collega il modello Zabbix a Docker

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

Monitoraggio Docker Zabbix
Monitoraggio Docker Zabbix

A questo punto, il server Zabbix sta ora monitorando il tuo server Docker. Nella fase successiva, distribuiremo un contenitore e verificheremo quali metriche possono essere monitorate.

Passaggio 4: monitoraggio delle metriche Docker in Zabbix Monitoring

Per iniziare il monitoraggio Docker metriche, lanceremo un contenitore di prova. Quindi, torna al tuo Docker server e avviare un contenitore.

In questo esempio, tireremo a Ubuntu immagine del contenitore e creare un contenitore chiamato docker_test_container. Otterremo quindi l'accesso alla shell usando il -esso opzione. L'intero comando per le operazioni è il seguente.

$ sudo docker run --name docker_test_container -it ubuntu bash. 
Crea immagine contenitore Ubuntu in Docker
Crea immagine contenitore Ubuntu in Docker

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

Ora torna al Zabbix pannello di controllo del server. Clicca su 'Monitoraggio' poi 'host’. Fai clic sul nome del tuo server Docker e nell'opzione di menu che appare, seleziona "Ultimi dati’.

Host di monitoraggio Zabbix
Host di monitoraggio Zabbix

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

Host Docker di monitoraggio Zabbix
Host Docker di monitoraggio Zabbix

È inoltre possibile visualizzare i grafici delle varie metriche del contenitore facendo clic sul pulsante 'grafici' opzioni del server Docker sul 'host' pagina. Di seguito puoi vedere le metriche sull'utilizzo della CPU e della memoria.

Zabbix Monitoraggio delle prestazioni di Docker
Zabbix Monitoraggio delle prestazioni di Docker

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

# uscita 2. 

Ciò implica che abbiamo terminato il contenitore con un codice di errore di 2. Questo viene registrato nei metadati del contenitore. Per visualizzare l'avviso, vai alla barra laterale sinistra e fai clic su "Monitoraggio' poi 'Pannello di controllo’.

L'avviso viene visualizzato di seguito.

Avvisi Zabbix Docker
Avvisi Zabbix Docker

Per correggere l'errore, riavviare semplicemente 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 puoi monitorare Docker contenitori che utilizzano il Zabbix strumento di monitoraggio.

Teachs.ru