01. Co to jest Checkmk?
Checkmk to zaawansowana platforma monitorowania IT, rozwijana przez firmę Checkmk GmbH (dawniej tribe29). Powstała jako rozszerzenie do Nagios w 2008 roku, stworzone przez Mathiasa Kettner’a pod nazwą Check_MK. Z biegiem czasu projekt urósł do rangi samodzielnego, w pełni dojrzałego systemu monitorowania, który dziś obsługuje tysiące organizacji na całym świecie — od małych firm po korporacje z listy Fortune 500. Platforma oferuje monitoring infrastruktury IT, aplikacji, usług sieciowych i środowisk chmurowych w jednym, spójnym systemie.
Checkmk Raw w skrócie
Checkmk Raw to darmowy system monitoringu IT, który automatycznie wykrywa usługi na serwerach i umożliwia ich monitorowanie bez ręcznej konfiguracji.
Auto-Discovery
Automatyczne wykrywanie usług i interfejsów sieciowych zaraz po dodaniu hosta.
Metryki i wykresy
Wbudowany RRDtool do przechowywania danych historycznych i generowania wykresów wydajnościowych.
Powiadomienia
Elastyczny system alertów: e-mail, SMS, Slack, PagerDuty, Jira i wiele innych.
SNMP i agenci
Obsługa SNMP v1/v2c/v3, własnych agentów oraz monitorowania bezagentowego (SSH, REST API).
Chmura i kontener
Natywna integracja z AWS, Azure, GCP, Kubernetes i Docker.
Konfiguracja przez WATO
Web Administration Tool — graficzny interfejs do zarządzania konfiguracją bez edycji plików.
Historia i geneza projektu
W 2008 roku Mathias Kettner napisał check_mk jako skrypt Pythona rozszerzający Nagios o bardziej wydajny mechanizm odpytywania hostów. Zamiast uruchamiać osobny proces dla każdego sprawdzanego parametru, Checkmk łączy wszystkie sprawdzenia w jedno połączenie TCP, drastycznie zmniejszając obciążenie serwera i monitorowanych hostów.
W 2020 roku firma zmieniła nazwę z tribe29 na Checkmk GmbH, a w 2021 roku pojawiła się wersja 2.0 z przepisanym silnikiem przetwarzania danych, nowym interfejsem webowym opartym na React.js oraz ulepszonym silnikiem powiadamiania.
Checkmk Raw a Nagios
Checkmk Raw Edition korzysta wewnętrznie z Nagios Core jako silnika schedulera, ale w praktyce użytkownik nigdy bezpośrednio z nim nie interaguje. Cała konfiguracja odbywa się przez WATO/GUI Checkmk, a pliki konfiguracyjne Nagiosa są generowane automatycznie.
02. Edycje Checkmk
Checkmk dostępny jest w czterech wersjach, różniących się możliwościami i modelem licencjonowania:
| Cecha | Raw (CRE) | Cloud (CCE) | Enterprise (CEE) | MSP (CME) |
|---|---|---|---|---|
| Licencja | GPL — Darmowa | Komercyjna | Komercyjna | Komercyjna |
| Silnik schedulera | Nagios Core | CMC (Checkmk) | CMC (Checkmk) | CMC (Checkmk) |
| Wbudowany RRD | Tak | Tak | Tak | Tak |
| Distributed Monitoring | Ograniczone | Tak | Tak | Tak |
| Predictive Monitoring | Nie | Tak | Tak | Tak |
| Business Intelligence | Nie | Tak | Tak | Tak |
| SLA Reporting | Nie | Tak | Tak | Tak |
| Multi-tenant | Nie | Nie | Nie | Tak |
| Limit hostów | Brak | Brak | Licencja | Licencja |
Edycje Checkmk – którą wybrać?
| Wersja | Licencja | Dla kogo |
|---|---|---|
| Raw (CRE) | darmowa (GPL) | homelab, MŚP |
| Enterprise (CEE) | płatna | duże środowiska |
| Cloud (CCE) | płatna | chmura |
| MSP (CME) | płatna | multi-tenant |
Checkmk Raw = brak limitów hostów + darmowy monitoring
Dla małych i średnich środowisk Checkmk Raw Edition jest w pełni funkcjonalnym, darmowym rozwiązaniem bez limitów liczby hostów czy usług. Jedynym ograniczeniem jest oparcie na Nagios Core zamiast natywnym CMC, co wpływa na wydajność przy bardzo dużej liczbie hostów (powyżej kilku tysięcy).
Dla kogo jest Raw Edition?
Checkmk Raw sprawdza się doskonale dla organizacji monitorujących od kilkudziesięciu do kilku tysięcy hostów, które potrzebują solidnego, darmowego rozwiązania bez komercyjnych licencji. Działa szczególnie dobrze w środowiskach MŚP, home labach, szkołach i uczelniach.
Checkmk Raw sprawdzi się gdy:
- chcesz wdrożyć monitoring w kilka godzin
- masz od 10 do 5000 hostów
- nie chcesz zarządzać bazą danych SQL
- cenisz automatyzację
Idealne dla:
- homelab
- firmy IT
- szkoły / uczelnie
- środowiska DevOps
03. Checkmk Raw vs Zabbix – które lepsze?
Zabbix i Checkmk Raw to dwa najpopularniejsze darmowe (open source) systemy monitorowania infrastruktury IT. Oba narzędzia mają podobne możliwości, ale różnią się filozofią, architekturą i sposobem pracy.
Filozofia i podejście do konfiguracji
Zabbix jest bardziej elastyczny i konfigurowalny. Dosłownie wszystko można w nim skonfigurować — od progów alertów, przez reguły discovery, po sposób zbierania danych. To jednak oznacza, że wymaga znacznie więcej czasu na wstępną konfigurację. Świeżo zainstalowany Zabbix to właściwie pusta powłoka, którą trzeba samodzielnie wypełnić szablonami i regułami.
Checkmk reprezentuje filozofię „działa od razu”. Po zainstalowaniu agenta na hoście i dodaniu go do monitorowania, Checkmk automatycznie wykrywa dziesiątki usług (CPU, RAM, dyski, interfejsy sieciowe, procesy systemowe, usługi Windows itp.) bez żadnej dodatkowej konfiguracji. To ogromna oszczędność czasu.
Porównanie techniczne
| Kryterium | Checkmk Raw | Zabbix |
|---|---|---|
| Licencja | GPL v2 | GPL v2 |
| Język backendu | Python, C | C (serwer), Go (agent) |
| Baza danych | RRDtool (metryki), SQLite/conf | MySQL / PostgreSQL / Oracle |
| Auto-Discovery usług | Wbudowane, automatyczne | Wymaga konfiguracji reguł |
| Protokół agenta | TCP 6556 (plain/TLS) | TCP 10050 (Zabbix Protocol) |
| Obsługa SNMP | v1, v2c, v3 + auto MIB walk | v1, v2c, v3 |
| Próg alertu | Predefined + WARN/CRIT levels | Expressions + trigger functions |
| Czas do pracy | Kilkadziesiąt minut | Kilka godzin do dni |
| Skalowanie | Do ~5000 hostów (Raw) | Dziesiątki tysięcy hostów |
| Aktywny monitoring URL | Wbudowany | Wbudowany |
| API | REST API (v2) | Zabbix API (JSON-RPC) |
| Docker / Kubernetes | Natywny plugin | Przez template/plugin |
| Interfejs webowy | Nowoczesny React UI | Nowoczesny (od v6.0) |
| Krzywa uczenia się | Łagodna | Stroma |
| Społeczność | Duża, aktywne forum | Bardzo duża, dojrzała |
| Wbudowane dashboardy | Automatyczne | Wymagają konfiguracji |
Kiedy wybrać Checkmk?
- Chcesz szybko wdrożyć monitoring bez wielodniowej konfiguracji.
- Twoja infrastruktura to do kilku tysięcy hostów.
- Zależy Ci na automatycznym wykrywaniu wszystkiego, co dzieje się na hostach.
- Nie masz dedykowanego DBA — Checkmk nie wymaga zewnętrznej bazy danych.
- Planujesz ewentualne przejście na wersję Enterprise z zachowaniem całej konfiguracji.
Kiedy wybrać Zabbix?
- Potrzebujesz monitorować dziesiątki tysięcy hostów i zależy Ci na wydajności.
- Chcesz pełnej kontroli nad każdym aspektem konfiguracji.
- Masz doświadczony zespół z czasem na wstępne wdrożenie.
- Potrzebujesz zaawansowanych funkcji statystycznych i prognozowania wbudowanych w silnik.
- Twoja organizacja korzysta już z MySQL/PostgreSQL i chce je wykorzystać.
Ważna uwaga o bazie danych
Checkmk Raw nie używa relacyjnej bazy danych SQL do przechowywania metryk — korzysta z RRDtool, co jest doskonałym rozwiązaniem dla danych szeregów czasowych. Oznacza to jednak, że nie możesz wykonywać dowolnych zapytań SQL na danych historycznych, jak ma to miejsce w Zabbix.
04. Architektura Checkmk (jak działa „pod spodem”)
Zrozumienie architektury Checkmk pomaga w prawidłowej konfiguracji i diagnozowaniu problemów. Poniżej przedstawiono przepływ danych w typowym wdrożeniu.
Przeglądarka ↕ HTTPS Apache + mod_wsgi ↕ Checkmk GUI (React)
↕
WATO / Configuration → generuje → Nagios Core (scheduler)
↕ LiveStatus socket
Livestatus API ↔ Event Console ↔ Notification Engine
↕ TCP 6556 / SNMP
Agent Linux/Win SNMP Device Docker / API Pasywne (NSCA)
Kluczowe komponenty
Nagios Core — w wersji Raw pełni rolę schedulera. Definiuje harmonogram sprawdzeń, ale samo pobieranie danych odbywa się przez Check Helper Checkmk, nie przez pluginy Nagios.
Checkmk Micro Core (CMC) — zastępuje Nagios Core w wersjach komercyjnych. Napisany w C++, jest wielokrotnie szybszy i zużywa znacznie mniej zasobów. W Raw Edition go nie ma.
Checkmk Agent — mały demon uruchomiony na monitorowanym hoście. Nasłuchuje na porcie TCP 6556. Gdy serwer Checkmk się połączy, agent wykonuje lokalne skrypty/pluginy i zwraca wyniki w postaci tekstowej. Nie przechowuje żadnego stanu.
Livestatus — socket Unix/TCP do zapytań na żywo o status wszystkich hostów i usług. Zastępuje bazy danych SQL w Nagios dla tego celu — jest znacznie szybszy.
RRDtool — biblioteka do przechowywania danych szeregów czasowych w plikach .rrd z automatyczną konsolidacją (średnia, min, max). Każda usługa ma własny zestaw plików RRD.
05. Instalacja Checkmk Raw (Docker – najszybsza metoda)
Checkmk dostarcza gotowe paczki .deb , .rpm oraz docker dla popularnych dystrybucji Linux. Serwer Checkmk nie powinien być instalowany na Windowsie — działa wyłącznie na Linuksie.
Wymagania systemowe
Minimalne
2 CPU cores, 2 GB RAM, 20 GB dysk. Do ~100 hostów.
Zalecane
4 CPU cores, 8 GB RAM, 100 GB dysk SSD. Do ~1000 hostów.
Produkcja
8+ CPU cores, 16+ GB RAM, 500 GB+ SSD. Kilka tysięcy hostów.
Obsługiwane systemy
Ubuntu 20.04, 22.04, 24.04 · Debian 10, 11, 12 · CentOS/AlmaLinux/Rocky 8, 9 · RHEL 8, 9 · SUSE SLES 15. W tym poradniku używamy Ubuntu 22.04 LTS.
Krok 1 — Instalacja Docker (Debian)
- zainstalowany Docker
- zainstalowany Docker Compose
Skonfiguruj repozytorium apt dla Docker.
# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
sudo apt update
Zainstaluj pakiety Docker.
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Sprawdzenie:
docker --version
docker compose version
Plik docker-compose.yml
Utwórz plik:
nano docker-compose.yml
Wklej:
services:
checkmk:
image: "checkmk/check-mk-raw:2.4.0-latest"
container_name: "monitoring"
environment:
- CMK_PASSWORD=Twoje_haslo <--- Tutaj wpisz Swoje hasło
- TZ=Europe/Warsaw
volumes:
- monitoring:/omd/sites
tmpfs:
- /opt/omd/sites/cmk/tmp:uid=1000,gid=1000
ports:
- 8080:5000
- 8000:8000
restart: always
volumes:
monitoring:
Krok 2 — Uruchomienie kontenera
docker compose up -d

