Zjednodušený dohled nad IT infrastrukturou s Checkmk
Sledování IT infrastruktury je často komplexní záležitost, avšak nástroje jako Checkmk ji výrazně usnadňují. Řada organizací začleňuje cloudové technologie do svých systémů s cílem zlepšit výkon svých produktů. Souběžně s tím však nadále provozují vlastní sítě a lokální infrastrukturu. Tento trend směřující k hybridním infrastrukturám vyžaduje specifický přístup k monitorování, jelikož generuje obrovské množství metrik z různých komponent, jako jsou operační systémy, úložiště, servery, cloudová prostředí a další. Všechny tyto komponenty jsou zásadní pro zajištění špičkového výkonu aplikací.
Tyto metriky slouží jako klíčové indikátory pro týmy DevOps, které díky nim dokážou pochopit stav infrastruktury. Proto organizace potřebují monitorovací řešení, které jim umožní rychle identifikovat problémy v produkčním prostředí prostřednictvím metrik, vizualizací a analýz. Checkmk je jedním z nejpopulárnějších a nejužitečnějších nástrojů pro monitoring infrastruktury. V tomto článku si přiblížíme, proč si Checkmk získal tak dobré jméno a jak s ním můžete začít pracovat.
Co je Checkmk?
Checkmk je nástroj, který kontinuálně sleduje fungování všech aspektů moderních IT prostředí a je obzvláště vhodný pro hybridní infrastruktury. Checkmk je flexibilní a podporuje kontejnery, cloudová aktiva i lokální systémy, jako jsou přepínače a servery. Navíc se snadno používá a spravuje, protože nabízí automatické výstrahy založené na rozsáhlých IT znalostech a další inteligentní funkce, které šetří čas.
Pokud chcete Checkmk používat zdarma, máte dvě možnosti. Můžete si vybrat Checkmk Raw Edition, což je open-source verze bez omezení. Dále existuje Checkmk Enterprise Trial Edition, která obsahuje pokročilé funkce Checkmk Enterprise Editions, ale po 30 dnech je omezena na 25 monitorovaných hostitelů.
Jak Checkmk řeší problémy?
Checkmk umožňuje monitorování aplikací, serverů, databází, sítí, kontejnerů, úložišť a dalších prvků. Nabízí rozsáhlý seznam s více než 2000 monitorovacími pluginy. Tyto pluginy umožňují rozšířit možnosti Checkmk o sledování specifických technologií od různých výrobců. Mezi oblíbené pluginy Checkmk patří ty pro Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS a Dell. S takovým množstvím pluginů Checkmk představuje slibné řešení pro monitoring infrastruktury.
Klíčovým faktorem pro jakékoliv monitorovací řešení je rychlost a přesnost získávání metrik a nastavení chytrých upozornění. Checkmk splňuje všechna tato kritéria. Díky funkci automatického zjišťování dokáže Checkmk identifikovat přes 90 % služeb a zařízení. Většina podniků vyžaduje škálovatelnost a automatizaci. V Checkmk je snadné rozšířit monitorovací kapacitu ze stovek na tisíce hostitelů a využít agenty dostupné pro automatizaci.
Instalace Checkmk do kontejneru Docker
V tomto článku si ukážeme instalaci Checkmk Raw Edition do kontejneru Docker na linuxovém serveru s Ubuntu 20.04. Z Dockerhubu si můžete stáhnout kontejner Checkmk Docker. S téměř 5 miliony stažení svědčí o jeho popularitě a širokém využití.
Stáhněte si image Docker s nejnovější verzí Checkmk a spusťte ji v kontejneru pomocí příkazu `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 bude mít název ‚monitoring‘, webový server bude naslouchat na portu 5000 a bude dostupný na portu 8080. Kontejner bude používat dočasný souborový systém a lokální časové pásmo.
[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
Ověřte stažení image Docker pomocí příkazu `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
Zkontrolujte spuštění kontejneru Checkmk pomocí příkazu `docker ps`:
[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
Pro získání přihlašovacích údajů do webového rozhraní Checkmk vypište log kontejneru Checkmk:
[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
Kontejner Checkmk Docker běží standardně na adrese https://localhost:8080/cmk/check_mk. V logu najdete uživatelské jméno (cmkadmin) a heslo (v tomto případě ClFxBPre). Zadejte tuto adresu do webového prohlížeče a přihlaste se.
Po přihlášení se zobrazí prázdný „Dashboard“, jelikož ještě nemáte přidané žádné hostitele.
Monitorování Dockeru pomocí Checkmk
Obvykle se na počítač hostující Docker kontejnery instaluje Checkmk agent a následně se pomocí pluginu Checkmk pro Docker monitorují všechny kontejnery. Tento plugin (mk_docker.py) využívá Docker’s Python-API ke sledování kontejnerů Docker a získávání kompletního přehledu o jejich stavu a výkonu v reálném čase. Více informací naleznete na webu Checkmk.
Vzhledem k tomu, že v tomto případě běží pouze jeden kontejner Docker (kontejner Checkmk Docker), použijeme agenta Checkmk spuštěného v tomto kontejneru a nebudeme instalovat Checkmk na hostitele Dockeru. Agent je předinstalovaný v kontejneru Checkmk, stačí tedy přidat kontejner Checkmk jako hostitele.
IP adresu, na které běží služba Docker, zjistíme pomocí příkazu `ifconfig`:
[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
V tomto případě běží Docker na adrese 172.17.0.1. Nyní přidáme službu Docker jako hostitele do Checkmk:
- Přejděte v Checkmk do Nastavení -> Hostitelé.
- Zadejte název hostitele a IP adresu a klikněte na „Uložit a přejít do konfigurace služby“.
- Checkmk automaticky spustí detekci služeb.
Nyní uvidíte monitorované služby. Služby zatím nejsou monitorované, to vyřešíte kliknutím na „Fix all“. Můžete také konfigurovat, které služby chcete monitorovat individuálně – stačí kliknout na „+“ u konkrétní služby.
Po vybrání služeb k monitorování se tyto zobrazí v záložce „Monitorované služby“. Uvidíte všechny detaily o stavu sledovaných služeb. Kliknutím na symbol „?“ přesunete službu do seznamu nerozhodnutých služeb. Kliknutím na „X“ přesunete službu do záložky „Zakázané služby“.
Čtyři služby jsme zakázali, takže je vidíme v záložce Zakázané služby.
Po dokončení přidávání služeb musíte změny aktivovat, aby se projevily v produkci:
- Klikněte na zvýrazněné pole se žlutým vykřičníkem (!) v pravém horním rohu.
- Klikněte na „Activate on selected sites“.
Úspěšně jste zmonitorovali služby Docker pomocí Checkmk!
Závěr
To je vše o Checkmk, nástroji pro monitorování infrastruktury. Jedná se o velmi snadno použitelný nástroj, který byste měli vyzkoušet pro monitorování vašeho produkčního prostředí. Doporučujeme vyzkoušet Checkmk Free Edition pro zahájení monitorování.