監控變得簡單:如何開始使用 Checkmk

已發表: 2021-11-24

IT 基礎架構監控很複雜,但 Checkmk 之類的工具可以讓它變得更容易。

許多組織已將雲原生技術添加到其技術堆棧中,以提高其產品的性能。 同時,他們經常繼續運行自己的網絡和本地基礎設施。 由於每秒為各種組件(如操作系統、存儲、服務器、雲環境等)生成大量指標,因此需要在監控中解決這種向混合基礎架構的轉變。它們對於確保應用程序在峰值運行時都很重要表現。

這些指標是 DevOps 團隊了解其基礎設施健康狀況的重要信號。 這就是為什麼組織需要一個監控解決方案來幫助他們通過指標、可視化和分析快速識別生產中的問題。 Checkmk 是最流行和最有用的基礎設施監控工具之一。 在本文中,我將告訴您為什麼 Checkmk 值得擁有良好的聲譽,以及您如何邁出第一步。

什麼是 Checkmk?

Checkmk 不斷檢查現代 IT 環境的任何方面的功能,特別適合混合基礎架構。 一方面,Checkmk 非常靈活,支持容器、雲資產以及交換機和服務器等本地系統。 另一方面,開始和管理您的監控真的很容易,因為 Checkmk 帶有基於大量 IT 專業知識和其他智能功能的自動警報,可以為您節省大量時間。

如果您想免費使用 Checkmk,您有兩個選擇:首先,您可以選擇 Checkmk Raw Edition,它是完全開源的,可以免費使用,沒有任何限制。 其次,Checkmk Enterprise Trial Edition 具有 Checkmk Enterprise Edition 的所有附加功能,但 30 天后主機數量將限制為 25 個。

Checkmk 是如何解決這個問題的?

Checkmk 可以監控應用程序、服務器、數據庫、網絡、容器、存儲等等。 它提供了超過 2,000 個監控插件的海量列表。 有了這些插件。 Checkmk 可以擴展以監控來自市場上不同供應商的特定技術。 一些流行的 Checkmk 插件適用於 Docker、Kubernetes、Cisco、Nginx、VMware、Linux、Windows、AWS、Dell。 Checkmk 擁有 2,000 多個插件,是目​​前可用的非常有前途的基礎設施監控解決方案。

此外,對於任何監控解決方案,他們能夠以多快和正確的速度讀取指標並設置智能警報和通知也至關重要。 Checkmk 的解決方案符合所有這些標準。 憑藉其自動發現功能,Checkmk 可以識別超過 90% 的服務和設備。 現在,大多數企業都需要可擴展性和自動化。 您可以在 Checkmk 中輕鬆地將監控容量從數百台主機擴展到數千台主機,並利用其可用於自動化的代理。

在 Docker 容器中安裝 Checkmk

在本文中,我將在運行 Ubuntu 20.04 的 Linux 服務器上的 Docker 容器中安裝 Checkmk Raw Edition。 從 Dockerhub,您可以下載 Checkmk Docker 容器。 到目前為止,它有近 500 萬次拉動,這說明了 Checkmk 的流行和廣泛使用。

checkmk dockerhub

獲取具有最新 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

容器的名稱將是“監控”,網絡服務器將偵聽端口 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 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 Web 界面的登錄詳細信息,請打印 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。 在網絡瀏覽器中打開地址並使用您的憑據登錄。

檢查登錄

登錄後,這就是將出現的“主儀表板”。 它是空的,因為您還沒有添加任何主機。

檢查儀表板

使用 Checkmk 監控 Docker

通常,您會在託管 Docker 容器的機器上安裝 Checkmk 代理,然後使用 Docker 的 Checkmk 插件來監控所有容器。 這個插件 (mk_docker.py) 使用 Docker 的 Python-API 來跟踪 Docker 容器並全面了解它們的實時狀態和性能。 您可以在 Checkmk 網站上閱讀有關使用 Checkmk 進行 Docker 監控的更多詳細信息。

因為在我的 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上運行。 下一步是在 Checkmk 中添加 Docker 服務作為主機,以便對其進行監控。

  • 轉到 Checkmk 並單擊設置 -> 主機。

檢查主機

  • 點擊“添加主機”。

checkmk 添加主機

  • 現在提供主機名和 IP 地址,然後單擊“保存並轉到服務配置”。

checkmk 主機泊塢窗

  • 一旦你這樣做了,Checkmk 將自動啟動服務發現。

checkmk 碼頭工人服務

向下滾動查看 Docker 主機下運行的監控服務。 您可以看到服務當前未受到監控。 如果您想監控所有內容,最簡單的解決方案是單擊“全部修復”。 如果您想配置應該監控哪些服務,您也可以詳細執行此操作。 如果要監視服務,請單擊+號。

checkmk docker服務列表

選擇要監視的服務後,它們將出現在“受監視的服務”選項卡中。 您將獲得所監控的每項服務的所有狀態詳細信息。 如果點擊 簽名,該服務將移至未決定的服務列表。 如果您單擊X符號,該服務將移至“禁用服務”選項卡。

checkmk 監控的服務

我已經禁用了四個服務,所以我可以在禁用服務選項卡中看到它們。

checkmk 禁用服務

添加完服務後,您需要在更改投入生產之前激活這些更改。

  • 單擊右上角帶有黃色感嘆號(!)的突出顯示字段以查看待定更改。
  • 單擊在選定站點上激活

您已經使用 Checkmk 成功監控了 Docker 服務!

結論

這就是Checkmk,一個基礎設施監控工具。 這是一個非常易於使用的工具,您必須嘗試監控您的生產環境。 我建議嘗試使用 Checkmk 免費版來開始您的監控。