Po tych krokach interfejs webowy jest dostępny pod adresem: http://<IP_SERWERA>:8080

Pierwsze logowanie i zmiana hasła
Zaloguj się przy użyciu nazwy użytkownika cmkadmin i hasła wygenerowanego podczas tworzenia instancji. Po zalogowaniu natychmiast zmień hasło w menu: User → Change password.

Jak dodać host Linux do Checkmk?
Kliknij na Setup / Linux

Kliknij prawym myszy na plik check-mk-agent_2.4.0p24-1_all.deb i Kopiuj adres linku (obsługa systemów opartych na Debianie)

Kliknij prawym myszy na plik check-mk-agent-2.4.0p24-1.noarch.rpm i Kopiuj adres linku (Fedora, RHEL itd.)

Przejdź do serwera który chcesz monitorować i wprowadź komendę (bazuję na systemach Debian):
wget http://192.168.1.74:8080/cmk/check_mk/agents/check-mk-agent_2.4.0p24-1_all.deb

Następnie nadaj uprawnienia wykonywania (execute) dla pliku i go zainstaluj:
chmod +x check-mk-agent_2.4.0p24-1_all.deb
dpkg -i check-mk-agent_2.4.0p24-1_all.deb

Wróć do Checkmk wybierz Setup / Hosts

