Jak začít s Checkmk

Monitorování IT infrastruktury je složité, ale nástroj jako Checkmk to usnadňuje.

Mnoho organizací přidalo do své technologické sady cloudové nativní technologie, aby zvýšily výkon svých produktů. Zároveň často nadále provozují své vlastní sítě a místní infrastrukturu. Tento posun k hybridním infrastrukturám je třeba řešit v rámci monitorování kvůli obrovskému množství metrik, které se každou sekundu generují pro různé komponenty, jako je operační systém, úložiště, server, cloudová prostředí atd. Všechny jsou důležité pro zajištění maximálního běhu aplikací. výkon.

Tyto metriky jsou zásadním signálem pro týmy DevOps, aby pochopily stav své infrastruktury. To je důvod, proč organizace potřebují řešení monitorování, které jim pomůže rychle identifikovat problémy ve výrobě pomocí metrik, vizualizací a analýz. Checkmk je jedním z nejpopulárnějších a nejužitečnějších nástrojů pro monitorování infrastruktury. V tomto článku vám řeknu, proč si Checkmk zaslouží svou dobrou pověst a jak s ním můžete udělat první kroky.

Co je Checkmk?

Checkmk neustále kontroluje funkci jakéhokoli aspektu moderních IT prostředí a je zvláště vhodný pro hybridní infrastruktury. Na jedné straně je Checkmk flexibilní a podporuje kontejnery, cloudová aktiva a místní systémy, jako jsou přepínače a servery. Na druhou stranu je opravdu snadné začít a spravovat své monitorování, protože Checkmk přichází s automatickými výstrahami založenými na mnoha IT odborných znalostech a dalších inteligentních funkcích, které vám ušetří spoustu času.

Pokud chcete používat Checkmk zdarma, máte dvě možnosti: Za prvé, můžete si vybrat Checkmk Raw Edition, která je zcela open-source a je zdarma k použití bez jakýchkoli omezení. Za druhé, je Checkmk Enterprise Trial Edition která má všechny dodatečné funkce Checkmk Enterprise Editions, ale po 30 dnech bude počet hostitelů omezen na 25.

Jak Checkmk řeší problém?

Checkmk může monitorovat aplikace, servery, databáze, sítě, kontejnery, úložiště a podobně. Poskytuje masivní seznam více než 2 000 monitorovacích zásuvných modulů. S těmito zásuvnými moduly. Checkmk lze rozšířit o sledování specifických technologií od různých prodejců dostupných na trhu. Několik populárních zásuvných modulů Checkmk je pro Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell. Se svými více než 2 000 zásuvnými moduly Checkmk vyniká jako velmi slibné řešení monitorování infrastruktury, které je v současné době k dispozici.

Pro jakékoli monitorovací řešení je také klíčové, jak rychle a správně dokážou číst metriky a nastavit chytrá upozornění a upozornění. Řešení Checkmk splňuje všechna tato kritéria. Díky své funkci automatického zjišťování dokáže Checkmk identifikovat více než 90 % služeb a zařízení. Nyní většina podniků vyžaduje škálovatelnost a automatizaci. V Checkmk můžete snadno rozšířit monitorovací kapacitu ze stovek hostitelů na tisíce hostitelů a využít jeho agenty dostupné pro automatizaci.

Nainstalujte Checkmk do kontejneru Docker

V tomto článku se chystám nainstalovat Checkmk Raw Edition do kontejneru Docker na linuxovém serveru běžícím na Ubuntu 20.04. Z Dockerhubu si můžete stáhnout Kontejner Checkmk Docker. Dosud má téměř 5 milionů+ stažení, což vypovídá o tom, jak populární a široce používaný Checkmk je.

Vezměte obraz Dockeru s nejnovější verzí Checkmk a spusťte jej 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

Název kontejneru bude ‚monitoring‘, webový server bude naslouchat portu 5000 a otevře se na portu 8080 uzlu. Kontejner bude používat dočasný souborový systém a místní č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

