Giunsa ang Pag-monitor sa mga Docker Container nga adunay Zabbix Monitoring Tool


Ang Docker mahimo nga usa sa labing gimahal nga mga himan sa DevOps nga nag-streamline sa pag-uswag, pag-deploy, ug pagpadala sa mga aplikasyon sa sulod sa mga sudlanan.

Ang konsepto sa containerization naglakip sa paggamit sa mga hulagway sa sudlanan. Kini mga gagmay, gaan, ug standalone nga mga executable nga pakete nga naglakip sa tanan nga gikinahanglan sa pagpadagan sa usa ka aplikasyon lakip na ang source code, mga librarya ug mga dependency, ug mga configuration file.

Sa pagbuhat niini, ang aplikasyon mahimong modagan sa halos bisan unsang computing environment; tradisyonal nga imprastraktura sa IT, panganod, ug daghang mga lami sa Linux/UNIX.

Ang pagmonitor sa mga sudlanan makatabang sa mga team sa operasyon sa pag-ila sa nagpahiping mga isyu ug pagsulbad niini sa tukma sa panahon nga paagi. Ang pag-monitor sa sulud naglangkob sa pagkuha sa mga sukaranan nga sukatan sama sa real-time nga mga log nga makatabang sa pag-debug ug pag-alerto sa IT team kung kanus-a motaas.

Ang Zabbix usa ka sikat nga IT infrastructure monitoring tool nga nagtan-aw sa halos tanang elemento sa imong palibot lakip na ang mga pisikal nga device sama sa mga server ug network device sama sa mga routers ug switch. Makamonitor usab kini sa mga aplikasyon, serbisyo, ug mga database.

Sa kini nga giya, ipakita namon kanimo kung giunsa nimo ma-monitor ang mga sulud sa Docker gamit ang tool sa pag-monitor sa Zabbix sa Linux.

Ania ang imong gikinahanglan sa dili pa magsugod:

Una, siguroha nga ikaw adunay duha ka node - Ang unang node mao ang Zabbix server. Kini ang node diin atong bantayan ang hilit nga Docker server. Kami adunay usa ka artikulo sa:

  • Unsaon Pag-instalar sa Zabbix sa Rocky Linux ug AlmaLinux
  • Unsaon Pag-instalar sa Zabbix Monitoring Tool sa Debian 11/10
  • Unsaon Pag-instalar sa Zabbix sa RHEL 8
  • Unsaon Pag-instalar sa Zabbix sa Ubuntu

Ang ikaduha nga node mao ang Docker server diin gi-install ang Docker. Kini ang node diin kita magpadagan sa mga sudlanan sa Docker ug magmonitor sa kalihokan sa sudlanan.

  • Unsaon Pag-instalar sa Docker sa Rocky Linux ug AlmaLinux
  • Unsaon Pag-instalar ug Paggamit sa Docker sa Ubuntu 20.04
  • Unsaon Pag-instalar sa Docker sa CentOS ug RHEL 8/7

Sunod, siguroha nga ikaw adunay SSH access sa imong Docker server node nga adunay sudo user nga na-configure na.

Uban sa imong setup sa lugar, mahimo nimong i-roll ang imong mga manggas!

Lakang 1: I-install ang Zabbix-Agent sa Linux

Aron mamonitor ang mga sudlanan sa Docker sa layo nga server, kinahanglan nimo nga i-install ang Zabbix agent, nga usa ka ahente sa pagmonitor nga gibutang sa usa ka target node aron aktibo nga mamonitor ang mga sukatan sa sistema ug uban pang mga aplikasyon.

Una, kinahanglan nimo nga i-install ang Zabbix repository sa Docker node.

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

Lakang 2: I-configure ang Zabbix-Agent sa Linux

Sa kasagaran, ang ahente sa Zabbix gitakda nga ipadala ang mga sukatan sa server sa Zabbix sa parehas nga host nga gi-install niini. Tungod kay ang among tumong mao ang pag-monitor sa mga docker container sa remote server, gikinahanglan ang pipila ka dugang nga mga configuration.

Busa, pag-access sa Zabbix agent configuration file.

$ sudo vim /etc/zabbix/zabbix_agent2.conf

Ang file sa pag-configure adunay mga setting nga nagtino sa adres kung diin gipadala ang mga sukatan, ang pantalan nga gigamit alang sa mga koneksyon ug daghan pa. Sa kadaghanan nga bahin, ang mga default nga setting molihok nga maayo.

Aron ma-configure ang ahente sa Zabbix aron ipadala ang mga sukatan sa server sa Zabbix, pangitaa ang direktiba nga gi-configure aron ipadala ang mga sukatan sa address sa loopback, o ibutang lang, ang parehas nga sistema sa host.

Server=127.0.0.1

Ibutang ang adres aron ipakita ang adres sa server sa Zabbix

Server=zabbix-server-IP

Dugang pa, pag-navigate sa seksyon nga 'Aktibo nga mga pagsusi' ug usba ang direktiba aron itudlo ang IP address sa server sa Zabbix.

ServerActive=zabbix-server-IP

Siguroha nga i-adjust usab ang hostname sa Docker server sumala niana. Ang hostname sa akong Docker server mao ang Ubuntu20.

Hostname=Ubuntu20

Unya i-save ang mga pagbag-o ug paggawas sa file sa pagsumpo sa Zabbix.

