간편한 모니터링: Checkmk를 시작하는 방법
게시 됨: 2021-11-24IT 인프라 모니터링은 복잡하지만 Checkmk와 같은 도구를 사용하면 더 쉽게 모니터링할 수 있습니다.
많은 조직에서 제품 성능을 향상시키기 위해 기술 스택에 클라우드 네이티브 기술을 추가했습니다. 동시에 자체 네트워크와 온프레미스 인프라를 계속해서 운영하는 경우가 많습니다. 하이브리드 인프라로의 이러한 전환은 운영 체제, 스토리지, 서버, 클라우드 환경 등과 같은 다양한 구성 요소에 대해 매초 생성되는 엄청난 수의 메트릭으로 인해 모니터링에서 해결되어야 합니다. 이 모두는 애플리케이션이 최대로 실행되도록 하는 데 중요합니다. 성능.
이러한 지표는 DevOps 팀이 인프라의 상태를 이해하는 데 필수적인 신호입니다. 이것이 조직이 메트릭, 시각화 및 분석을 통해 프로덕션의 문제를 신속하게 식별하는 데 도움이 되는 모니터링 솔루션이 필요한 이유입니다. Checkmk는 가장 인기 있고 유용한 인프라 모니터링 도구 중 하나입니다. 이 기사에서는 Checkmk가 좋은 평판을 받을 자격이 있는 이유와 그 첫 단계를 수행하는 방법에 대해 설명합니다.
Checkmk는 무엇입니까?
Checkmk는 현대 IT 환경의 모든 측면의 기능을 지속적으로 확인하며 특히 하이브리드 인프라에 적합합니다. 한편으로 Checkmk는 유연하며 컨테이너, 클라우드 자산, 스위치 및 서버와 같은 온프레미스 시스템을 지원합니다. 반면에 Checkmk는 많은 시간을 절약할 수 있는 많은 IT 전문 지식 및 기타 지능형 기능을 기반으로 하는 자동 경고와 함께 제공되기 때문에 모니터링을 시작하고 관리하는 것이 정말 쉽습니다.
Checkmk를 무료로 사용하려면 두 가지 옵션이 있습니다. 첫째, 완전히 오픈 소스이며 제한 없이 무료로 사용할 수 있는 Checkmk Raw Edition으로 이동할 수 있습니다. 둘째, Checkmk Enterprise Edition의 모든 추가 기능이 포함된 Checkmk Enterprise Trial Edition이 있지만 30일 후에는 호스트 수가 25개로 제한됩니다.
Checkmk는 어떻게 문제를 해결합니까?
Checkmk는 애플리케이션, 서버, 데이터베이스, 네트워크, 컨테이너, 스토리지 등을 모니터링할 수 있습니다. 2,000개가 넘는 모니터링 플러그인의 방대한 목록을 제공합니다. 이러한 플러그인으로. Checkmk는 시장에서 사용 가능한 다양한 공급업체의 특정 기술을 모니터링하도록 확장될 수 있습니다. 몇 가지 인기 있는 Checkmk 플러그인은 Docker, Kubernetes, Cisco, Nginx, VMware, Linux, Windows, AWS, Dell용입니다. 2,000개 이상의 플러그인을 갖춘 Checkmk는 현재 사용 가능한 매우 유망한 인프라 모니터링 솔루션으로 두각을 나타내고 있습니다.
또한 모든 모니터링 솔루션의 경우 얼마나 빠르고 정확하게 메트릭을 읽고 스마트 경고 및 알림을 설정할 수 있는지가 중요합니다. Checkmk의 솔루션은 이러한 모든 기준을 충족합니다. 자동 검색 기능을 통해 Checkmk는 서비스 및 장치의 90% 이상을 식별할 수 있습니다. 이제 대부분의 비즈니스에는 확장성과 자동화가 필요합니다. Checkmk에서 쉽게 모니터링 용량을 수백 호스트에서 수천 호스트로 확장하고 자동화에 사용할 수 있는 에이전트를 활용할 수 있습니다.
Docker 컨테이너에 Checkmk 설치
이 기사에서는 Ubuntu 20.04에서 실행되는 Linux 서버의 Docker 컨테이너에 Checkmk Raw Edition을 설치하려고 합니다. Dockerhub에서 Checkmk Docker 컨테이너를 다운로드할 수 있습니다. 지금까지 거의 500만 개 이상의 가져오기가 있으며 이는 Checkmk가 얼마나 인기 있고 널리 사용되는지 알려줍니다.

최신 Checkmk 버전으로 Docker 이미지를 가져오고 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 images 명령을 실행하여 Docker 이미지가 다운로드되었는지 확인할 수 있습니다.
[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-exporterCheckmk 웹 인터페이스에 대한 로그인 세부 정보를 얻으려면 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 STARTEDCheckmk Docker 컨테이너는 기본적으로 https://localhost:8080/cmk/check_mk 에서 실행됩니다. 위 명령의 출력은 사용자 이름이 cmkadmin이고 암호가 제 경우에는 ClFxBPre임을 알려줍니다. 웹 브라우저에서 주소를 열고 자격 증명을 사용하여 로그인합니다.


로그인하면 나타나는 '메인 대시보드'입니다. 아직 호스트를 추가하지 않았기 때문에 비어 있습니다.

Checkmk를 사용하여 Docker 모니터링
일반적으로 Docker 컨테이너를 호스팅하는 시스템에 Checkmk 에이전트를 설치한 다음 Docker용 Checkmk 플러그인을 사용하여 모든 컨테이너를 모니터링합니다. 이 플러그인(mk_docker.py)은 Docker의 Python-API를 사용하여 Docker 컨테이너를 추적하고 실시간 상태 및 성능에 대한 완전한 가시성을 얻습니다. Checkmk 웹사이트에서 Checkmk를 사용한 Docker 모니터링에 대한 자세한 내용을 읽을 수 있습니다.
내 Docker 환경에는 내 Checkmk Docker 컨테이너 하나만 실행되고 있기 때문에 Docker 컨테이너에서 실행되는 Checkmk 에이전트만 사용하고 내 Docker 호스트에 Checkmk를 설치하지 않습니다. 에이전트는 Checkmk 컨테이너에 사전 설치되어 있으므로 내 Checkmk 컨테이너를 호스트로 추가하기만 하면 됩니다.
터미널에서 ifconfig 를 사용하여 Docker 서비스가 실행되고 있는 IP 주소를 알아봅시다.
[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 표시를 클릭하면 서비스가 '비활성화된 서비스' 탭으로 이동합니다.

4개의 서비스를 비활성화했으므로 비활성화된 서비스 탭에서 볼 수 있습니다.

서비스 추가가 완료되면 프로덕션에 들어가기 전에 변경 사항을 활성화해야 합니다.
- 보류 중인 변경 사항을 보려면 오른쪽 상단 모서리에 노란색 느낌표 (!) 가 있는 강조 표시된 필드를 클릭하십시오.
- 선택한 사이트에서 활성화를 클릭합니다.
Checkmk를 사용하여 Docker 서비스를 성공적으로 모니터링했습니다!
결론
이것이 인프라 모니터링 도구인 Checkmk에 관한 것이었습니다. 프로덕션 환경을 모니터링해야 하는 매우 사용하기 쉬운 도구입니다. 모니터링을 시작하려면 Checkmk Free Edition을 사용하는 것이 좋습니다.