Kliknij Add host to the monitoring

Nadaj nazwę w Hostname, zaznacz IP address family / IPv4 only oraz IPv4 address podaj adres IP serwera na którym zainstalowałeś plik check-mk-agent_2.4.0p24-1_all.deb

Kliknij na Save & run service discovery (by rozpocząć proces propagowania danych serwera)

Po chwili pokażą się usługi które będą monitorowane na serwerze. Kliknij Accept all a następnie na changes

Aktywuj zmiany klikając na Active on selected sites i poczekaj na Progress aż pokaże się zielony napis Success

Przejdź do Monitor / All hosts

Gdy klikniesz na utworzony host ujrzysz stan (State) Pend, po odczekaniu 2-3 minut zaczną napływać dane z serwera do Checkmk

W pełni monitorowany serwer, przykład:

Rejestracja TLS (bardzo ważne)
cmk-agent-ctl register --hostname debian --server 192.168.1.74:8000 --site cmk --user cmkadmin --password Twoje_haslo
Po chwili pojawi się rejestracja certyfikatu, wpisz „y” i zatwierdź. Registration complete oznacza prawidłową instalację certyfikatu:

TLS w Checkmk – dlaczego jest ważny?
Domyślnie agent działa w plain TCP (port 6556).
To NIE jest bezpieczne w produkcji.
Rozwiązanie: cmk-agent-ctl
Zapewnia:
- szyfrowanie TLS
- autoryzację hostów
- zarządzanie certyfikatami
Jak dodać host Windows do Checkmk?
Kliknij na Setup / Windows

