Wéi Monitor Docker Container mat Zabbix Monitoring Tool


Docker ass wuel ee vun de meescht geschätzte DevOps Tools déi d'Entwécklung, d'Deployment an d'Verschécken vun Uwendungen a Container streamline.

D'Konzept vun der Containeriséierung beinhalt d'Verwäertung vu Containerbiller. Dëst si kleng, liicht a Standalone ausführbar Packagen déi alles enthalen wat néideg ass fir eng Applikatioun auszeféieren, dorënner de Quellcode, Bibliothéiken an Ofhängegkeeten, a Konfiguratiounsdateien.

Doduerch kann d'Applikatioun an bal all Computerëmfeld lafen; traditionell IT Infrastruktur, Cloud, an eng Onmass vu Linux/UNIX Aromen.

Iwwerwaachungsbehälter hëlleft Operatiounsteams fir ënnerierdesch Themen z'identifizéieren an se fristgerecht ze léisen. Container Iwwerwachung ëmfaasst Basis Metriken wéi Echtzäit Logbicher z'erreechen, déi hëllefräich sinn beim Debugging an d'IT Team ze alarméieren wann se opskaléieren.

Zabbix ass e populär IT Infrastruktur Iwwerwachungsinstrument dat en Aa op bal all Element vun Ärem Ëmfeld hält, inklusiv kierperlech Apparater wéi Serveren an Netzwierkapparater wéi Router a Schalter. Et kann och Uwendungen, Servicer an Datenbanken iwwerwaachen.

An dësem Guide wäerte mir Iech weisen wéi Dir Docker Container iwwerwaache kënnt mat dem Zabbix Iwwerwaachungsinstrument op Linux.

Hei ass wat Dir braucht ier Dir ufänkt:

Als éischt, gitt sécher datt Dir zwee Wirbelen hutt - Den éischten Node ass den Zabbix Server. Dëst ass den Node aus deem mir den Remote Docker Server iwwerwaachen. Mir hunn en Artikel iwwer:

  • Wéi installéiere ech Zabbix op Rocky Linux an AlmaLinux
  • Wéi installéiert een Zabbix Monitoring Tool op Debian 11/10
  • Wéi installéiere ech Zabbix op RHEL 8
  • Wéi installéiert Zabbix op Ubuntu

Den zweeten Node ass den Docker Server op deem Docker installéiert ass. Dëst ass den Node vu wou mir Docker Container lafen a Containeraktivitéit iwwerwaachen.

  • Wéi installéiere ech Docker op Rocky Linux an AlmaLinux
  • Wéi installéiert a benotzt Docker op Ubuntu 20.04
  • Wéi installéiere ech Docker an CentOS an RHEL 8/7

Als nächst gitt sécher datt Dir SSH Zougang zu Ärem Docker Server Node hutt mat engem sudo Benotzer dee scho konfiguréiert ass.

Mat Ärem Setup op der Plaz, kënnt Dir elo Är Ärmelen rullen!

Schrëtt 1: Zabbix-Agent op Linux installéieren

Fir Docker Container um Remote Server ze iwwerwaachen, musst Dir e Zabbix Agent installéieren, deen en Iwwerwaachungsagent ass, deen op engem Zilknuet agesat gëtt fir aktiv Systemmetriken an aner Applikatiounen ze iwwerwaachen.

Als éischt musst Dir den Zabbix Repository um Docker Node installéieren.

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

Schrëtt 2: Zabbix-Agent an Linux konfiguréieren

Par défaut ass den Zabbix Agent gesat fir Metriken op den Zabbix Server op deemselwechten Host ze verschécken deen en installéiert ass. Well eist Zil ass d'Docker Container um Fernserver ze iwwerwaachen, sinn e puer zousätzlech Konfiguratiounen erfuerderlech.

Dofir, Zougang zu der Zabbix Agent Konfiguratiounsdatei.

$ sudo vim /etc/zabbix/zabbix_agent2.conf

D'Konfiguratiounsdatei enthält Astellungen déi d'Adress spezifizéieren wou d'Metriken geschéckt ginn, den Hafen deen fir Verbindungen benotzt gëtt a sou vill méi. Fir de gréissten Deel funktionnéieren d'Standardastellunge just gutt.

Fir den Zabbix Agent ze konfiguréieren fir Metriken op den Zabbix Server ze schécken, lokaliséiert d'Direktiv déi konfiguréiert ass fir Metriken op d'Loopback Adress ze verschécken, oder einfach gesot, dee selwechte Hostsystem.

Server=127.0.0.1

Setzt d'Adress fir d'Adress vum Zabbix Server ze reflektéieren

Server=zabbix-server-IP

Zousätzlech, navigéiert op d'Sektioun 'Aktiv Kontrollen' an ännert d'Direktiv fir op d'IP Adress vum Zabbix Server ze weisen.

ServerActive=zabbix-server-IP

Vergewëssert Iech och den Hostnumm vum Docker Server deementspriechend unzepassen. Den Hostnumm vu mengem Docker Server ass Ubuntu20.

Hostname=Ubuntu20

Da späichert d'Ännerungen a gitt aus der Zabbix Konfiguratiounsdatei.