Můžete zkontrolovat, zda byl obrázek Docker stažen spuštěním 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

Spusťte příkaz docker ps a zjistěte, zda je spuštěn kontejner Checkmk.

[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

Chcete-li získat přihlašovací údaje pro webové rozhraní Checkmk, vytiskněte si protokol 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 poběží ve výchozím nastavení na https://localhost:8080/cmk/check_mk. Výstup výše uvedeného příkazu vám řekne, že uživatelské jméno je cmkadmin a heslo, v mém případě je heslo ClFxBPre. Otevřete adresu ve webovém prohlížeči a pomocí svých přihlašovacích údajů se přihlaste.

Jakmile se přihlásíte, zobrazí se „Hlavní panel“. Je prázdný, protože jste zatím nepřidali žádné hostitele.

Monitor Docker pomocí Checkmk

Obvykle byste na svůj počítač, který je hostitelem vašich kontejnerů Docker, nainstalovali agenta Checkmk a poté použili zásuvný modul Checkmk pro Docker ke sledování všech kontejnerů. Tento plug-in (mk_docker.py) používá Docker’s Python-API ke sledování kontejnerů Docker a získání plného přehledu o jejich stavu a výkonu v reálném čase. Můžete si přečíst další podrobnosti o Monitorování dockeru pomocí Checkmk na webu Checkmk.

Protože v mém prostředí Dockeru běží pouze jeden kontejner Docker, můj kontejner Checkmk Docker, použiji pouze agenta Checkmk spuštěného v kontejneru Docker a nebudu instalovat Checkmk na hostitele Dockeru. Agent je předinstalovaný v kontejneru Checkmk, takže stačí přidat svůj kontejner Checkmk jako hostitele.

Pomocí ifconfig na terminálu získáme IP adresu, na které běží služba Docker.

[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 mém případě služba Docker běží na 172.17.0.1. Dalším krokem je přidání služby Docker jako hostitele do Checkmk, aby bylo možné ji monitorovat.

  • Přejděte na Checkmk a klikněte na Nastavení -> Hostitelé.

  • Nyní zadejte název hostitele a IP adresu a klikněte na „Uložit a přejít do konfigurace služby“.

  • Jakmile to uděláte, Checkmk automaticky spustí zjišťování služby.

Přejděte dolů, abyste viděli monitorovací služby spuštěné pod hostitelem Docker. Můžete vidět, že služby nejsou aktuálně monitorovány. Pokud chcete vše sledovat, nejjednodušším řešením je kliknout na „Opravit vše“. Chcete-li nakonfigurovat, které služby mají být monitorovány, můžete to provést také podrobně. Pokud chcete službu sledovat, klikněte na znaménko +.

Jakmile vyberete služby, které chcete monitorovat, zobrazí se na kartě „Monitorované služby“. Získáte všechny podrobnosti o stavu každé služby, kterou sledujete. Pokud kliknete na ? podepsat, tato služba se přesune do seznamu nerozhodnutých služeb. Pokud kliknete na znak X, služba se přesune na kartu „Zakázané služby“.

Zakázal jsem čtyři služby, takže je vidím na kartě Zakázat služby.

Až budete s přidáváním služeb hotovi, musíte změny aktivovat, než se dostanou do produkce.

  • Kliknutím na zvýrazněné pole se žlutým vykřičníkem (!) v pravém horním rohu zobrazíte čekající změny.
  • Klikněte na Aktivovat na vybraných stránkách.

Úspěšně jste monitorovali služby Docker pomocí Checkmk!

Závěr

To bylo vše o Checkmku, nástroji pro monitorování infrastruktury. Je to velmi snadno použitelný nástroj, který musíte zkusit monitorovat vaše produkční prostředí. Doporučuji vyzkoušet Checkmk Free Edition pro zahájení sledování.