Kopiuj adres linku pliku check_mk_agent.msi

Wklej link do przeglądarki internetowej w Windows, po pobraniu pliku kliknij 3 kropki i kliknij Zachowaj

Przy Usuń kliknij 3 kropki i kliknij Zachowaj mimo to

Uruchom instalator, w sekcji Produkt Features zaznacz Clean installation i kliknij Next

Kliknij na ikonę Windowsa wyszukaj cmd, uruchom Wiersz polecenia / Uruchom jako administrator

Dwa razy wpisz cd.. i zatwierdz Enter, przejdź do ścieżki Program Files (x86)\checkmk\service
cd C:\Program Files (x86)\checkmk\service

Analogicznie, wybierz Setup / Hosts

Kliknij Add host

Analogicznie podaj Host name, zaznacz IP address family / IPv4 only oraz IPv4 address podaj adres IP Windowsa na którym zainstalowałeś plik check_mk_agent.msi

Kliknij na Save & run service discovery (by rozpocząć proces propagowania danych serwera)
Wróć do Windows i wprowadź komendę, gdzie –hostname musi się zgadzać z Hostname, który podałeś w Checkmk. Za password wpisz hasło do logowania się jako administrator Checkmk:
cmk-agent-ctl register --hostname win11 --server 192.168.1.74:8000 --site cmk --user cmkadmin --password Twoje_haslo

