Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. 概要

Checkmk を使用すると、ESXi ホストとその VM を監視することができます。 したがって、たとえば、ホスト上で、ディスク IO、データストアのパフォーマンス、物理ネットワークインターフェイスのステータス、さまざまなハードウェアセンサーなどを照会することができます。 Checkmk は、VM 用のチェックプラグインも多数提供しています。 これらのプラグインの包括的なリストは、チェックプラグインのカタログでご覧いただけます。

ピギーバックメカニズムを使用すると、VM データは、関連付けられているホストに直接表示されます。 したがって、VM 関連のデータは、実際に必要な場所で、VM の OS によってレポートされたデータと比較することができます。

vmware services

このデータへのアクセスは、通常のエージェントや SNMP ではなく、HTTP ベースの vSphere-API を通じて行われます。 つまり、ESXi ホストにエージェントやその他のソフトウェアをインストールする必要がなく、アクセス設定も非常に簡単です。

2. 設定

2.1. ESXi ホストシステム経由での設定

ESXi サーバーの監視の初期セットアップは非常に簡単で、5 分以内で完了します。 ただし、アクセスを設定する前に、以下の前提条件を満たしている必要があります。

  • ESXi サーバーにユーザーを定義しておく必要があります。 このユーザーには、読み取りアクセス権のみがあれば十分です。

  • ESXi サーバーを Checkmk でホストとして定義し、その監視エージェントをAPI integrations if configured, else Checkmk agent として設定しておく必要があります。 ヒント:ホスト名は、サーバー自体で認識されている名前と同じ名前に選択してください。

前提条件が満たされたら、Setup > VM, cloud, container > VMware ESX via vSphere ルールセットでルールを作成できます。 これは、定義されたホストに割り当てられるため、VMware 監視からデータを取得するには、標準エージェントの代わりにスペシャルエージェントが使用されます。

ESXi サーバーで定義されているユーザー名とパスワードを入力します。 ルールの条件は、Checkmk で定義されているホストに設定する必要があります。 これで最初のインストールは完了し、Checkmk はサーバーからデータを取得できるようになります。

vmware username

最後に、ホスト設定に戻り、サービスディスカバリーを実行します。 これにより、いくつかのサービスが見つかるはずです。

vmware discovery

通常どおり、変更をアクティブにしてください。 サービスが検出されない場合は、この記事の後半で説明する診断オプションを使用して、設定のエラーを検索することができます。

2.2. vCenter を使用して設定する

vCenter を使用できる場合は、個々のホストシステムから監視データを取得する代わりに、vCenter を呼び出すこともできます。 この方法には、さまざまな長所と短所があります。

利点 デメリット

vMotion を使用して VM が動的に割り当てられる状況での簡単な適用。

vCenter が利用できない場合は監視できません。

クラスタの RAM 使用状況全体を監視できます。

クラスタのノード内のハードウェア固有のデータ(RAM ディスクやネットワークカードなど)は監視できません。

両方の方法を組み合わせることも可能で、その場合は両方のメリットを最大限に活用できます。

vCenter の構成

この構成には、単一の ESXi サーバーでの構成と同様の前提条件があります。

  • vCenter に読み取りアクセス権を持つユーザーが存在する必要があります。

    • ライセンスステータスをチェックするには、Global.Licenses の許可を明示的に付与する必要がある場合があります。

  • vCenter は Checkmk でホストとして定義されており、その監視エージェントは次のように設定されています。API integrations if configured, else Checkmk agent

  • ESXi サーバーが Checkmk で既に設定されており、監視を統合したい場合は、vCenter での名前は Checkmk でホストとして設定されている名前と同じにしてください。

前述のように、VMware 監視のスペシャルエージェントのルールを作成します。Type of Query で vCenter を選択し、Checkmk で定義した適切なホストに条件を設定します。

vmware vcenter username

これで設定は完了です。 vCenter ホストのサービスディスカバリーを実行します。

ESXi ホストおよび vCenter から取得

