Jak zacząć korzystać z Checkmk

Nadzorowanie infrastruktury IT to zadanie o sporej złożoności, lecz z pomocą przychodzi narzędzie takie jak Checkmk, które znacząco ten proces usprawnia.

Wiele organizacji, chcąc podnieść efektywność swoich produktów, włączyło do swojego ekosystemu technologicznego rozwiązania natywne dla chmury. Jednocześnie, bardzo często utrzymują one własne sieci i infrastrukturę lokalną. Takie przejście na modele hybrydowe wymaga uwzględnienia w procesie monitoringu, z uwagi na olbrzymią ilość danych generowanych w ułamku sekundy przez różnorodne elementy, takie jak systemy operacyjne, nośniki danych, serwery czy środowiska chmurowe. Wszystkie one są kluczowe dla zapewnienia optymalnej pracy aplikacji.

Te dane pomiarowe stanowią nieocenione źródło informacji dla zespołów DevOps, pozwalając im ocenić kondycję całej infrastruktury. Dlatego też firmy poszukują rozwiązań do monitorowania, które pozwolą im szybko lokalizować problemy w środowisku produkcyjnym, bazując na metrykach, wizualizacjach i analizach. Checkmk to jedno z najpopularniejszych i najbardziej użytecznych narzędzi w tej dziedzinie. W niniejszym artykule przybliżę powody, dla których Checkmk cieszy się tak dobrą opinią oraz pokażę, jak zrobić z nim pierwsze kroki.

Czym jest Checkmk?

Checkmk monitoruje na bieżąco każdy aspekt nowoczesnych środowisk IT, a szczególnie dobrze sprawdza się w przypadku infrastruktur hybrydowych. Z jednej strony, Checkmk jest elastyczny i obsługuje kontenery, zasoby w chmurze, jak również systemy lokalne, takie jak przełączniki i serwery. Z drugiej strony, uruchomienie i zarządzanie monitoringiem jest wyjątkowo proste, gdyż Checkmk oferuje automatyczne powiadomienia oparte na obszernej bazie wiedzy IT, a także inne inteligentne funkcje, które pozwalają zaoszczędzić sporo czasu.

Dla tych, którzy chcą wypróbować Checkmk bez ponoszenia kosztów, są dwie opcje. Pierwsza to Checkmk Raw Edition, wersja całkowicie otwarta i bezpłatna, bez żadnych ograniczeń. Druga to wersja próbna Checkmk Enterprise, która zawiera wszystkie zaawansowane funkcje Checkmk Enterprise Editions. Należy jednak pamiętać, że po 30 dniach liczba monitorowanych hostów zostanie ograniczona do 25.

W jaki sposób Checkmk rozwiązuje problemy?

Checkmk potrafi monitorować aplikacje, serwery, bazy danych, sieci, kontenery, pamięć masową i wiele innych elementów. Posiada obszerną listę ponad 2000 wtyczek monitorujących. Dzięki nim, Checkmk może być rozszerzany o monitoring konkretnych technologii różnych producentów, dostępnych na rynku. Wśród popularnych wtyczek Checkmk znajdziemy te dla Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell. Tak bogata biblioteka wtyczek czyni z Checkmk bardzo obiecujące narzędzie do nadzorowania infrastruktury.

Co więcej, w każdym rozwiązaniu monitorującym kluczowe jest, jak szybko i rzetelnie odczytywane są metryki, oraz czy możliwe jest ustawienie inteligentnych alertów i powiadomień. Checkmk spełnia wszystkie te kryteria. Dzięki opcji automatycznego wykrywania, Checkmk jest w stanie zidentyfikować ponad 90% usług i urządzeń. W dzisiejszych czasach większość przedsiębiorstw oczekuje skalowalności i automatyzacji. Checkmk umożliwia łatwe skalowanie monitoringu od setek do tysięcy hostów, a do automatyzacji można wykorzystać dostępne agentów.

Instalacja Checkmk w kontenerze Docker

W dalszej części artykułu opiszę proces instalacji Checkmk Raw Edition w kontenerze Docker na serwerze Linux z systemem Ubuntu 20.04. Obraz kontenera Checkmk Docker jest dostępny w Dockerhub. Dotychczas pobrano go niemal 5 milionów razy, co świadczy o jego popularności i szerokim zastosowaniu.

Pobierz najnowszą wersję obrazu Docker i uruchom go w kontenerze za pomocą komendy 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

