ホーム テクノロジー DEVOPS モニタリングが簡単に: Checkmk の使用を開始する方法

IT インフラストラクチャの監視は複雑ですが、Checkmk のようなツールを使用すると簡単になります。

多くの組織は、製品のパフォーマンスを向上させるために、技術スタックにクラウドネイティブ テクノロジーを追加しています。同時に、多くの場合、独自のネットワークとオンプレミス インフラストラクチャを引き続き実行します。このハイブリッド インフラストラクチャへの移行は、オペレーティング システム、ストレージ、サーバー、クラウド環境などのさまざまなコンポーネントに対して毎秒膨大な数のメトリクスが生成されるため、モニタリングで対処する必要があります。それらはすべて、アプリケーションを確実にピークで実行するために重要です。パフォーマンス。

これらの指標は、DevOps チームがインフラストラクチャの健全性を理解するために不可欠なシグナルです。このため、組織は、メトリクス、視覚化、分析を使用して本番環境の問題を迅速に特定できる監視ソリューションを必要としています。 Checkmk は、最も人気があり便利なインフラストラクチャ監視ツールの 1 つです。この記事では、Checkmk が高い評価を受けるに値する理由と、Checkmk を使って最初の一歩を踏み出す方法について説明します。

チェックエムクとは何ですか?

Checkmk は、最新の IT 環境のあらゆる側面の機能を常にチェックしており、特にハイブリッド インフラストラクチャに適しています。一方で、Checkmk は柔軟性があり、コンテナー、クラウド資産、およびスイッチやサーバーなどのオンプレミス システムをサポートします。一方、Checkmk には、多くの IT 専門知識に基づいた自動アラートや、時間を大幅に節約するその他のインテリジェントな機能が備わっているため、監視を開始して管理するのは非常に簡単です。

Checkmk を無料で使用したい場合は、2 つのオプションがあります。 1 つ目は、完全にオープンソースであり、制限なく無料で使用できる Checkmk Raw Edition を選択することです。 2 つ目は、 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 では監視能力を数百のホストから数千のホストまで簡単に拡張でき、自動化に利用できるエージェントを活用できます。

CheckmkをDockerコンテナにインストールする

この記事では、Ubuntu 20.04 で実行されている Linux サーバー上の Docker コンテナに Checkmk Raw Edition をインストールします。 Dockerhub から、 Checkmk Docker コンテナーをダウンロードできます。これまでにほぼ 500 万回以上のプルが行われており、Checkmk がいかに人気があり、広く使用されているかがわかります。

checkmkドッカーハブ
checkmkドッカーハブ
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」となり、Web サーバーはポート 5000 をリッスンし、ノードのポート 8080 で開きます。コンテナーは一時ファイル システムとローカル タイム ゾーンを使用します。

 @:~$ 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がダウンロードされたかどうかを確認できます。

 @:~$ 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 コンテナーが実行されているかどうかを確認します。

 @:~$ 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 コンテナー ログを出力します。

 @:~$ 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 です。 Web ブラウザでアドレスを開き、資格情報を使用してログインします。

checkmkログイン
checkmkログイン
checkmkログイン

ログインすると、これが「メイン ダッシュボード」として表示されます。まだホストを追加していないため、空になっています。

checkmk ダッシュボード
checkmk ダッシュボード
checkmk ダッシュボード

Checkmk を使用して Docker を監視する

通常、Docker コンテナをホストしているマシンに Checkmk エージェントをインストールし、Docker 用の Checkmk プラグインを使用してすべてのコンテナを監視します。このプラグイン (mk_docker.py) は、Docker の Python-API を使用して Docker コンテナを追跡し、リアルタイムのステータスとパフォーマンスを完全に可視化します。 Checkmk を使用した Docker 監視の詳細については、Checkmk Web サイトを参照してください。

私の Docker 環境では、Checkmk Docker コンテナという Docker コンテナが 1 つだけ実行されているため、Docker コンテナ内で実行されている Checkmk エージェントのみを使用し、Docker ホストには Checkmk をインストールしません。エージェントは Checkmk コンテナにプレインストールされているため、Checkmk コンテナをホストとして追加するだけで済みます。

ターミナル上でifconfigを使用して、Docker サービスが実行されている IP アドレスを取得しましょう。

 @:~$ 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 ホスト
checkmk ホスト
checkmk ホスト

  • 「ホストの追加」をクリックします。

checkmk ホストを追加
checkmk ホストを追加
checkmk ホストを追加

  • 次に、ホスト名と IP アドレスを入力し、[保存してサービス構成に移動] をクリックします。

checkmk ホスト ドッカー
checkmk ホスト ドッカー
checkmk ホスト ドッカー

  • これを実行すると、Checkmk はサービス検出を自動的に開始します。

checkmk ドッカー サービス
checkmk ドッカー サービス
checkmk ドッカー サービス

下にスクロールして、Docker ホストで実行されている監視サービスを確認します。現在、サービスが監視されていないことがわかります。すべてを監視したい場合、最も簡単な解決策は「すべて修復」をクリックすることです。どのサービスを監視するかを設定したい場合は、詳細に設定することもできます。サービスを監視する場合は、 +記号をクリックします。

checkmk docker サービスリスト
checkmk docker サービスリスト
checkmk docker サービスリスト

監視したいサービスを選択すると、「監視対象サービス」タブに表示されます。監視している各サービスのステータスの詳細をすべて取得できます。をクリックすると?サインすると、そのサービスは未定サービスリストに移動します。 X記号をクリックすると、サービスは [無効なサービス] タブに移動します。

checkmk 監視対象サービス

4 つのサービスを無効にしたので、[サービスの無効化] タブにそれらのサービスが表示されます。

checkmk がサービスを無効にしました
checkmk がサービスを無効にしました
checkmk がサービスを無効にしました

サービスの追加が完了したら、実稼働環境に移行する前に変更をアクティブ化する必要があります。

  • 右上隅にある黄色の感嘆符(!)の付いた強調表示されたフィールドをクリックすると、保留中の変更が表示されます。
  • [選択したサイトでアクティブ化]をクリックします。

Checkmk を使用して Docker サービスを正常に監視できました。

結論

以上、インフラ監視ツールCheckmkについてでした。これは非常に使いやすいツールなので、実稼働環境を監視するためにぜひ試してください。監視を開始するには、 Checkmk Free Editionを試してみることをお勧めします。

「モニタリングが簡単に: Checkmk の使用を開始する方法」についてわかりやすく解説!絶対に観るべきベスト2動画

【YaDoc】モニタリングの使い方
[JP] ソーシャルログインとソーシャルモニタリングについて

Share via
Copy link