両方の設定方法を組み合わせて使用する場合、データの取得が重複することを避けるために vCenter のルールは、特定のデータのみを取得するように設定することができます。 1 つの方法は、Datastores およびVirtual Machines に vCenter 経由でアクセスし、その他のデータは ESXi ホストから直接取得することです。 vCenter は全体的なステータスをレポートするため、どちらの設定でもライセンスの使用状況を取得することができます。

vmware data1

ESXi ホストをすでに構成している場合は、そのルールが適宜変更されます。 ここでは、Host Systems およびPerformance Counters へのアクセスのみが利用可能です。これらは、特定の ESXi サーバーに属しており、変更することはできません。 ライセンスステータスは、取得した ESXi サーバーにのみ適用されます。

vmware data2

2.3. VM の監視

デフォルトでは、サービスとしての VM のステータスのみが作成され、ESXi または vCenter に割り当てられます。 ただし、これらの VM からは、RAM やスナップショットなど、さらに多くの情報を取得することができます。 このデータはピギーバックデータとして保存され、Checkmk 内の VM に対応するホストに直接割り当てられます。

このデータを表示するには、VM を Checkmk でホストとして定義する必要があります。 もちろん、VM に Checkmk エージェントをインストールして、その機能を最大限に活用することもできます。 ピギーバックデータは、すでに利用可能なデータに追加されます。

ピギーバックデータの命名

Checkmk での VM のホスト名が VM の名前と一致する場合、割り当ては自動的に行われます。 一致しない場合、Checkmk にはピギーバック名をカスタマイズするためのさまざまなオプションがあります。 設定ルール自体では、以下のオプションを使用できます。

  • vSphere-API 経由でアクセスできる場合は、VM のオペレーティングシステムのホスト名を使用できます。

  • VM の名前には空白文字が含まれる場合、最初の空白の後に名前が切り詰められます。 または、空白をアンダーバーに置き換えることもできます。

vmware nametranslation

ホスト名が Checkmk で大きく異なる場合は、Setup > Agents > Access to agents > Host name translation for piggybacked hosts ルールを使用して明示的な割り当てを行うことができます。

vmware nametranslation2

ホストが Checkmk で設定されており、名前が一致する場合は、設定ルールで「Display VM power state on 」チェックボックスを有効にして、データを利用可能にするかどうか、および利用可能にする場所を選択できます。 ここで「The Virtual Machine 」を選択します。

vmware vms

ホストでサービスディスカバリーを実行すると、新しいサービスが識別され、有効化できるようになります。 サービスからの情報は、それぞれ異なる場合があることにご注意ください。 ESXi サーバーは、仮想マシンの RAM 使用状況を、マシン自身の OS が報告する内容とは異なって認識します。

vmware services

3. 診断オプション

3.1. 概要

エラーの原因を検索する場合、いくつかの「呼び出し先」があります。 データは ESXi/vCenter サーバーから送信されるため、エラーの検索はここから始めるのが論理的です。 その後、データが Checkmk サーバーに確実に送信され、そこで正しく処理および表示されることが重要です。

3.2. ESXi/vCenter サーバーの構成に関する問題

curl コマンドを使用すると、監視からサーバーにアクセスできるかどうかを確認できます。

OMD[mysite]:~$ curl -Ik https://myESXhost.my-domain.net
HTTP/1.1 200 OK
Date: Fri, 4 Nov 2016 14:29:31 GMT
Connection: Keep-Alive
Content-Type: text/html
X-Frame-Options: DENY
Content-Length: 5426

アクセスデータが正しく入力されているかどうか、および Checkmk がホストにアクセスできるかどうかは、コンソールでスペシャルエージェントを使用してテストできます。--help または-h オプションを使用すると、使用可能なオプションの完全なリストを表示できます。 この例では、grep を使用して、出力を特定のセクションとその後の 4 行に制限しています。完全な出力を表示するには、このオプションを省略するか、別のオプションでフィルタリングしてください。