Po chwili pojawi się rejestracja certyfikatu, wpisz „y” i zatwierdź. Registration complete oznacza prawidłową instalację certyfikatu:

Wróć do Checkmk i kliknij Rescan

Po chwili pokażą się usługi które będą monitorowane na serwerze. Kliknij Accept all a następnie na changes

Aktywuj zmiany klikając na Active on selected sites i poczekaj na Progress aż pokaże się zielony napis Success

Podsumowanie i dobre praktyki
Checkmk Raw Edition to potężne, darmowe narzędzie do monitorowania infrastruktury IT. Po przeczytaniu tego artykułu powinieneś mieć działający serwer z HTTPS, podłączone hosty Windows i Linux
Checklist po wdrożeniu
TLS/HTTPS włączone
Hasło cmkadmin zmienione
Firewall skonfigurowany
Powiadomienia działają
Backup konfiguracji
Monitoring serwera Checkmk!
Dobre praktyki bezpieczeństwa
- Zawsze używaj HTTPS — nigdy nie wystawiaj Checkmk na HTTP w sieci produkcyjnej.
- Ogranicz dostęp do GUI przez VPN lub whitelist IP w Apache (
Require ip 10.0.0.0/8). - Używaj silnych, unikalnych community strings SNMP — różnych dla każdej sieci.
- Regularnie aktualizuj Checkmk:
sudo omd update(po pobraniu nowego pakietu .deb). - Utwórz oddzielnych użytkowników monitorowania z minimalnym dostępem zamiast używać cmkadmin do wszystkiego.
- Skonfiguruj backup całego katalogu
/omd/sites/monitoring/— to jedyne miejsce przechowywania danych CMK.
FAQ – najczęstsze pytania o Checkmk
Czy Checkmk jest darmowy?
Tak, Checkmk Raw (CRE) jest darmowy i open source.
Czy Checkmk wymaga bazy danych?
Nie, używa RRDtool zamiast MySQL/PostgreSQL.
Jaki port używa Checkmk agent?
Domyślnie TCP 6556.
Czy Checkmk jest lepszy od Zabbix?
Zależy – Checkmk jest szybszy w wdrożeniu, Zabbix bardziej elastyczny.
Checkmk Raw to bardzo wydajny i szybki do wdrożenia system monitoringu, który dzięki automatycznemu discovery i prostocie konfiguracji pozwala uruchomić monitoring w kilka godzin. W porównaniu do Zabbix oferuje mniej ręcznej konfiguracji, ale kosztem mniejszej elastyczności. Dzięki wsparciu TLS, SNMP i agentów dla wielu systemów nadaje się zarówno do małych homelabów, jak i dużych środowisk produkcyjnych.

