Praćenje IT infrastrukture može biti komplikovan zadatak, ali uz pomoć alata kao što je Checkmk, proces se znatno pojednostavljuje.
Mnoge organizacije su implementirale tehnologije zasnovane na oblaku kako bi unapredile performanse svojih proizvoda. Istovremeno, često nastavljaju da upravljaju sopstvenim mrežama i lokalnom infrastrukturom. Ova tranzicija ka hibridnoj infrastrukturi zahteva detaljno praćenje zbog ogromne količine podataka koja se generiše svake sekunde za različite komponente kao što su operativni sistemi, skladišta, serveri, okruženja u oblaku i slično. Svi ovi elementi su ključni za osiguranje optimalnog rada aplikacija.
Ovi podaci su od suštinskog značaja za DevOps timove kako bi razumeli stanje svoje infrastrukture. Zato je organizacijama potrebno rešenje za praćenje koje će im omogućiti da brzo identifikuju probleme u proizvodnji koristeći metriku, vizualizaciju i analitiku. Checkmk se ističe kao jedan od najpopularnijih i najkorisnijih alata za praćenje infrastrukture. U ovom članku, istražićemo zašto Checkmk uživa tako dobru reputaciju i kako možete napraviti prve korake u njegovoj upotrebi.
Šta je Checkmk?
Checkmk kontinuirano nadzire funkcionalnost svih aspekata modernog IT okruženja, sa posebnim naglaskom na hibridne infrastrukture. Ovaj alat nudi fleksibilnost i podržava različita okruženja, uključujući kontejnere, resurse u oblaku i lokalne sisteme kao što su prekidači i serveri. Osim toga, Checkmk je veoma jednostavan za postavljanje i korišćenje. Dolazi sa automatizovanim upozorenjima koja su zasnovana na bogatom IT iskustvu, kao i drugim pametnim funkcijama koje vam mogu uštedeti značajno vreme.
Ukoliko želite da koristite Checkmk besplatno, imate dve opcije. Prvo, možete odabrati Checkmk Raw Edition, koji je potpuno otvorenog koda i besplatan za upotrebu bez ikakvih ograničenja. Drugo, postoji Checkmk Enterprise probno izdanje koje uključuje sve dodatne funkcije Checkmk Enterprise Edition-a, ali nakon 30 dana broj hostova je ograničen na 25.
Kako Checkmk rešava problem?
Checkmk je sposoban da nadgleda aplikacije, servere, baze podataka, mreže, kontejnere, skladišta i još mnogo toga. Pruža obiman spisak od preko 2.000 dodataka za praćenje. Ovi dodaci omogućavaju Checkmk-u da se proširi i prati specifične tehnologije različitih proizvođača dostupnih na tržištu. Neki od popularnijih dodataka su za Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS i Dell. Sa svojom bogatom bibliotekom od 2.000+ dodataka, Checkmk se nameće kao vrlo perspektivno rešenje za praćenje infrastrukture koje je trenutno na raspolaganju.
Za svako rešenje za praćenje, brzina i tačnost očitavanja metrike, kao i postavljanje pametnih upozorenja i obaveštenja, od suštinske su važnosti. Checkmk rešenje zadovoljava sve ove kriterijume. Sa svojom funkcijom automatskog otkrivanja, Checkmk može identifikovati više od 90% usluga i uređaja. U današnje vreme, većina preduzeća zahteva skalabilnost i automatizaciju. Sa Checkmk-om, lako možete skalirati kapacitet praćenja sa stotina na hiljade hostova i koristiti njegove agente za automatizaciju.
Instalacija Checkmk u Docker kontejner
U ovom delu članka, instaliraćemo Checkmk Raw Edition u Docker kontejner na Linux serveru sa Ubuntu 20.04. Možete preuzeti Checkmk Docker kontejner sa Dockerhub-a. Do sada je preuzet više od 5 miliona puta, što svedoči o popularnosti i širokoj upotrebi Checkmk-a.
Preuzmite Docker sliku sa najnovijom verzijom Checkmk-a i pokrenite je unutar kontejnera koristeći komandu `docker container run`.
docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v monitoring:/omd/sites --name monitoring -v /etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest
Kontejner će se zvati „monitoring“, veb server će slušati port 5000 i biće dostupan na portu 8080 host mašine. Kontejner će koristiti privremeni sistem datoteka i lokalnu vremensku zonu.
[email protected]:~$ sudo docker container run -dit -p 8080:5000 --tmpfs /opt/omd/sites/cmk/tmp:uid=1000,gid=1000 -v/omd/sites --name monitoring -v/etc/localtime:/etc/localtime:ro --restart always checkmk/check-mk-raw:2.0.0-latest Unable to find image 'checkmk/check-mk-raw:2.0.0-latest' locally 2.0.0-latest: Pulling from checkmk/check-mk-raw 33847f680f63: Pull complete 474905f2790b: Pull complete 1804f0e63047: Pull complete f36fe6334464: Pull complete 03c68dfa69cf: Pull complete b60cfdb78e96: Pull complete Digest: sha256:7788fa2e31c7270be201d75285c13ccc7a74f67f991872ea63ba0cfa6708cac6 Status: Downloaded newer image for checkmk/check-mk-raw:2.0.0-latest 9729e323a840a08b0e758cfa9e6dbf76ba5dab4b2ecc4eea5174b8ee1a5cfbcf
Možete proveriti da li je Docker slika preuzeta pokretanjem komande `docker images`.
[email protected]:~$ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE bitnami/node-exporter latest ba0f519ca49b 34 hours ago 104MB checkmk/check-mk-raw 2.0.0-latest 097319702432 13 days ago 1.03GB hello-world latest feb5d9fea6a5 7 weeks ago 13.3kB
Pokrenite komandu `docker ps` da biste videli da li je Checkmk kontejner pokrenut.
[email protected]:~$ sudo docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9729e323a840 checkmk/check-mk-raw:2.0.0-latest "/docker-entrypoint.…" About a minute ago Up 59 seconds (health: starting) 6557/tcp, 0.0.0.0:8080->5000/tcp, :::8080->5000/tcp monitoring 3d3a95ed3c25 bitnami/node-exporter:latest "/opt/bitnami/node-e…" 25 hours ago Up 25 hours 9100/tcp node-exporter
Da biste dobili podatke za prijavu na Checkmk veb interfejs, prikažite logove kontejnera.
[email protected]:~$ sudo docker container logs 9729e323a840 ### CREATING SITE 'cmk' Adding /opt/omd/sites/cmk/tmp to /etc/fstab. Going to set TMPFS to off. Temporary filesystem already mounted Updating core configuration... Generating configuration for core (type nagios)...Precompiling host checks...OK OK Executing post-create script "01_create-sample-config.py"...OK Created new site cmk with version 2.0.0p15.cre. The site can be started with omd start cmk. The default web UI is available at http://9729e323a840/cmk/ The admin user for the web applications is cmkadmin with password: ClFxBPre For command line administration of the site, log in with 'omd su cmk'. After logging in, you can change the password for cmkadmin with 'htpasswd etc/htpasswd cmkadmin'. ### STARTING XINETD [ ok ] Starting internet superserver: xinetd. ### STARTING SITE Temporary filesystem already mounted Starting mkeventd...OK Starting rrdcached...OK Starting npcd...OK Starting nagios...OK Starting apache...OK Starting redis...OK Initializing Crontab...OK ### STARTING CRON ### CONTAINER STARTED
Checkmk Docker kontejner će se podrazumevano pokrenuti na `https://localhost:8080/cmk/check_mk`. Izlaz gornje komande nam govori da je korisničko ime `cmkadmin`, a lozinka, u ovom slučaju, `ClFxBPre`. Unesite adresu u veb pregledač i koristite svoje akreditive za prijavu.
Nakon što se prijavite, pojaviće se ‘Glavna kontrolna tabla’, koja će biti prazna jer još niste dodali nijedan host.
Praćenje Docker-a pomoću Checkmk-a
Uobičajeno, instalirali biste Checkmk agenta na mašinu koja hostuje vaše Docker kontejnere i zatim koristili Checkmk dodatak za Docker da nadgledate sve kontejnere. Ovaj dodatak (`mk_docker.py`) koristi Docker-ov Python API za praćenje Docker kontejnera i pružanje potpune vidljivosti njihovog statusa i performansi u realnom vremenu. Više detalja o Docker nadgledanju pomoću Checkmk-a možete pronaći na veb lokaciji Checkmk.
Pošto u mom Docker okruženju radi samo jedan Docker kontejner, moj Checkmk Docker kontejner, koristiću samo Checkmk agenta koji radi unutar Docker kontejnera, bez instaliranja Checkmk-a na moj Docker host. Agent je već instaliran u Checkmk kontejneru, pa je potrebno samo da dodam svoj Checkmk kontejner kao host.
Hajde da dobijemo IP adresu na kojoj radi Docker servis, koristeći `ifconfig` u terminalu.
[email protected]:~$ ifconfig docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255 inet6 fe80::42:59ff:fe8a:8ba8 prefixlen 64 scopeid 0x20<link> ether 02:42:59:8a:8b:a8 txqueuelen 0 (Ethernet) RX packets 5559 bytes 7230215 (7.2 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4164 bytes 614703 (614.7 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.108 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::144a:4682:35e7:bb2 prefixlen 64 scopeid 0x20<link> ether 08:00:27:91:82:82 txqueuelen 1000 (Ethernet) RX packets 699491 bytes 1044235622 (1.0 GB) RX errors 0 dropped 7 overruns 0 frame 0 TX packets 101260 bytes 7555470 (7.5 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 netmask 255.0.0.0 inet6 ::1 prefixlen 128 scopeid 0x10<host> loop txqueuelen 1000 (Local Loopback) RX packets 20655 bytes 8446042 (8.4 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 20655 bytes 8446042 (8.4 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 veth44ba5ce: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::145f:1fff:fee9:a7b0 prefixlen 64 scopeid 0x20<link> ether 16:5f:1f:e9:a7:b0 txqueuelen 0 (Ethernet) RX packets 5559 bytes 7308041 (7.3 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 4173 bytes 616263 (616.2 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vetha82ee43: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::585c:6fff:fe0a:a79b prefixlen 64 scopeid 0x20<link> ether 5a:5c:6f:0a:a7:9b txqueuelen 0 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 92 bytes 9799 (9.7 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
U mom slučaju, Docker servis radi na 172.17.0.1. Sledeći korak je dodavanje Docker servisa kao hosta u Checkmk-u kako bi se mogao nadgledati.
- Idite na Checkmk i kliknite na Podešavanje -> Hostovi.
- Sada unesite ime hosta i IP adresu i kliknite na „Sačuvaj i idi na konfiguraciju usluge“.
- Nakon toga, Checkmk će automatski pokrenuti otkrivanje usluge.
Pomerite se nadole da biste videli usluge nadgledanja koje rade pod Docker hostom. Možete videti da usluge trenutno nisu nadgledane. Ako želite da sve pratite, najjednostavnije rešenje je da kliknete na ‘Popravi sve’. Ako želite da konfigurišete koje usluge treba da se nadgledaju, možete i to detaljno da uradite. Kliknite na znak + ako želite da nadgledate uslugu.
Kada izaberete usluge koje želite da nadgledate, one će se pojaviti na kartici „Nadgledane usluge“. Dobićete sve detalje o statusu svake usluge koju nadgledate. Ako kliknete na znak ?, ta usluga će se prebaciti na listu neodlučnih usluga. Ako kliknete na znak X, usluga će se prebaciti na karticu „Onemogućene usluge“.
Onemogućio sam četiri usluge, tako da mogu da ih vidim na kartici za onemogućavanje usluga.
Kada završite sa dodavanjem usluga, potrebno je da aktivirate promene pre nego što se primene.
- Kliknite na polje sa žutim uzvičnikom (!) u gornjem desnom uglu da biste videli promene koje čekaju.
- Kliknite na Aktiviraj na izabranim sajtovima.
Uspešno ste nadgledali Docker usluge koristeći Checkmk!
Zaključak
Ovim smo završili pregled Checkmk-a, alata za praćenje infrastrukture. To je veoma jednostavan alat koji preporučujem da isprobate za praćenje vašeg produkcionog okruženja. Preporučujem da isprobate besplatno izdanje Checkmk-a da biste započeli sa praćenjem.