Мониторинг стал проще: как начать работу с Checkmk

Опубликовано: 2021-11-24

Мониторинг ИТ-инфраструктуры сложен, но такой инструмент, как Checkmk, упрощает его.

Многие организации добавили облачные технологии в свой технологический стек, чтобы повысить производительность своих продуктов. В то же время они часто продолжают использовать свои собственные сети и локальную инфраструктуру. Этот переход к гибридным инфраструктурам необходимо учитывать при мониторинге из-за огромного количества метрик, генерируемых каждую секунду для различных компонентов, таких как операционная система, хранилище, сервер, облачные среды и т. д. Все они важны для обеспечения максимальной производительности приложений. производительность.

Эти показатели являются важным сигналом для команд DevOps, чтобы они могли понять состояние своей инфраструктуры. Вот почему организациям необходимо решение для мониторинга, которое поможет им быстро выявлять проблемы в работе с помощью метрик, визуализаций и аналитики. Checkmk — один из самых популярных и полезных инструментов мониторинга инфраструктуры. В этой статье я расскажу вам, почему Checkmk заслуживает своей хорошей репутации и как вы можете сделать с ним первые шаги.

Что такое Чекмк?

Checkmk постоянно проверяет работу любого аспекта современной ИТ-среды и особенно хорошо подходит для гибридных инфраструктур. С одной стороны, Checkmk является гибким и поддерживает контейнеры, облачные ресурсы и локальные системы, такие как коммутаторы и серверы. С другой стороны, очень легко начать работу и управлять мониторингом, потому что Checkmk поставляется с автоматическими оповещениями, основанными на большом опыте в области ИТ, и другими интеллектуальными функциями, которые сэкономят вам много времени.

Если вы хотите использовать Checkmk бесплатно, у вас есть два варианта: во-первых, вы можете выбрать Checkmk Raw Edition, которая полностью открыта и бесплатна для использования без каких-либо ограничений. Во-вторых, есть Checkmk Enterprise Trial Edition, в котором есть все дополнительные функции Checkmk Enterprise Editions, но через 30 дней количество хостов будет ограничено до 25.

Как Checkmk решает проблему?

Checkmk может отслеживать приложения, серверы, базы данных, сети, контейнеры, хранилища и многое другое. Он предоставляет огромный список из более чем 2000 плагинов для мониторинга. С этими плагинами. Checkmk может быть расширен для мониторинга конкретных технологий от разных поставщиков, доступных на рынке. Несколько популярных подключаемых модулей Checkmk предназначены для Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell. Checkmk с его более чем 2000 подключаемыми модулями выделяется как очень многообещающее решение для мониторинга инфраструктуры, доступное в настоящее время.

Кроме того, для любого решения для мониторинга крайне важно, насколько быстро и правильно они могут считывать показатели и настраивать интеллектуальные оповещения и уведомления. Решение Checkmk соответствует всем этим критериям. Благодаря функции автоматического обнаружения Checkmk может идентифицировать более 90% служб и устройств. Сейчас большинству предприятий требуется масштабируемость и автоматизация. Вы можете легко масштабировать мощность мониторинга от сотен хостов до тысяч хостов в Checkmk и использовать его агенты, доступные для автоматизации.

Установите Checkmk в контейнер Docker

В этой статье я собираюсь установить Checkmk Raw Edition в контейнере Docker на сервере Linux, работающем на Ubuntu 20.04. С Dockerhub вы можете скачать контейнер Checkmk Docker. На данный момент у него более 5 миллионов запросов, что говорит о том, насколько популярен и широко используется Checkmk.

проверка докерхаба

Возьмите образ 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

Имя контейнера будет «мониторинг», веб-сервер будет прослушивать порт 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 работает только один контейнер 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 и нажмите «Настройка» -> «Хосты».

проверить хосты

  • Нажмите «Добавить хост».

checkmk добавить хост

  • Теперь укажите имя хоста и IP-адрес и нажмите «Сохранить и перейти к настройке службы».

докер хоста checkmk

  • Как только вы это сделаете, Checkmk автоматически запустит обнаружение службы.

докер-сервис checkmk

Прокрутите вниз, чтобы увидеть службы мониторинга, работающие на хосте Docker. Вы можете видеть, что в настоящее время службы не отслеживаются. Если вы хотите все контролировать, самое простое решение — нажать «Исправить все». Если вы хотите настроить, какие службы следует отслеживать, вы также можете сделать это подробно. Нажмите на знак + , если вы хотите отслеживать службу.

список служб докера checkmk

После того, как вы выберете службы, которые хотите отслеживать, они появятся на вкладке «Мониторинговые службы». Вы получите все сведения о состоянии для каждой службы, которую вы отслеживаете. Если нажать на ? знак, эта служба будет перемещена в список неопределившихся служб. Если вы нажмете на знак X , служба переместится на вкладку «Отключенные службы».

проверенные сервисы checkmk

Я отключил четыре службы, поэтому я вижу их на вкладке отключенных служб.

checkmk отключенные службы

Когда вы закончите добавлять службы, вам нужно активировать изменения, прежде чем они будут запущены в производство.

  • Нажмите на выделенное поле с желтым восклицательным знаком (!) в правом верхнем углу, чтобы увидеть ожидающие изменения.
  • Нажмите Активировать на выбранных сайтах .

Вы успешно отслеживали службы Docker с помощью Checkmk!

Вывод

Вот и все о Checkmk, инструменте мониторинга инфраструктуры. Это очень простой в использовании инструмент, который вы должны попробовать контролировать в своей производственной среде. Я рекомендую попробовать Checkmk Free Edition, чтобы начать мониторинг.