Kontener zostanie nazwany „monitoring”, serwer WWW będzie nasłuchiwał na porcie 5000 i zostanie udostępniony na porcie 8080 hosta. Kontener wykorzysta tymczasowy system plików oraz lokalną strefę czasową.

[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żesz upewnić się, czy obraz Dockera został pobrany, korzystając z polecenia 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

Użyj komendy docker ps, aby sprawdzić, czy kontener Checkmk jest uruchomiony.

[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

Aby uzyskać dostęp do danych logowania interfejsu internetowego Checkmk, wyświetl logi kontenera 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

Domyślnie, kontener Checkmk Docker będzie dostępny pod adresem https://localhost:8080/cmk/check_mk. Informacje z powyższego polecenia wskazują, że nazwa użytkownika to cmkadmin, a hasło w moim przypadku to ClFxBPre. Otwórz ten adres w przeglądarce i zaloguj się, używając uzyskanych danych.

Po zalogowaniu, wyświetli się „Główny pulpit nawigacyjny”. Będzie on na razie pusty, ponieważ nie dodano jeszcze żadnych hostów.

Monitorowanie Dockera za pomocą Checkmk

Zazwyczaj, aby monitorować kontenery Docker, konieczne jest zainstalowanie agenta Checkmk na komputerze, na którym działają kontenery, a następnie użycie wtyczki Checkmk dla platformy Docker. Wspomniana wtyczka (mk_docker.py) wykorzystuje Python-API platformy Docker do monitorowania kontenerów i uzyskania pełnego wglądu w ich stan oraz wydajność w czasie rzeczywistym. Szczegóły dotyczące monitorowania Dockera za pomocą Checkmk można znaleźć na stronie Checkmk.

Ponieważ w moim środowisku Docker działa tylko jeden kontener Docker, którym jest kontener Checkmk, wykorzystam agenta Checkmk działającego w kontenerze i nie będę instalował dodatkowego agenta na hoście Docker. Agent jest już zainstalowany w kontenerze Checkmk, więc wystarczy dodać kontener Checkmk jako host.

Ustal adres IP, na którym działa usługa Docker, za pomocą komendy ifconfig w 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

W moim przypadku, usługa Docker działa pod adresem 172.17.0.1. Teraz dodam ją jako hosta w Checkmk, aby rozpocząć monitorowanie.

  • Przejdź do Checkmk i kliknij Ustawienia -> Hosty.

  • Wprowadź nazwę hosta oraz adres IP, a następnie kliknij „Zapisz i przejdź do konfiguracji usługi”.

  • Po wykonaniu tej czynności, Checkmk automatycznie rozpocznie wykrywanie usług.

Przewiń w dół, aby zobaczyć usługi monitorowania, które działają na hoście Docker. W tym momencie usługi te nie są jeszcze monitorowane. Aby zacząć monitorować wszystko, najprościej jest kliknąć „Napraw wszystko”. Jeśli chcesz dokładniej skonfigurować, które usługi mają być monitorowane, możesz to zrobić, dodając poszczególne usługi, klikając znak „+”.

Po wyborze usług do monitorowania, znajdą się one w zakładce „Monitorowane usługi”. Tutaj można zobaczyć szczegółowe informacje o statusie każdej z monitorowanych usług. Klikając znak „?”, usługa zostanie przeniesiona na listę niezdecydowanych, a klikając znak „X”, usługa przejdzie do zakładki „Usługi wyłączone”.

Wyłączyłem cztery usługi, dlatego są one widoczne w zakładce usług wyłączonych.

Po dodaniu wszystkich potrzebnych usług, musisz aktywować zmiany, aby zaczęły one działać w środowisku produkcyjnym.

  • Kliknij pole z żółtym wykrzyknikiem (!) w prawym górnym rogu, aby zobaczyć oczekujące zmiany.
  • Kliknij „Aktywuj w wybranych witrynach”.

Gratulacje! Pomyślnie skonfigurowałeś monitoring usług Docker za pomocą Checkmk!

Podsumowanie

Artykuł ten przedstawia Checkmk, narzędzie do monitorowania infrastruktury IT. Jest to bardzo łatwe w obsłudze oprogramowanie, które warto wypróbować w swoim środowisku produkcyjnym. Zachęcam do skorzystania z bezpłatnej wersji Checkmk, aby rozpocząć monitoring.


newsblog.pl