OMD[mysite]:~$ share/check_mk/agents/special/agent_vsphere --debug --user myesxuser --secret myesxpassword -D myESXhost | grep -A4 esx_vsphere_objects
<<<esx_vsphere_objects:sep(9)>>>
hostsystem      myESXhost           poweredOn
hostsystem      myESXhost2          poweredOn
virtualmachine  myVM123             myESXhost   poweredOn
virtualmachine  myVM126             myESXhost   poweredOn

Checkmk がホストにアクセスできるかどうかは、コンソールで確認できます。 ここでは、出力も 4 行に制限されています。

OMD[mysite]:~$ cmk -d myESXhost | grep -A4 esx_vsphere_objects
<<<esx_vsphere_objects:sep(9)>>>
hostsystem      myESXhost           poweredOn
hostsystem      myESXhost2          poweredOn
virtualmachine  myVM123             myESXhost   poweredOn
virtualmachine  myVM126             myESXhost   poweredOn

あるいは、セットアップのホストの診断ページでテストを行うこともできます。

vmware agent test

ここまでの操作が正常に完了していれば、出力は一時ディレクトリに保存されているはずです。 そのようなファイルが作成されているかどうか、およびその内容が正しいかどうかは、次のようにして確認できます。

OMD[mysite]:~$ ll tmp/check_mk/cache/myESXhost
-rw-r--r-- 1 mysite mysite 17703 Nov  4 15:42 myESXhost
OMD[mysite]:~$ head -n5 tmp/check_mk/cache/myESXhost
<<<esx_systeminfo>>>
Version: 6.0
AgentOS: VMware ESXi
<<<esx_systeminfo>>>
vendor VMware, Inc.

3.3. ピギーバックデータの問題

Checkmk は、ピギーバックされた各ホストについて、テキストファイルを含むディレクトリを作成します。 このテキストファイルには、ホストに割り当てられるデータが含まれています。

OMD[mysite]:~$ ll tmp/check_mk/piggyback/
total 0
drwxr-xr-x 2 mysite mysite 60 Nov  4 15:51 myVM123/
drwxr-xr-x 2 mysite mysite 60 Nov  4 15:51 myVM124/
drwxr-xr-x 2 mysite mysite 60 Nov  4 15:51 myVM126/
drwxr-xr-x 2 mysite mysite 60 Nov  4 15:51 myESXhost2/
OMD[mysite]:~$ ll tmp/check_mk/piggyback/myVM123/
-rw-r--r-- 1 mysite mysite 1050 Nov  4 15:51 myESXhost

これらのディレクトリまたはファイルが存在しない場合は、スペシャルエージェントによって作成されていません。 VM のデータがエージェントの出力に含まれているかどうかを確認できます。 この状況が発生した場合は、ESXi/vCenter ホストの構成ルールで、データ取得が有効になっているかどうかを確認してください。

OMD[mysite]:~$ grep "<<<<myVM123>>>>" tmp/check_mk/cache/myESXhost
<<<<myVM123>>>>
Tip

ピギーバックデータ用のディレクトリが非常に多い場合、ホストに割り当てられていないディレクトリを見つけるのが非常に困難になることがあります。 コマンドcmk-piggyback list orphans を使用すると、データはあるが Checkmk でホストとしてまだ作成されていない、孤立したピギーバックホストをすべて見つけることができます。

4. ファイルおよびディレクトリ

ファイルパス 機能

~/tmp/check_mk/piggyback/

Checkmk は、ピギーバックデータをここに保存します。ピギーバックされたホストごとに、そのホスト名と同じ名前のサブフォルダが作成されます。このサブフォルダには、そのホストのデータを含むテキストファイルが保存されます。ファイル名は、データを提供するピギーバックホストの名前です。

~/tmp/check_mk/cache/

ここでは、すべてのホストからの最新のエージェント出力が一時的に保存されます。ホストのファイルの内容は、cmk -d myserver123 コマンドと同じです。

~/share/check_mk/agents/special/agent_vsphere

ESXi および vCenter サーバーのクエリを実行するための特別なエージェントです。このスクリプトは、テスト目的で手動で実行することもできます。

このページでは