Контроль за ІТ-інфраструктурою є непростим завданням, проте такі інструменти, як Checkmk, значно спрощують цей процес.
Багато компаній розширюють свій технологічний арсенал, впроваджуючи хмарні рішення для підвищення продуктивності. Разом з тим, вони продовжують керувати власними мережами та локальною інфраструктурою. Такий перехід до гібридних інфраструктур вимагає особливого підходу до моніторингу, оскільки щосекунди генерується величезна кількість показників для різноманітних компонентів, таких як операційні системи, сховища, сервери, хмарні середовища та інше. Всі вони відіграють ключову роль у забезпеченні максимальної продуктивності застосунків.
Ці показники є важливими індикаторами для DevOps-команд, допомагаючи їм розуміти стан своєї інфраструктури. Саме тому організаціям потрібні рішення для моніторингу, які дозволять оперативно виявляти проблеми в роботі за допомогою показників, візуалізації та аналізу. Checkmk є одним з найпопулярніших та ефективних інструментів для моніторингу інфраструктури. У цій статті ми розглянемо, чому Checkmk заслуговує на таку високу оцінку та як зробити перші кроки з його використанням.
Що являє собою Checkmk?
Checkmk забезпечує постійний моніторинг будь-яких аспектів сучасних ІТ-середовищ, особливо ефективно працюючи з гібридними інфраструктурами. З одного боку, Checkmk є дуже гнучким і підтримує контейнери, хмарні ресурси та локальні системи, такі як комутатори та сервери. З іншого боку, налаштування та управління моніторингом є дуже простим процесом, оскільки Checkmk має вбудовані автоматичні сповіщення, засновані на досвіді ІТ та інших інтелектуальних функціях, які економлять значний час.
Для безкоштовного використання Checkmk є два варіанти: перший – Checkmk Raw Edition, повністю відкрита та безкоштовна версія без жодних обмежень. Другий варіант – пробна версія Checkmk Enterprise, що містить всі додаткові можливості Checkmk Enterprise Editions, але через 30 днів кількість хостів буде обмежена до 25.
Як Checkmk вирішує проблеми моніторингу?
Checkmk здатний моніторити додатки, сервери, бази даних, мережі, контейнери, сховища та багато іншого. Він має великий перелік, що налічує понад 2000 плагінів для моніторингу. Ці плагіни дозволяють розширювати можливості Checkmk для моніторингу конкретних технологій від різних постачальників. Серед популярних плагінів Checkmk можна виділити Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell. Завдяки такому широкому спектру плагінів, Checkmk є перспективним рішенням для моніторингу інфраструктури.
Для будь-якого рішення для моніторингу важлива швидкість та точність зчитування показників, а також налаштування інтелектуальних сповіщень. Checkmk відповідає усім цим вимогам. Завдяки функції автоматичного виявлення Checkmk здатен ідентифікувати понад 90% сервісів та пристроїв. Сьогодні більшість підприємств потребують масштабованості та автоматизації. У Checkmk ви можете з легкістю збільшувати потужність моніторингу від сотень до тисяч хостів, використовуючи його агенти для автоматизації.
Встановлення Checkmk у контейнер Docker
У цій статті ми розглянемо встановлення Checkmk Raw Edition в контейнер Docker на сервері Linux з Ubuntu 20.04. З Dockerhub ви можете завантажити контейнер Checkmk Docker. На сьогоднішній день його завантажили понад 5 мільйонів разів, що свідчить про його популярність та широке застосування.
Завантажте образ Docker з останньою версією Checkmk та запустіть його в контейнері за допомогою команди 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
Контейнер матиме назву «monitoring», веб-сервер буде слухати порт 5000 та відкриватиметься на порту 8080 хоста. Контейнер використовуватиме тимчасову файлову систему та місцевий часовий пояс.
[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
Перевірити, чи завантажено образ Docker, можна за допомогою команди 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
Виконайте команду docker ps, щоб переконатися, що контейнер 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
Щоб отримати дані для входу у веб-інтерфейс Checkmk, потрібно переглянути журнал контейнера 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
Контейнер Checkmk Docker за замовчуванням запускається за адресою https://localhost:8080/cmk/check_mk. Результат наведеної вище команди повідомляє, що ім’я користувача – cmkadmin, а пароль у нашому випадку – ClFxBPre. Відкрийте цю адресу в веб-браузері та увійдіть, використовуючи ці облікові дані.
Після входу в систему з’явиться головна інформаційна панель. Наразі вона порожня, оскільки не додано жодного хоста.
Моніторинг Docker за допомогою Checkmk
Зазвичай агент Checkmk встановлюють на машину, де розміщені контейнери Docker, а потім використовують плагін Checkmk для Docker для моніторингу всіх контейнерів. Цей плагін (mk_docker.py) використовує Docker Python API для відстеження контейнерів Docker та отримання повної видимості їх стану та продуктивності в режимі реального часу. Детальніше про моніторинг Docker за допомогою Checkmk можна прочитати на сайті Checkmk.
Оскільки в нашому середовищі Docker запущено лише один контейнер, контейнер Checkmk Docker, ми просто скористаємося агентом Checkmk, який працює в контейнері Docker, і не будемо встановлювати Checkmk на хості Docker. Агент вже встановлений в контейнері Checkmk, тому нам потрібно просто додати контейнер Checkmk як хост.
Отримаємо IP-адресу, на якій працює служба Docker, за допомогою 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
У нашому випадку служба Docker працює за адресою 172.17.0.1. Наступним кроком є додавання служби Docker як хоста в Checkmk для її моніторингу.
- Перейдіть до Checkmk та натисніть «Налаштування» -> «Хости».
- Введіть ім’я хоста та IP-адресу і натисніть «Зберегти та перейти до конфігурації служби».
- Після цього Checkmk автоматично почне пошук сервісів.
Прокрутіть вниз, щоб переглянути сервіси моніторингу, що працюють на хості Docker. Ви побачите, що сервіси наразі не відстежуються. Для моніторингу всіх сервісів найпростішим рішенням є натиснути «Виправити все». Якщо ж ви бажаєте налаштувати, які сервіси слід відстежувати, ви також можете зробити це детально. Натисніть на знак «+», якщо ви бажаєте додати сервіс до моніторингу.
Після вибору сервісів, які необхідно відстежувати, вони з’являться на вкладці «Відстежувані сервіси». Ви отримаєте інформацію про стан кожного відстежуваного сервісу. Натиснувши на знак «?», ви перемістите цей сервіс до списку невизначених сервісів. Натиснувши на знак «X», ви перемістите сервіс на вкладку «Вимкнені сервіси».
Ми вимкнули чотири сервіси, тому бачимо їх на вкладці «Вимкнені сервіси».
Після завершення додавання сервісів необхідно активувати зміни, щоб вони почали працювати.
- Натисніть на виділене поле з жовтим знаком оклику (!) у верхньому правому куті, щоб побачити незавершені зміни.
- Натисніть «Активувати» на вибраних сайтах.
Тепер ви успішно моніторите служби Docker за допомогою Checkmk!
Висновок
Це основна інформація про Checkmk, інструмент для моніторингу інфраструктури. Це дуже простий у використанні інструмент, який варто спробувати для моніторингу виробничого середовища. Рекомендуємо спробувати безкоштовну версію Checkmk, щоб почати моніторинг.