Jak zacząć korzystać z Checkmk

Monitorowanie infrastruktury IT jest złożone, ale narzędzie takie jak Checkmk ułatwia to.

Wiele organizacji dodało do swojego stosu technologii natywne technologie chmurowe, aby zwiększyć wydajność swoich produktów. Jednocześnie często nadal prowadzą własne sieci i infrastrukturę lokalną. Przejście na infrastruktury hybrydowe należy uwzględnić w monitorowaniu ze względu na ogromną liczbę metryk generowanych co sekundę dla różnych komponentów, takich jak system operacyjny, pamięć masowa, serwer, środowiska chmurowe itp. Wszystkie one są ważne, aby zapewnić maksymalne działanie aplikacji wydajność.

Te metryki są niezbędnym sygnałem dla zespołów DevOps, aby zrozumieć kondycję ich infrastruktury. Dlatego organizacje potrzebują rozwiązania do monitorowania, które pomoże im szybko identyfikować problemy w produkcji za pomocą metryk, wizualizacji i analiz. Checkmk to jedno z najpopularniejszych i najbardziej pomocnych narzędzi do monitorowania infrastruktury. W tym artykule opowiem Ci, dlaczego Checkmk zasługuje na swoją dobrą reputację i jak możesz z nim stawiać pierwsze kroki.

Co to jest Checkmk?

Checkmk stale sprawdza działanie każdego aspektu nowoczesnych środowisk IT i jest szczególnie dobrze przystosowany do infrastruktur hybrydowych. Z jednej strony Checkmk jest elastyczny i obsługuje kontenery, zasoby w chmurze oraz systemy lokalne, takie jak przełączniki i serwery. Z drugiej strony, rozpoczęcie i zarządzanie monitorowaniem jest naprawdę łatwe, ponieważ Checkmk zawiera automatyczne alerty oparte na dużej wiedzy informatycznej i innych inteligentnych funkcjach, które pozwolą Ci zaoszczędzić dużo czasu.

Jeśli chcesz korzystać z Checkmk za darmo, masz dwie opcje: Po pierwsze, możesz wybrać Checkmk Raw Edition, który jest całkowicie open-source i darmowy bez żadnych ograniczeń. Po drugie, jest Checkmk Enterprise wersja próbna który ma wszystkie dodatkowe funkcje Checkmk Enterprise Editions, ale po 30 dniach liczba hostów zostanie ograniczona do 25.

Jak Checkmk rozwiązuje problem?

Checkmk może monitorować aplikacje, serwery, bazy danych, sieci, kontenery, pamięć masową i tak dalej. Zawiera ogromną listę ponad 2000 wtyczek monitorujących. Z tymi wtyczkami. Checkmk można rozszerzyć o monitorowanie określonych technologii różnych dostawców dostępnych na rynku. Kilka popularnych wtyczek Checkmk dotyczy Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell. Dzięki ponad 2000 wtyczek Checkmk wyróżnia się jako bardzo obiecujące dostępne obecnie rozwiązanie do monitorowania infrastruktury.

Ponadto w przypadku każdego rozwiązania do monitorowania ważne jest, jak szybko i poprawnie mogą odczytywać metryki oraz konfigurować inteligentne alerty i powiadomienia. Rozwiązanie Checkmk spełnia wszystkie te kryteria. Dzięki funkcji automatycznego wykrywania Checkmk może zidentyfikować ponad 90% usług i urządzeń. Obecnie większość firm wymaga skalowalności i automatyzacji. Możesz z łatwością skalować wydajność monitorowania od stu hostów do tysięcy hostów w Checkmk i wykorzystać jego agentów dostępnych do automatyzacji.

Zainstaluj Checkmk w kontenerze Docker

W tym artykule zamierzam zainstalować Checkmk Raw Edition w kontenerze Docker na serwerze Linux działającym na Ubuntu 20.04. Z Dockerhub możesz pobrać Kontener Checkmk Docker. Do tej pory ma prawie 5 milionów pociągnięć, co pokazuje, jak popularny i szeroko stosowany jest Checkmk.