Alang sa ahente sa Zabbix nga magbantay sa mga sudlanan sa Docker, kinahanglan nimo nga idugang ang gumagamit sa Zabbix, nga gi-install nga default, sa grupo sa docker.

$ sudo usermod -aG docker zabbix

Aron magamit ang mga pagbag-o nga gihimo sa file sa pag-configure, i-restart ang serbisyo sa Zabbix-agent ug i-enable kini nga magsugod sa pagsugod sa sistema.

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

Kumpirma ang running status sa Zabbix agent sama sa mosunod.

$ sudo systemctl status zabbix-agent2

Ang ahente sa Zabbix naminaw sa port 10050. Kung ikaw adunay firewalld nga nagdagan, hunahunaa ang pag-abli sa pantalan sama sa mosunod.

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

Nindot! Anaa na kami sa tunga nga marka. Ang ahente sa Zabbix mahimo nang ipadala ang mga sukatan sa sudlanan sa Docker sa server sa Zabbix.

Sa sunod nga lakang, atong idugang ang Docker server sa Zabbix web interface ug monitor sa mga sudlanan sa Docker.

Lakang 3: Idugang ang Docker sa Zabbix Server alang sa Pag-monitor

Aron mamonitor ang usa ka hilit nga host, kinahanglan nimo nga idugang kini sa dashboard sa server sa Zabbix pinaagi sa usa ka browser. Naghatag ang Zabbix og daghang mga templates alang sa lainlaing mga serbisyo ug aplikasyon. I-link namo ang angay nga template sa Docker host aron espesipikong mamonitor ang mga sudlanan. Apan una, pag-access sa panid sa pag-login sa Zabbix server.

http://zabbix-server-ip/zabbix

Kung naka-log in ka, pag-navigate sa tuo nga sidebar ug pag-klik sa 'Configuration' dayon 'Host'.

Sa taas nga tuo nga suok, i-klik ang 'Paghimo host'.

Pun-a ang mga detalye sa Docker server sama sa hostname & makita nga ngalan. Alang sa Mga Grupo, I-type ang 'Mga Grupo sa Docker' (ang matag host kinahanglan nga kauban sa usa ka grupo).

Ubos sa label nga 'Interfaces' i-klik ang 'Add' ug sa menu nga makita pilia ang 'Agent'.

Sunod, sulati ang pribadong IP address sa Docker server ug siguruha nga ang pantalan gitakda sa 10050.

Sunod, pag-klik sa tab nga Mga Template, ug sa seksyon nga 'I-link ang mga bag-ong template', ipiho ang 'Docker ni Zabbix agent 2'. Dayon i-klik ang 'Add' button.

Kung imong i-klik ang Add button, ang hilit nga Docker host awtomatikong idugang ingon nga gipakita.

Niini nga punto, ang server sa Zabbix karon nag-monitor sa imong Docker server. Sa sunod nga lakang, mag-deploy kami usa ka sudlanan ug susihon kung unsang mga sukatan ang ma-monitor.

Lakang 4: Pag-monitor sa Docker Metrics sa Zabbix Monitoring

Aron masugdan ang pag-monitor sa mga sukatan sa Docker, maglansad kami usa ka sulud sa pagsulay. Busa, balik sa imong Docker server ug maglunsad og usa ka sudlanan.

Sa kini nga pananglitan, magkuha kami usa ka imahe sa sudlanan sa Ubuntu ug maghimo usa ka sulud nga gitawag nga docker_test_container. Makuha na nato ang shell access gamit ang -it option. Ang tibuok nga sugo alang sa mga operasyon mao ang mosunod.

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

Mahimo nimong sulayan ang usa ka ambisyoso sama sa pag-install sa mga pakete sa software sama sa Apache o MariaDB aron makamugna og pipila ka mga sukatan sama sa paggamit sa CPU ug trapiko sa network.

Karon balik sa Zabbix server dashboard. Pag-klik sa 'Pag-monitor' dayon 'Mga host'. Pag-klik sa ngalan sa imong Docker server ug sa menu nga kapilian nga makita, pilia ang 'Latest data'.

Human sa pipila ka minuto sa pag-deploy sa sudlanan, ang Zabbix server makamatikod sa sudlanan ug magsugod sa pagpopulate sa pipila ka estadistika.

Mahimo usab nimo nga tan-awon ang mga graph sa lainlaing mga sukatan sa sulud pinaagi sa pag-klik sa mga kapilian nga 'graphs' sa server sa Docker sa panid nga 'Host'. Sa ubos imong makita ang CPU & Memory usage metrics.

Aron masundog ang pagkahagsa sa sudlanan, wala kami damha nga mogawas gikan sa sudlanan pinaagi sa pagpadagan sa mando sa ubos sa sulud sa sulud.

# exit 2

Nagpasabot kini nga gitapos na namo ang sudlanan nga adunay error code nga 2. Girekord kini sulod sa metadata sa sudlanan. Aron matan-aw ang alerto, pag-navigate sa wala nga sidebar ug pag-klik sa 'Pag-monitor' dayon 'Dashboard'.

Ang alerto gipakita sa ubos.

Aron matul-id ang sayup, sugdi lang pag-usab ang sudlanan.

$ sudo docker start docker_test_container 

Ug kini nagdala kanato ngadto sa katapusan niini nga giya. Gilakaw ka namo pinaagi sa usa ka sunod-sunod nga pamaagi kung unsaon nimo Pag-monitor ang mga sudlanan sa Docker gamit ang tool sa pag-monitor sa Zabbix.