Fir den Zabbix Agent en Aa op Docker Container ze halen, musst Dir den Zabbix Benotzer addéieren, deen als Standard installéiert ass, an den Docker Grupp.

$ sudo usermod -aG docker zabbix

Fir d'Ännerungen an der Konfiguratiounsdatei z'applizéieren, start den Zabbix-Agent Service nei an aktivéiert et beim Startup vum System.

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

Bestätegt de lafende Status vum Zabbix Agent wéi follegt.

$ sudo systemctl status zabbix-agent2

Zabbix Agent lauschtert op port 10050. Wann Dir e Firewalld Lafen hutt, betruecht den Hafen opzemaachen wéi follegt.

----------- 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! Mir sinn elo op der Halschent. Den Zabbix Agent kann elo den Docker Container Metriken op den Zabbix Server verschécken.

Am nächste Schrëtt fügen mir den Docker-Server op d'Zabbix Web-Interface an iwwerwaachen Docker Container.

Schrëtt 3: Add the Docker to Zabbix Server for Monitoring

Fir e Fernhost ze iwwerwaachen, musst Dir et op den Dashboard vum Zabbix Server iwwer e Browser addéieren. Zabbix bitt eng Myriad Template fir verschidde Servicer an Uwendungen. Mir verbannen déi entspriechend Schabloun mam Docker Host fir spezifesch Container ze iwwerwaachen. Awer als éischt, gitt op d'Login Säit vum Zabbix Server.

http://zabbix-server-ip/zabbix

Wann Dir Iech ageloggt hutt, navigéiert op déi riets Sidebar a klickt op 'Configuratioun' dann 'Hosts'.

Am Eck uewe riets, klickt op 'Erstellt Host'.

Fëllt d'Detailer vum Docker Server aus wéi den Hostnumm & sichtbare Numm. Fir Gruppen, gitt 'Docker Groups' an (all Host muss mat enger Grupp verbonne sinn).

Ënnert dem 'Interfaces' Label klickt op 'Add' an am Menü deen erschéngt wielt 'Agent'.

Als nächst fëllt d'Privat IP Adress vum Docker Server aus a gitt sécher datt den Hafen op 10050 gesat ass.

Als nächst klickt op d'Tab Templates, an an der Rubrik 'Link nei Templates', spezifizéiert 'Docker vum Zabbix Agent 2'. Da klickt op de 'Add' Knäppchen.

Wann Dir op de Knäppchen derbäi klickt, gëtt de Remote Docker Host automatesch bäigefüügt wéi uginn.

Zu dësem Zäitpunkt iwwerwaacht den Zabbix Server elo Ären Docker Server. Am nächste Schrëtt wäerte mir e Container ofsetzen a kucken wéi eng Metriken iwwerwaacht kënne ginn.

Schrëtt 4: Iwwerwaachung Docker Metriken an Zabbix Iwwerwaachung

Fir d'Iwwerwaachung vun Docker Metriken unzefänken, lancéiere mir en Testcontainer. Also gitt zréck op Ären Docker Server a lancéiert e Container.

An dësem Beispill wäerte mir en Ubuntu Container-Bild zéien an e Container mam Numm docker_test_container erstellen. Mir kréien dann Shell Zougang mat der -it Optioun. De ganze Kommando fir d'Operatiounen ass wéi follegt.

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

Dir kënnt eppes ambitiéiss probéieren wéi d'Installatioun vu Software Packagen wéi Apache oder MariaDB fir e puer Metriken ze generéieren wéi CPU Notzung an Netzwierkverkéier.

Gitt elo zréck op den Zabbix Server Dashboard. Klickt op 'Iwwerwaachung' dann 'Hosts'. Klickt op den Numm vun Ärem Docker Server an an der Menüoptioun déi erschéngt, wielt 'Lescht Daten'.

No e puer Minutte vum Container z'installéieren, erkennt den Zabbix Server de Container a fänkt e puer Statistiken ze populéieren.

Dir kënnt och d'Grafike vun de verschiddene Container Metriken kucken andeems Dir op d''Grafiken' Optiounen vum Docker Server op der 'Hosts' Säit klickt. Hei ënnen kënnt Dir d'CPU & Memory Notzungsmetriken gesinn.

Fir de Container Crash ze simuléieren, wäerte mir onerwaart aus dem Container erausgoen andeems Dir de Kommando ënnen an der Container Shell ausféiert.

# exit 2

Dëst implizéiert datt mir de Container mat engem Feelercode vun 2 ofgeschloss hunn. Dëst gëtt an de Metadaten vum Container opgeholl. Fir d'Alarm ze gesinn, navigéiert op déi lénks Sidebar a klickt op 'Iwwerwaachung' dann 'Dashboard'.

D'Alarm gëtt hei ënnen ugewisen.

Fir de Feeler ze korrigéieren, start de Container einfach erëm.

$ sudo docker start docker_test_container 

An dëst bréngt eis zum Enn vun dësem Guide. Mir hunn Iech duerch eng Schrëtt-fir-Schrëtt Prozedur gefouert wéi Dir Docker Container iwwerwaache kënnt mat dem Zabbix Iwwerwaachungsinstrument.