Weź obraz Docker z najnowszą wersją Checkmk i uruchom go w kontenerze za pomocą polecenia 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

Nazwą kontenera będzie „monitorowanie”, serwer WWW będzie nasłuchiwał portu 5000 i otworzy się na porcie 8080 węzła. Kontener użyje tymczasowego systemu plików i lokalnej strefy czasowej.

[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 sprawdzić, czy obraz Dockera został pobrany, uruchamiając obrazy dockera poleceń.

[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

Uruchom polecenie 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ć dane logowania do interfejsu internetowego Checkmk, wydrukuj dziennik 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

Kontener Checkmk Docker będzie domyślnie uruchamiany pod adresem https://localhost:8080/cmk/check_mk. Dane wyjściowe powyższego polecenia mówią, że nazwa użytkownika to cmkadmin i hasło, w moim przypadku hasło to ClFxBPre. Otwórz adres w przeglądarce internetowej i użyj swoich danych logowania, aby się zalogować.

Po zalogowaniu się pojawi się „Główny pulpit nawigacyjny”. Jest pusta, ponieważ nie dodałeś jeszcze żadnych hostów.

Monitoruj Docker za pomocą Checkmk

Zwykle należy zainstalować agenta Checkmk na komputerze, na którym znajdują się kontenery Docker, a następnie użyć wtyczki Checkmk dla platformy Docker do monitorowania wszystkich kontenerów. Ta wtyczka (mk_docker.py) wykorzystuje Python-API platformy Docker do śledzenia kontenerów Docker i uzyskania pełnego wglądu w ich stan i wydajność w czasie rzeczywistym. Możesz przeczytać więcej szczegółów na temat Monitorowanie Dockera za pomocą Checkmk na stronie Checkmk.

Ponieważ w moim środowisku Docker działa tylko jeden kontener Docker, mój kontener Checkmk Docker, po prostu użyję agenta Checkmk działającego w kontenerze Docker i nie zainstaluję Checkmk na moim hoście Docker. Agent jest preinstalowany w kontenerze Checkmk, więc muszę tylko dodać mój kontener Checkmk jako host.

Uzyskajmy adres IP, na którym działa usługa Docker za pomocą ifconfig na 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 na 172.17.0.1. Następnym krokiem jest dodanie usługi Docker jako hosta w Checkmk, aby można było ją monitorować.

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

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

  • Gdy to zrobisz, Checkmk automatycznie uruchomi wykrywanie usług.

Przewiń w dół, aby zobaczyć usługi monitorowania działające na hoście platformy Docker. Możesz zobaczyć, że usługi nie są obecnie monitorowane. Jeśli chcesz wszystko monitorować, najłatwiejszym rozwiązaniem jest kliknięcie „Napraw wszystko”. Jeśli chcesz skonfigurować, które usługi mają być monitorowane, możesz to zrobić również szczegółowo. Kliknij znak +, jeśli chcesz monitorować usługę.

Po wybraniu usług, które chcesz monitorować, pojawią się one w zakładce „Monitorowane usługi”. Otrzymasz wszystkie szczegóły statusu dla każdej monitorowanej usługi. Jeśli klikniesz ? znak, usługa zostanie przeniesiona na listę niezdecydowanych usług. Jeśli klikniesz znak X, usługa przejdzie do zakładki „Usługi wyłączone”.

Wyłączyłem cztery usługi, więc widzę je w zakładce wyłączanie usług.

Po zakończeniu dodawania usług musisz aktywować zmiany, zanim wejdą one do produkcji.

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

Pomyślnie monitorowałeś usługi Docker za pomocą Checkmk!

Wniosek

Tak więc chodziło o Checkmk, narzędzie do monitorowania infrastruktury. Jest to bardzo łatwe w użyciu narzędzie, które musisz spróbować monitorować w swoich środowiskach produkcyjnych. Polecam spróbować Checkmk Bezpłatna edycja aby rozpocząć monitorowanie.