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. Windows エージェント

Checkmk は、創業当初から Windows サーバーの監視を最も重要なタスクのひとつとしてきました。 そのため、他のすべてのサーバーオペレーティングシステムと同様に、Checkmk は Windows 用の独自のエージェント、つまり最小限の機能と高いセキュリティを備えたエージェントプログラムも提供しています。

Checkmk バージョン2.1.0 のリリースに伴い、このエージェントプログラムに新しいコンポーネントであるエージェントコントローラーが追加されました。 エージェントコントローラーは、エージェントプログラムの上流に位置し、エージェントプログラムにクエリを実行し、エージェントプログラムの代わりに Checkmk サーバーと通信します。 このために、エージェントコントローラーは、Checkmk サーバー上で実行されるプロセスであるエージェントレシーバーに自身を登録します。

つまり、Windows エージェントはエージェントプログラムとその利点を引き継ぎます。 一方、通信の TLS 暗号化やデータ圧縮などの新機能が追加できるよう、プログラムを補完します。

エージェントコントローラーとの登録済み、暗号化、圧縮されたプルモードは、Checkmk サーバーとエージェントの両方が少なくともバージョン2.1.0 以降である場合に、すべての Checkmk エディションで使用できます。 プッシュモードはCheckmk Cloud以降、つまり Checkmk Cloud および Checkmk MSP で使用できます。 通信方向を逆にすることで、ファイアウォールの内側に位置するホストの監視が容易になります。 プッシュモードは通常、Checkmk Cloud 以降で利用できる Checkmk エージェントの自動登録と組み合わせて使用されます。

Tip

デフォルト設定を使用するエージェントパッケージは、インストール直後にポート 6556 を開きます。 このポートを介して、要求したすべての人に暗号化されていないエージェントデータを出力します。 インターネットからアクセス可能なホストの場合は、インストール前にファイアウォール設定で、選択したホストのみがこのポートにアクセスできるようにしてください。 インストール後、すぐに登録と TLS 暗号化の有効化を行ってください。

互換性の理由から、エージェントはMicrosoft Windows NT製品ライン(エディション)の現在のバージョンのみをサポートしています。 これらのバージョンについては、リリースノート記事で詳しく確認できます。

重要:その他の Windows エディションは公式にはサポートされていません。 これには、Windows Embedded なども含まれます。 ただし、Windows Server 2008 などの古い Windows バージョンを監視する場合は、ご自身の責任でレガシーエージェントを使用することができます。 レガシーエージェントとは、エージェントコントローラーのない古い Checkmk バージョンのエージェントです。 もちろん、これは、TLS 暗号化や圧縮など、エージェントコントローラーによる拡張機能が利用できないことを意味します。 レガシーエージェントは、こちらからダウンロードできます。 レガシーエージェントには、いくつかの特別な要件があります。これらの要件は、インストール章にまとめられています。

エージェントは、その機能のために追加のライブラリを必要としないため、インストール、登録、セットアップはわずか数ステップで完了します。 さらに、エージェントには、ほとんどのアプリケーションで十分な基本設定が同梱されています。

2. エージェントのアーキテクチャ

Checkmk エージェントは、エージェントプログラムと、Checkmk サーバー上のエージェントレシーバーと通信するエージェントコントローラーで構成されています。 Linux エージェントと Windows エージェントの一般的なアーキテクチャの詳細については、監視エージェントに関する一般的な記事をご覧ください。 この章では、Windows での実装について具体的に説明します。

エージェントプログラム check_mk_agent.exe 、監視データのコレクションを担当します。 このプログラムは、LocalSystem アカウントで Windows サービスとして起動されます。 呼び出されると、ローカルシステムに関するデータを収集し、エージェントコントローラーが利用できるようにします。

エージェントプログラムは、最小限の機能で、安全、拡張性が高く、包括的であり、WMI や SNMP ではアクセスできない重要なデータへのアクセスを提供します。 ただし、場合によっては、Checkmkエージェントに加えてSNMP による監視有用です。 このトピックの詳細については、SNMP による監視に関する記事をご覧ください。 このトピックの詳細については、SNMP による監視に関する記事をご覧ください。 さらに、エージェントプログラムは、実行ファイルとして配信されるファイルとして可能な限り透過的です。 これは、ソースコードにいつでもアクセスしてその機能を確認でき、原則としてエージェントを自分でコンパイルすることもできるためです。

エージェントコントローラー cmk-agent-ctl.exe 、エージェントプログラムによって収集されたデータを転送する、エージェント内のコンポーネントです。 これは、Windows LocalSystem アカウントでバックグラウンドプロセスとして実行されます。 プルモードでは、TCP ポート 6556 で Checkmkサイトからの着信接続をリッスンし、Mailslot 経由でエージェントプログラムにクエリを実行します。

3. インストール

Checkmk では、ソフトウェアパッケージの手動インストールから、アップデート機能を含む完全自動デプロイまで、Windows エージェントをインストールするいくつかの方法を提供しています。 これらのインストール方法の一部は、商業版でのみご利用いただけます。

方法 説明 Checkmk Raw 商業版

MSI パッケージの提供

設定ファイルによる手動設定で、標準エージェントを簡単にインストールできます。

X

X

エージェントベーカリーからの MSI パッケージ

GUI による設定、ホストごとの個別設定が可能です。

X

自動更新

エージェントベーカリーからのパッケージは、初回は手動またはスクリプトでインストールし、それ以降は自動的に更新されます。

X

または、Microsoft Active Directory などの他のパスを介して MSI パッケージを配布することもできます。 この場合、MSI フォーマットを使用してインストールを完全に自動化することができます。

3.1. MSI パッケージのダウンロード

MSI パッケージをインストールして、Windows エージェントをインストールします。

インストールする前に、パッケージを取得し、エージェントを実行するホストにパッケージを転送する必要があります (scp や WinSCP を使用)。

Checkmk GUI を使用してパッケージを取得する

Checkmk Rawでは、Setup > Agents > Windows からエージェントの Windows パッケージを見つけることができます。 商業版では、まずAgents > Windows, Linux, Solaris, AIX からSetup メニューのAgent Bakeryに移動し、そこでベイクされたパッケージを見つけます。 そこから、Related > Windows files メニュー項目を選択すると、エージェントファイルのリストが表示されます。

Download page with the MSI package.
MSI パッケージは、ダウンロードページ

必要なものはすべて、Packaged Agents という名前の最初のボックス内にあります。 これは、デフォルト設定で Windows エージェントをインストールするための、既製の MSI パッケージファイルcheck_mk_agent.msi です。

REST API 経由でパッケージを取得する

Checkmk のREST APIでは、Checkmk サーバーからエージェントパッケージをダウンロードするための以下の方法を提供しています。

  • 提供されているエージェントをダウンロードします。

  • ホスト名およびオペレーティングシステムごとに個別に準備されたエージェントをダウンロードします。

  • エージェントとオペレーティングシステムのハッシュによって個別に準備されたエージェントをダウンロードします。

REST API を使用すると、Checkmk サーバーからターゲットマシンに直接パッケージを取得することができます。

たとえば、Windows エージェントを含む MSI パッケージは、次のcurl コマンドで取得できます。 新しいバージョンの Windows では、curl はすでに含まれています。古いバージョンでは、まず、curl for Windows を使用して、curl コマンド環境を別途インストールする必要があります。

C:\Users\hhirsch\Downloads\> curl.exe -OJG "http://mycmkserver/mysite/check_mk/api/1.0/domain-types/agent/actions/download/invoke" ^
--header "Accept: application/octet-stream" ^
--header "Authorization: Bearer automation myautomationsecret" ^
--data-urlencode "os_type=windows_msi"

注:上記のコマンドは、読みやすくするために 4 行に分割されています。

これは、この特定の REST API エンドポイントがエージェントのダウンロードにどのように機能するかを示す簡単な例です。

このエンドポイントおよびその他の REST API エンドポイントの詳細については、Help > Developer resources > REST API documentation から Checkmk で入手できる API ドキュメントをご覧ください。

デフォルトのエージェントをダウンロードする最も簡単な方法は、ファイルを直接ダウンロードすることです。

C:\Users\hhirsch\Downloads\> curl.exe -OG http://mycmkserver/mysite/check_mk/agents/windows/check_mk_agent.msi

3.2. パッケージのインストール

手動インストール

MSI パッケージを取得し、必要に応じてscp 、WinSCP などの手段を使用して監視するホストにコピーしたら、MSI ファイルをダブルクリックするか、コマンドラインから次のように入力してインストールを開始します。

C:\Users\hhirsch\Downloads\> check_mk_agent.msi

セットアップウィザードのスタートページが表示されます。

Start page of the Setup wizard.
インストールは、ウェルカム画面から始まります。

Next ボタンを使用して、ウィザードのページをスクロールします。GNU GENERAL PUBLIC LICENSE のライセンス条項に同意して、続行します。 セットアップウィザードの次のページが表示されます。

Setup Wizard page on how to proceed when updating an old agent.
エージェントのインストール時の選択肢

このページでの選択は、ホストに Windows エージェントがすでにインストールされており、そのバージョンが1.6.0よりも古い場合にのみ関係します。1.6.0 では、Windows エージェントのアーキテクチャが根本的に変更されています。1.6.0よりも古いバージョンの Windows エージェントから現在のエージェントにアップデート(または移行)する場合は、まず、Checkmk ユーザーガイドの「2.0.0の「古いエージェント」の章をお読みください。 この章では、この特定のアップデートの場合に、提供されているオプションのうちどれを選択すべきかについて説明しています。

その他の場合は、Clean installation オプションを選択することをおすすめします。

インストールの開始を確認し、インストールプログラムによる変更を許可します([User Account Control ] ダイアログ)。 完了したら、セットアップウィザードを終了できます。

インストールが完了すると、エージェントは Windows サービスとしてすぐに起動し、システムの監視を開始します。

無人インストール

コマンドラインを使用すると、Windows は、msiexec を使用して、ユーザーの操作を必要とせずに MSI パッケージを自動的にインストールする機能を提供します。 自動インストールは、たとえば次のように行われます。

C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn

この場合、エージェントは、ユーザーの操作やユーザーインターフェース (/qn) を使用せずにインストールされ (/i)、Windows サービスとしてすぐに起動されます。 したがって、この方法は、エージェントを多くのホストに自動的に配布するのに最適です。

この方法を使用して、セットアップウィザードの手動インストール時に提示された 3 つのオプションを選択することもできます。 各オプションには、インストールコマンドに使用できる識別子があります。

セットアップウィザードのオプション 識別子

Clean installation.

WIXUI_CLEANINSTALL

Remove Legacy Windows Agent (pre 1.6) if present.

WIXUI_REMOVELEGACY

Migrate from Legacy Windows Agent (pre 1.6) configuration if present.

WIXUI_MIGRATELEGACY

オプションを有効にするには、その識別子に「等号」を付け加えます。

C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn WIXUI_CLEANINSTALL=

オプションを明示的に無効にするには、等号の後に 2 つの引用符を追加する必要があります。

C:\Users\hhirsch\Downloads\> msiexec /i check_mk_agent.msi /qn WIXUI_MIGRATELEGACY=""

3.3. エージェントベーカリーを使用したインストール

商業版には、カスタマイズしたエージェントを自動的にパッケージ化するソフトウェアモジュール「エージェントベーカリー」が付属しています。 このモジュールの詳細については、エージェントに関する一般的な記事をご覧ください。 ベイクされた MSI パッケージのインストールは、付属のパッケージの場合と同じ方法で行います。

Checkmk Cloud 以降では、エージェントベーカリーを使用して、自動登録用の設定がされたエージェントパッケージを提供することができます。 これにより、ホストの自動作成が容易になります。 この場合、エージェントパッケージがインストールされると、エージェントの登録は自動的に行われます。 次の章で説明する手動での登録は、もはや必要ありません。

3.4. 自動更新

エージェントベーカリーを使用する場合、エージェントの自動更新を設定することもできます。 これらの更新については、別の記事で説明しています。

3.5. エージェント設定ファイル

インストール中、MSI パッケージはプログラム固有のファイルをC:\Program Files (x86)\checkmk\service\ に、ホスト固有のファイルをC:\ProgramData\checkmk\agent\ に保存します。 プログラム固有のファイルはカスタマイズする必要はありません。 ホスト固有のファイルは、プラグイン、ログファイル、設定ファイルの保存、およびエージェントの動作の設定に使用されます。

: デフォルトでは、C:\ProgramData ディレクトリ全体は Windows で非表示になっています

エージェントは、3 つの設定ファイルを順番に読み込みます。

  1. C:\Program Files (x86)\checkmk\service\check_mk.yml
    はデフォルトの設定ファイルで、変更しないでください。

  2. C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml
    はエージェントベーカリーによって作成されるため、手動で変更しないでください。

  3. C:\ProgramData\checkmk\agent\check_mk.user.yml
    は、ホストの設定や拡張機能をテストするために、手動でカスタマイズできる設定ファイルです。

オプションが複数のファイルで設定されている場合、最後に読み込まれたファイルの内容がこのオプションの内容になります。 したがって、エージェントを手動で操作する場合は、最後に読み込まれる最後の設定ファイルcheck_mk.user.yaml だけが関連します。 Agent Bakery を使用しない場合、エージェントの設定をカスタマイズできるファイルは実際にはこのファイルのみです。

設定ファイルのファイル拡張子から既に気づかれたかもしれませんが、ファイル形式としてYAMLが使用されています。

3.6. インストール後は?

エージェントコントローラーを含むエージェントをインストールした後、次のステップは登録です。この登録により、TLS 暗号化が設定され、暗号化されたエージェント出力が Checkmk サーバーによって復号化され、監視に表示されるようになります。

エージェントコントローラーとともにエージェントを初めてインストールした場合、特別な機能があります。 この場合、エージェントは暗号化されていないレガシープルモードに切り替わり 、Checkmk サーバーが監視データから切り離されることなく、引き続きデータを表示できるようになります。 これは、新規インストールだけでなく、2.0.0 以前のバージョンのエージェントのアップデートにも適用されます。

監視では、次のように表示されます。

The WARN state of the 'Check_MK' service due to missing encryption.
Checkmk 監視で TLS がまだ使用されていないことを示す警告

Checkmk サイトは、エージェントの出力から、エージェントコントローラーが存在し、TLS 暗号化が可能であるものの、まだ有効になっていないことを認識します。Check_MK Agent サービスは、WARN 状態になり、登録するまでその状態を維持します。 登録後は、通信には暗号化されたプルモードのみが使用されます。 レガシープルモードはオフになり、その状態を維持します。 ただし、必要に応じてコマンドで再びオンにすることができます。

非常に古いWindows システムで レガシーエージェントを使用する場合は、状況が異なります。 エージェントコントローラーがないと、登録はできません。 したがって、レガシーエージェントの場合、「登録」章で関連するセクションは、セットアップにホストを追加し、次に監視にホストを追加するセクションのみです。 テストとトラブルシューティング」の章では、レガシーエージェントでは使用できないため、エージェントコントローラーの呼び出しテストは省略してください。 エージェントコントローラーがない場合、TLS 暗号化も使用できないため、必要に応じて他の暗号化方法を使用する必要があります。 この場合、Symmetric encryption (Linux, Windows) ルールを使用したビルトイン(対称)暗号化の使用をお勧めします。

注: Checkmk Agent installation auditing ルールセットには、エージェントの状態をチェックし、監視で表示するためのさまざまな設定があります。 ここでは、TLS設定がまだ行われていない場合にCheck_MK Agent サービスが持つべき状態を指定することができます。

4. 登録

4.1. 概要および前提条件

エージェントのインストール直後(バージョン2.0.0 以前のエージェントのアップデートの場合も同様です)、レガシープルモードでは暗号化されていない通信のみが可能です。 暗号化されたデータ送信のみを有効にするには、信頼関係が確立されている必要があります。

この例外は、自動登録用に事前設定され、エージェントベーカリーからダウンロードしたパッケージです。 これらのパッケージは、インストール後に自動的に登録を行います。

それ以外の場合は、エージェントのインストール後、すぐに手動で登録を行ってください。 この章では、登録の方法について説明します。

登録、つまり相互の信頼関係の確立は、REST API にアクセスできる Checkmk ユーザーで行います。 このためには、エージェントの登録のみ許可され、Checkmk のインストール時に自動的に作成されるオートメーションユーザー agent_registration が適しています。 対応するオートメーションパスワード(オートメーションの秘密)は、アイコンでランダム化することができます。 新しいパスワードを使用するには、ユーザーを保存する必要があります。

注:エージェントコントローラーがないため、レジストリおよび TLS 暗号化も存在しません。非常に古いWindows システムでは、必要に応じて別の暗号化方法を使用する必要があります。 この場合、Symmetric encryption (Linux, Windows) ルールを使用したビルトインの (対称) 暗号化を使用することをお勧めします。

4.2. セットアップにホストを追加する

まず、Setup > Hosts > Add host.から新しいホストを作成します。 ホストは、設定環境に存在している必要があります。

Checkmk Cloud 以降では、Checkmk agent connection mode オプションは、監視エージェントのセクションにあるホストのプロパティに表示されます。 ここでは、すべてのエディションで利用できるプルモードの代わりに、Checkmk エージェントのプッシュモードを有効にすることができます。

4.3. サーバーへのホストの登録

登録は、接続を設定するためのコマンドインターフェースを提供するエージェントコントローラーcmk-agent-ctl を使用して行います。 コマンドのヘルプは、cmk-agent-ctl help で表示できます。また、cmk-agent-ctl help register など、使用可能な特定のサブコマンドのヘルプも表示できます。

コマンドの例では、ホストがプルモードまたはプッシュモードのいずれで設定されているかは関係ありません。 エージェントレシーバーは、登録時にエージェントコントローラーに動作モードを伝えます。

次に、登録するホストに移動します。 ここでは、管理者権限でCheckmk サイトにリクエストを行う必要があります。

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    register ^
    --hostname mynewhost ^
    --server cmkserver --site mysite ^
    --user agent_registration --password "PTEGDYXBFXVGNDPRL"

--hostname オプションの後のホスト名は、セットアップで作成したときとまったく同じである必要があります。--server および--site オプションは、Checkmk サーバーとサイトの名前を指定します。 サーバー名は IP アドレスでもかまいません。サイト名(ここではmysite )は、web インターフェイスの URL パスに表示される名前に対応しています。 オプションは、オートメーションユーザーが使用する名前とパスワードで完了します。 --password オプションを省略すると、パスワードが対話形式で要求されます。

注意、不注意な方のための罠:主に Unix マシンを管理している方は、パスやパラメータにスペースや特殊文字が含まれる場合は、それらを単一引用符(アポストロフィ0x27 )で囲むことに慣れているでしょう。 Windows はこの文字を呼び出しの一部(この場合はパスワード)と解釈し、登録は失敗します。 代わりに二重引用符(0x22 )を使用してください。

指定した値が正しい場合、接続先の Checkmk サイトの身元を確認するメッセージが表示されます。 ここではわかりやすくするために、確認するサーバー証明書を省略しています。

Attempting to register at cmkserver:8000/mysite. Server certificate details:

PEM-encoded certificate:
---BEGIN CERTIFICATE---
MIIC6zCCAdOgAwIBAgIUXbSE8FXQfmFqoRNhG9NpHhlRJ40wDQYJKoZIhvcNAQEL
[...]
nS+9hN5ILfRI+wkdrQLC0vkHVYY8hGIEq+xTpG/Pxw==
---END CERTIFICATE---

Issued by:
	Site 'mysite' local CA
Issued to:
	localhost
Validity:
	From Thu, 10 Feb 2022 15:13:22 +0000
	To   Tue, 13 Jun 3020 15:13:22 +0000

Do you want to establish this connection? [Y/n]
> Y

Y で確認して、プロセスを完了してください。

エラーメッセージが表示されなければ、暗号化された接続が確立されました。 これで、すべてのデータは、この接続を介して圧縮されたフォームで送信されます。

登録を完全に自動化する場合など、証明書の対話型チェックを無効にしたい場合は、追加パラメータ--trust-cert を使用することができます。 この場合、転送された証明書は自動的に信頼されます。 証明書の整合性を確認するための他の手段を講じる必要があることにご注意ください。 これは、ファイル C:\ProgramData\checkmk\agent\registered_connections.json を検査することで(手動またはスクリプトを使用して)実行できます。

4.4. サーバーへのホストの自動登録

Checkmk Cloud 以降、Checkmk では、登録時にホストを自動的に作成する機能を提供しています。 このような自動登録を行うには、ホストを登録する許可を持つユーザーに加えて、自動的に作成するホストを保存するためのフォルダを 1 つ以上設定する必要があります。

これらの条件が満たされている場合は、コマンドラインから、ホストの自動作成を含む登録を実行することもできます。

通常は、エージェントベーカリーの設定手順を使用します。 この手順では、エージェントパッケージにC:\ProgramData\checkmk\agent\pre_configured_connections.json 設定ファイルが含まれ、インストール時に登録が自動的に実行されます。 したがって、ここで紹介するコマンドライン呼び出しは、主にテストやデバッグ、たとえば--agent-labels <KEY=VALUE> オプションを使用して独自のエージェントラベルを試す場合などに使用します。

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    register-new ^
    --server cmkserver --site mysite ^
    --agent-labels testhost:true ^
    --user agent_registration --password "PTEGDYXBFXVGNDPRL"

ここでの最大の違いは、Checkmk サイトでの新しいホストの登録と作成を要求するために使用される、変更されたregister-new サブコマンドです。 ホストの名前は、%COMPUTERNAME% 環境変数に保存されている名前です。 その後の証明書の確認は、前のセクションで示したとおりです。

ホストが プルモード プッシュモードで作成されるか、まったく作成されないかは、Agent registration ルールセットの設定によって決まります。 登録が正常に完了した後、ホストが監視に表示されるまで数分かかる場合があります。

4.5. 信頼関係の検証

cmk-agent-ctl status コマンドは、Checkmk サーバーとの信頼関係を 1 つだけ正確に表示します。

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" status
Connection: 12.34.56.78:8000/mysite
	UUID: d38e7e53-9f0b-4f11-bbcf-d196deadbeef
	Local:
		Connection type: pull-agent
		Certificate issuer: Site 'mysite' local CA
		Certificate validity: Mon, 21 Feb 2022 11:23:57 +0000 - Sat, 24 Jun 3020 11:23:57 +0000
	Remote:
		Connection type: pull-agent
		Host name: mynewhost

マシン読み取り可能な形式で情報が必要な場合は、追加パラメーター--json を付加して、JSON オブジェクト形式でフォーマットされた出力を取得します。

注:ホストとサイトの間には、信頼関係は 1 つしか設定できません。 たとえば、すでに登録されているホストmynewhost を、別の名前 (mynewhost2) で同じ IP アドレスで登録すると、新しい接続が既存の接続に置き換わります。mynewhost からサイトへの接続は切断され、監視用のエージェントデータはホストに送信されなくなります。

4.6. プロキシ経由での登録

複数のホストを簡単に登録するために、エージェントがインストールされているホストは、他のホストに代わって登録を行うことができます。 登録プロセスでは、JSON ファイルがエクスポートされ、そのファイルをターゲットホストに転送してインポートすることができます。 ここでも、前述と同様に、ジョブに登録されているホストは、サイト上にすでに設定されている必要があります。

まず、セットアップ内の任意のホストで、プロキシによる登録を行います。 ここでは、通常、最初にセットアップされるホストである Checkmk サーバーが役立ちます。 上記の例と同様に、オプションでパスワードを渡すか、--password オプションを省略して対話形式でパスワードの入力を求められます。 この例では、JSON 出力をファイルにリダイレクトしています。

root@linux# cmk-agent-ctl proxy-register \
    --hostname mynewhost3 \
    --server cmkserver --site mysite \
    --user agent_registration > /tmp/mynewhost3.json

次に、/tmp/mynewhost3.json ファイルを登録したホストに転送し、そのファイルをインポートします。

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    import %TEMP%\mynewhost3.json

4.7. ホストを監視に追加する

登録が完了したら、Checkmk サーバーのセットアップで接続テストとサービスディスカバリーを実行します。 最後に、変更をアクティブにして、検出されたサービスを監視対象に含めます。

接続テストが失敗した場合は、次の章でテストおよびトラブルシューティングに関する情報を参照してください。

4.8. ホストの登録解除

ホストの登録を解除することもできます。

Checkmk サーバーに接続されているホストでは、信頼を取り消すことができます。 ここでは、次のコマンドで、指定するユニバーサル一意識別子 (UUID) は、cmk-agent-ctl status コマンドによって出力されるものです。

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    delete d38e7e53-9f0b-4f11-bbcf-d196deadbeef

ホストからのすべての接続を削除しさらにレガシープルモードを復元するには、次のコマンドを入力します。

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    delete-all --enable-insecure-connections

その後、エージェントは、最初のインストール後、最初の登録前の動作と同じように、データを暗号化せずに送信します。

Checkmk サーバーで登録の解除を完了します。 セットアップの「Properties of host 」ページで、「Host > Remove TLS registration 」メニュー項目を選択し、プロンプトを確認します。

コマンドラインを使用する場合は、次のように入力します。 Checkmk サーバーでは、監視対象のホストの各接続に対して、エージェントの出力があるフォルダを指す UUID を含むソフトリンクがあります。

OMD[mysite]:~$ cd ~/var/agent-receiver/received-outputs
OMD[mysite]:~$ ls -l d38e7e53-9f0b-4f11-bbcf-d19617971595
lrwxrwxrwx 1 mysite mysite 67 Feb 23 07:18 d38e7e53-9f0b-4f11-bbcf-d19617971595 -> /omd/sites/mysite/tmp/check_mk/data_source_cache/push-agent/mynewhost

4.9. プッシュモードとプルモードの切り替え

Checkmk Cloud以降では、ホストをプッシュモードからプルモードに、またはその逆に切り替えることができます。 これは、ネットワークトポロジの変更が保留中である場合、またはプルモードのみ可能なCheckmk Enterpriseへのダウングレードを行う場合に、個別に必要な場合があります。

まず、セットアップのホストのプロパティで、Checkmk agent connection mode オプションを使用してアクセスモードを指定します。 1 分以内に、監視データが受信されないため、すべてのサービスがUNKNOWNステータスになります。 次に、再登録を実行します。 この再登録中に、Checkmk サーバーのエージェントレシーバーは、エージェントコントローラーに、プルモードでデータを期待するかどうかを通知します。 その後、cmk-agent-ctl status を使用してチェックを行うと、新しい UUID と、セットアップでの変更と一致したモードが表示されます。

5. テストとトラブルシューティング

モジュール式システムは、多くの場合、意図したとおりに機能しないことがあります。 エージェントは、エージェントコントローラー(ホスト上)とエージェントレシーバー(Checkmk サーバー上)の 2 つのコンポーネントを使用するため、問題が発生する可能性のある箇所がいくつかあります。 したがって、トラブルシューティングは、構造化されたアプローチで行うことをお勧めします。 もちろん、ここで説明するステップバイステップの分析を使用して、Checkmk が提供するデータ収集および通信についてより詳しく理解することもできます。

Checkmk サーバー側で利用可能なすべての診断オプションについては、監視エージェントに関する一般的な記事で説明しています。 もちろん、監視対象のホストに直接ログインすると、その他の診断機能も利用できます。

次のセクションでは、エージェントプログラムから、エージェントコントローラー 、TCP ポート 6556 、Checkmk サイトへと順を追って説明します。 エージェントコントローラーがプッシュモードの場合は、ポート 6556 でのテストをすべてバイパスしてください。登録前にポート 6556 が開いている場合でも、プッシュモードで登録するとポートは閉じられます。 ほとんどの場合、エラーを修正した後、サービスディスカバリーを再開して、監視への登録を完了することができます。

5.1. 設定のチェック

設定が予想どおりに読み込まれていることを確認するには、showconfig オプションを指定してエージェントプログラムを呼び出します。 このオプションを指定すると、エージェントが現在使用している設定だけでなく、環境変数および使用中の設定ファイルも常に表示されます。

設定の一部のみに関心がある場合は、その部分のみ出力するように制限することができます。 ここでは、たとえば、ps セクションのオプションが正しく設定されているかどうかをチェックしています。

C:\Windows\system32> "C:/Program Files (x86)/checkmk/service/check_mk_agent.exe" showconfig ps
# Environment Variables:
# MK_LOCALDIR="C:\ProgramData\checkmk\agent\local"
# MK_STATEDIR="C:\ProgramData\checkmk\agent\state"
# MK_PLUGINSDIR="C:\ProgramData\checkmk\agent\plugins"
# MK_TEMPDIR="C:\ProgramData\checkmk\agent\tmp"
# MK_LOGDIR="C:\ProgramData\checkmk\agent\log"
# MK_CONFDIR="C:\ProgramData\checkmk\agent\config"
# MK_SPOOLDIR="C:\ProgramData\checkmk\agent\spool"
# MK_INSTALLDIR="C:\ProgramData\checkmk\agent\install"
# MK_MSI_PATH="C:\ProgramData\checkmk\agent\update"
# Loaded Config Files:
# system: 'C:\Program Files (x86)\checkmk\service\check_mk.yml'
# bakery: 'C:\ProgramData\checkmk\agent\bakery'
# user : 'C:\ProgramData\checkmk\agent\check_mk.user.yml'

# ps
enabled: yes
use_wmi: yes
full_path: no

このようにして、3つの異なる設定ファイルがどのようにマージされ、エージェントプログラムによって使用されているかをすばやく確認できます。 エラーはすぐに表示されます。

5.2. 登録用のネットワーク環境

証明書が提示される前にホストの登録に失敗した場合、通信の方法に関する知識があれば、問題の特定、そしてもちろんその解決にも役立ちます。

cmk-agent-ctl register コマンドを入力すると、エージェントコントローラーはまず、REST API を使用して Checkmk サーバーにエージェントレシーバーポートを問い合わせます。 次に、エージェントレシーバーへの接続を確立し、証明書を要求します。 ホストでの最初の要求は、次のようなプログラムでシミュレートできます。 curl:

C:\Windows\system32> curl.exe -v --insecure https://mycmkserver/mysite/check_mk/api/1.0/domain-types/internal/actions/discover-receiver/invoke

パラメータ--insecure は、curl に証明書チェックをスキップするよう指示します。 この動作は、このステップにおけるエージェントコントローラーの動作を反映しています。 応答は、エージェントレシーバーのポート番号を含む数バイトのみです。 最初のサイトの場合は通常8000 、2 番目のサイトの場合は8001 というように続きます。

このリクエストに関する一般的な問題は次のとおりです:

  • ホストから Checkmk サーバーにアクセスできません。

  • REST API が使用するポートが、デフォルトのポート 443 (https) または 80 (http) とは異なる

上記のリクエストが失敗した場合、ルーティング設定またはファイアウォール設定を変更してアクセスを許可してください。

登録しようとしているホストが HTTP プロキシを使用している場合、curl はそのプロキシを使用しますが、cmk-agent-ctl はデフォルト設定では使用しません。 追加の--detect-proxy オプションを使用して、cmk-agent-ctl にシステム設定で設定されたプロキシを使用するように指示してください。

ただし、多くの場合、エージェントレシーバーのポートを特定してメモしておく方が簡単です。 そのためには、Checkmk サーバーで、サイトユーザーとしてログインし、以下を実行してください。

OMD[mysite]:~$ omd config show | grep AGENT_RECEIVER
AGENT_RECEIVER: on
AGENT_RECEIVER_PORT: 8000

これで、登録コマンドを入力する際にポートを指定することができます。 これにより、REST API への最初のリクエストがスキップされます。 その後、通信は迂回することなく、エージェントレシーバーと直接行われます。

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" ^
    register ^
    --hostname mynewhost ^
    --server cmkserver:8000 --site mysite ^
    --user agent_registration --password PTEGDYXBFXVGNDPRL

ポート 8000 もホストからアクセスできる必要があります。 アクセスできない場合は、次のエラーメッセージが表示されます。

ERROR [cmk_agent_ctl] Connection refused (os error 111)

ポート 443 (それぞれ 80) に相当します。ここで、登録するホストがエージェントレシーバーのポート(8000 または 8001…​)で Checkmk サーバーにアクセスできるように、ルーティングまたはファイアウォールの設定を調整できます。

プッシュモードでの登録の場合は、以下が適用されます。 登録が正常に完了すると、エージェント出力の 1 分ごとの転送も正常に行われます。

セキュリティポリシーによりエージェントレシーバーへのアクセスが禁止されている場合でも、Checkmk サーバーでプロキシによる登録を使用することができます。

5.3. ダンプモードのエージェントコントローラー

監視に正確に到着したデータを提供するには、エージェントプログラムは LocalSystem アカウントで呼び出す必要があるため、シェルで起動してはいけません。 エージェントの出力をローカルで確認したい場合は、ダンプモードのエージェントコントローラー(サブコマンドdump )を使用してください。 これにより、正しい環境と正しいユーザー ID でエージェントプログラムが起動し、結果が出力されます。

出力はビット長くなる場合があるため、ここでは「more」ページャーが非常に便利です。 Q キーで終了できます。

C:\Windows\system32> "C:\Program Files (x86)\checkmk\service\cmk-agent-ctl.exe" dump | more
<<<check_mk>>>
Version: 2.4.0p8
BuildDate: Mar 14 2023
AgentOS: windows
Hostname: DESKTOP-QVPV284
Architecture: 64bit
WorkingDirectory: C:\Windows\system32
ConfigFile: C:\Program Files (x86)\checkmk\service\check_mk.yml
LocalConfigFile: C:\ProgramData\checkmk\agent\check_mk.user.yml
AgentDirectory: C:\Program Files (x86)\checkmk\service
PluginsDirectory: C:\ProgramData\checkmk\agent\plugins
StateDirectory: C:\ProgramData\checkmk\agent\state
ConfigDirectory: C:\ProgramData\checkmk\agent\config
TempDirectory: C:\ProgramData\checkmk\agent\tmp
LogDirectory: C:\ProgramData\checkmk\agent\log
SpoolDirectory: C:\ProgramData\checkmk\agent\spool
LocalDirectory: C:\ProgramData\checkmk\agent\local
OnlyFrom:
<<<cmk_agent_ctl_status:sep(0)>>>

これにより、エージェントプログラムからのデータがエージェントコントローラーに到達したことを確認できます。 この出力では、エージェントがネットワーク経由でもアクセス可能であることはまだ確認できません。

5.4. リモート接続テスト

プルモードで、エージェントプログラムおよびインストールされているプラグインが正しく実行されていることを確認したら 、netcat (またはnc) を使用して、ホストの外部 IP アドレスからポート 6556 にアクセスできるかどうかを確認できます。

OMD[mysite]:~$ echo | nc 10.76.23.189 6556
16

16 の出力は、接続が正常に確立され、TLS ハンドシェイクを実行できることを示します。 ここでは、その他はすべて TLS 暗号化されているため、より詳細なチェックは不可能です。

エージェントと Checkmk サーバー間の通信が依然として暗号化されていない場合(レガシープルモードの場合)、または暗号化されておらず、その状態が続いている場合(レガシーエージェントの場合)、16 の代わりに、このコマンドで暗号化されていないエージェントの出力がすべて表示されます。

Checkmk サーバーで実行するその他の診断については、監視エージェントに関する一般的な記事をご覧ください。 特に、Checkmk インターフェースを使用して接続テストを実行することもできます。 結果は、Agent: ボックスに表示されます。

Error message of an unreachable agent during connection test.
エージェントへの接続テスト中のエラー

上記の例のように、接続テスト中に情報がない、またはタイムアウトエラーメッセージのみが表示される場合は、ホストの Windows ファイアウォールのInbound Rules をチェックしてください。

5.5. Windows ファイアウォール

エージェントは、インストール時に Windows ファイアウォールにルールを作成するため、エージェントコントローラーは ポート 6556 経由で外部からアクセスできます。 プッシュモードを使用する場合、通常、設定を変更する必要はありません。 非常に厳格なファイアウォール設定を使用している場合は、監視サーバーへの接続に関する送信ルールを、少なくともポート 8000(登録を容易にするために、さらに 80 または 443)が到達可能になるように設定する必要があります。

現在のバージョンの Windows では、Windows Defender Firewall with Advanced Security は Windows 設定 (Settings > Windows Security) から、またはコマンドラインからwf.msc を呼び出すことで起動できます。

Entry of the Checkmk agent for Windows Firewall.
Checkmk エージェントの受信ルールが設定された Windows ファイアウォール

Windows ファイアウォールの設定にそのようなエントリが見つからない場合は、この場所に追加することができます。 これを行うには、Action メニューの「New Rule 」をクリックします。

これにより、新しいファイアウォールルールを作成するためのウィザードが開きます。 5 つの選択肢を次のように設定します。

Rule Type

Program 」の選択をそのままでおきます。

Program

%ALLUSERSPROFILE%\checkmk\agent\bin\cmk-agent-ctl.exeThis program path 」と入力するか、「Browse 」ボタンを使用して「cmk-agent-ctl.exe 」を選択します。

Action

Allow the connection.

Profile

この点は、ネットワークの構成によって大きく異なります。ただし、ほとんどの場合、ここでは「Domain 」と「Private 」のみを有効にすることをお勧めします。

Name

ルールには、簡潔で短い名前を付けます。

あるいは、この手順を自動化し、コマンドラインで直接ルールを設定することもできます。 必要に応じて、以下のコマンドをカスタマイズしたインストールパスに変更してください。

C:\Windows\System32> netsh advfirewall firewall add rule name="Checkmk Agent" ^
description="Allow inbound network traffic to the Checkmk Agent" dir=in localport=6556 protocol=tcp action=allow ^
program="%ALLUSERSPROFILE%\checkmk\agent\bin\cmk-agent-ctl.exe" ^
profile=private,domain enable=yes
OK.s

注:コマンドは読みやすく 4 行に分割されています。

5.6. プッシュモードのエージェントのトラブルシューティング

Checkmk サイトの~/var/agent-receiver/received-outputs/ フォルダには、登録されている各ホストの UUID を名前としたソフトリンクがあります。 プッシュモードのホストの場合、このソフトリンクはエージェントの出力があるフォルダを指し、プルホストの場合は、監視で使用されているホスト名と同じ名前の存在しないファイルを指します。

キャッシュされたエージェント出力の保存期間に基づいて、定期的な送信が正常に実行されたか、または、例えば、断続的なネットワークの問題によって中断されているかを判断できます。

さらに、ホストのログファイルC:\ProgramData\checkmk\agent\log\check_mk (パスは設定によって異なる場合があります)を確認することもできます。 次のような行は、接続の問題を示しています。

Dez 15 17:59:49 myhost23 cmk-agent-ctl[652648]: WARN [cmk_agent_ctl::modes::push] https://mycmkserver:8000/mysite: Error pushing agent output.

5.7. 接続が失われています

Agent controller auto-registration ルールセットでホストが自動登録するように設定されており、Keep existing connections オプションがno に設定されている場合、cmk-agent-ctl-daemon サービスが再起動されるたびに (ホストが再起動された場合など)、自動登録用に設定された接続を除く、他のすべての接続が削除されます。 これは、ベイクドエージェントパッケージのインストール前に複数のサイトへの接続が設定されていたホスト、またはエージェントパッケージのインストール後に手動で接続が追加されたホストなどに影響します。

この動作は、ホストのC:\ProgramData\checkmk\agent\pre_configured_connections.json ファイルで、keep_existing_connections 変数をtrue に設定することで一時的に無効にできます。 エージェントパッケージのアップデート後もこの設定を永続的に有効にするには、上記のルールセットでKeep existing connectionsyes に設定してください。

5.8. 変更が反映されるまでの待機時間

ホストを自動登録すると、通常、ホストが監視に表示されるまでに約 2 分かかります。

6. セキュリティ

6.1. 事前検討

セキュリティは、あらゆるソフトウェアにとって重要な基準であり、監視も例外ではありません。 監視エージェントは、監視対象のすべてのサーバーにインストールされるため、セキュリティ上の問題が発生した場合、特に深刻な結果につながります。

そのため、Checkmk の設計ではセキュリティが重視され、Checkmk の初期段階から絶対的な原則となっています。 エージェントはネットワークからデータを読み取りません。 つまり、攻撃者が監視ポート 6556 経由でコマンドやスクリプトコンポーネントを注入することは不可能です。

6.2. 輸送層セキュリティ(TLS)

しかし、攻撃者にとっては、プロセスリストでさえ、価値のあるターゲットについて結論を出すための最初の手がかりになる可能性があります。 そのため、エージェントと Checkmk サーバー間のトランスポートは、トランスポート層セキュリティ (TLS) による暗号化が必須です。 ここでは、Checkmk サーバーが監視対象のホストに「ping」を送信し、監視対象のホストが Checkmk サーバーへの TLS 接続を確立して、エージェントの出力をその接続を介して送信します。 信頼関係のある Checkmk サーバーのみがこのデータ転送を開始できるため、データが不正な手に渡る危険はありません。

TLS 接続のセキュリティを確保するため、Checkmk は自己署名証明書を使用し、その有効期限が切れる直前に自動的に置き換えられます。 エージェントコントローラーは、有効期限が切れる前に、証明書の更新を適時に実行します。 エージェントコントローラーが実行されていない、つまり長期間非アクティブなエージェントのみ、有効期限が切れると登録が失われ、再度登録する必要があります。 証明書の有効期間は、Agent Certificates > Lifetime of certificates グローバル設定で指定できます。

注:エージェントコントローラーがないため、レジストリおよび TLS 暗号化も使用できません。 非常に古いWindows システムでは、必要に応じて他の暗号化方法を選択する必要があります。 この場合、Symmetric encryption (Linux, Windows) ルールを使用して、ビルトインの(対称)暗号化を使用することをお勧めします。

6.3. IP アドレスによるアクセス制限

特定の IP アドレスへのアクセスを制限することも、ファイアウォールで設定できます。 ただし、エージェント自体でも、外部 IP アドレスからの要求を単に無視する機能があります。 グローバルオプションの設定ファイルに、以下の制限を追加してください。 この設定ファイルの前後に他のパラメータが設定されている場合があるため、これは単なるスニペットであることにご注意ください。

C:\ProgramData\checkmk\agent\check_mk.user.yml
global:
  only_from: 127.0.0.1/32 192.168.42.0/24

例のように、任意の数のサブネットを許可できます。 例えば、/32 と指定すると、サイズ 1 のサブネットを指定するため、このアドレスのみが許可されます。一方、192.168.42.0/24 と指定すると、192.168.42.0 から192.168.42.255 までのすべてのアドレスが許可されます。

エージェントベーカリーでは、次のルールセットを使用して、許可する IP アドレスを設定できます。Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Allowed agent access via IP address (Linux, Windows)

6.4. ビルトインの暗号化を無効にする

特にエージェントを更新する場合、エージェントプログラム自体によって実行されるビルトイン(対称)暗号化が有効になっていることがあります。 TLS 暗号化とビルトイン暗号化が同時に有効になっている場合、送信データのエントロピーが非常に高くなり、2.1.0 以降で有効になっている圧縮機能では送信データを保存できなくなります。また、ホストと Checkmk サーバーの両方の CPU に、追加の暗号化および復号化プロセスによる負荷がかかります。

そのため、TLS に切り替えた後は、ビルトイン暗号化を速やかに無効にしてください。

まず、Setup > Agents > Access to agents > Checkmk agent > Symmetric encryption (Linux, Windows) の既存のルールで暗号化を無効にしてください。

次に、エージェントのホストのC:\ProgramData\checkmk\agent\check_mk.user.yml 設定ファイルで、encrypted パラメータの値をno に変更します。

C:\ProgramData\checkmk\agent\check_mk.user.yml
global:
  encrypted: no
  passphrase: D0e5NotMat7erAnym0r3

3 番目の最後のステップでは、Enforce agent data encryption ルールを使用して、Checkmk サーバーが TLS 経由で暗号化されたデータのみを受け入れるように指定します。 これを行うには、ルールで「Accept TLS encrypted connections only 」の値を選択します。

エージェントベーカリーで暗号化を無効にする手順は、次のとおりです。 最初のステップ、Symmetric encryption (Linux, Windows) ルールを変更すれば、ほぼ完了です。 新しいエージェントをベイクして配布するだけです。 設定ファイルC:\ProgramData\checkmk\agent\check_mk.user.yml は自動的に変更され、エージェントパッケージに含まれます。 あとは、3 番目のステップ、Enforce agent data encryption ルールを変更するだけです。

次の自動エージェント更新後に、エージェントプログラムの暗号化は使用不能になりますが、エージェントコントローラーによって暗号化は保証されます。 自動エージェント更新後は、登録済みのホストのみ監視データを提供できることにご注意ください。

7. セクションの使用を無効にする

Checkmk エージェントからの出力は、セクションに分割されています。 各セクションには、関連情報が含まれています。 セクションは、常にセクションヘッダーで始まります。 これは、<<< および>>> で囲まれた行です。

Checkmk 独自のセクションを除き、エージェントがデフォルトで生成する 30 以上のセクションは、個別に使用不能にすることができます。 具体的には、対応するコマンドがエージェントによってまったく実行されなくなるため、計算時間を節約できる可能性があります。 使用不能にするその他の理由としては、特定のホストグループからの特定の情報を必要としない場合や、特定のホストが誤った値を提供しており、そのデータの取得を一時的にサスペンドしたい場合などが考えられます。

商業版ユーザーは、Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Disabled sections (Windows agent) でルールを作成するだけで、そのルールがエージェントベーカリーに反映されます。

List of agent rules for the windows agent.
ここでは、ルールによってセクションを無効にすることができます。

注:上の画像には、Disabled sections (Windows agent) に対して逆のルールEnabled sections (Windows agent) も存在することが示されています。これは、「ネガティブ」リストの代わりに「ポジティブ」リストを使用できることを意味します。 ただし、概要を明確にするため、2 つのルールのうち1 つだけを使用することをお勧めします。

ルール「Disabled sections (Windows agent) 」には、使用不能にする各セクションのチェックボックスが個別にあります。 選択したチェックボックスについては、選択したホストに新しく作成されたエージェントがインストールされた後、エージェントベーカリーの設定ファイル「C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml 」の「global: 」の下に、選択したセクションをリストした「disabled_sections: 」という行が表示されます。

例えば、System uptimeWeb Services の両方を選択した場合、適切な設定ファイルは次のように表示されます:

C:\ProgramData\checkmk\agent\check_mk.user.yml
global:
    disabled_sections: [uptime, wmi_webservices]

Checkmk Rawユーザーは、C:\ProgramData\checkmk\agent\check_mk.user.yml 設定ファイルにエントリを手動で作成し、使用不能にするセクションをそこに指定することができます。 使用不能にするセクションは、このファイル内のglobal:_sections: セクションにリストされています。

8. プラグインによるエージェントの拡張

8.1. エージェントプラグインとは何ですか?

エージェントプログラムcheck_mk_agent.exe には、さまざまなチェックプラグインに監視データを提供する一連のセクションが含まれており、サービスディスカバリーによって自動的に検出されます。 これには、オペレーティングシステムの重要な監視がすべて含まれています。

さらに、エージェントプラグインを使用してエージェントを拡張することもできます。 エージェントプラグインは、エージェントによって呼び出される小さなスクリプトまたはプログラムで、追加の監視データを含むセクションをエージェントに追加します。 Checkmk プロジェクトでは、このようなプラグインを多数提供しています。これらのプラグインを正しくインストールおよび設定すると、サービスディスカバリーで新しいサービスが自動的に提供されます。

これらのプラグインは、エージェントにハードコードされていないのはなぜですか? プラグインには、それぞれ以下の理由があります。

  • プラグインは、エージェントが提供していない内部インターフェース(例:パワーシェル)を介してのみデータを取得できます。

  • プラグインは、それなしでは機能しないため、とにかく設定が必要です(例:mk_oracle.ps1 )。

  • プラグインが特殊であり、ほとんどのユーザーには必要ないためです (例:citrix_licenses.vbs)。

8.2. 手動インストール

Windows 用の付属プラグインは、すべて、監視対象ホストのエージェントインストールディレクトリにあるC:\Program Files (x86)\checkmk\service\plugins にあります。 これらのプラグインは、直接利用できるようにこの場所に保存されています。 また、Windows 用のプラグインは、Checkmk サーバーの~/share/check_mk/agents/windows/plugins にもあります。

また、セットアップメニュー(インストール章で説明)のPlugins ボックスにあるエージェントのダウンロードページからも入手できます。

Download page with agent plug-ins.
利用可能なエージェントプラグインのリストの先頭

当社が提供するすべてのエージェントプラグインには、そのデータを評価してサービスを生成できる、一致するチェックプラグインがあります。 これらはすでにインストールされているため、新しく見つかったサービスはすぐに認識され、設定することができます。

注:ホストにプラグインをインストールする前に、対応するファイルを確認してください。 多くの場合、プラグインの正しい使用方法に関する重要な情報が記載されています。

実際のインストールは簡単です。 ファイルをC:\ProgramData\checkmk\agent\plugins にコピーします。

プラグインが正しいディレクトリにあると、エージェントによって自動的に呼び出され、エージェント出力に新しいセクションが作成されます。 通常、このセクションの名前はプラグインと同じです。 複雑なプラグイン (mk_oracle.ps1 など) は、一連の新しいセクション全体を作成します。

8.3. 設定

一部のプラグインは、C:\ProgramData\checkmk\agent\config に設定ファイルが必要です。 その他のプラグインは、設定はオプションであり(mssql.vbs など)、特別な機能やカスタマイズが可能です。 また、そのままの状態で動作するプラグインもあります。 情報は、以下の複数のソースから入手できます。

  • Setup > Services > Catalog of check plugins からアクセスできる、Checkmk サイトにある関連チェックプラグインのドキュメント。

  • プラグインファイル内のコメント (多くの場合、非常に役立ちます!)

  • このユーザーガイドの適切な記事(Oracle の監視など)

特別な (スクリプト) 言語の場合は、まずエージェント設定でそれらを有効にする必要があるかもしれません。 たとえば、Python スクリプトは、明示的に有効にしない限り実行されません。 これは、次の抜粋に示すように、global セクションのcheck_mk.user.yml 設定ファイルでファイル拡張子を拡張することで実行できます。

C:\ProgramData\checkmk\agent\check_mk.user.yml
global:
    execute: [exe, bat, vbs, cmd, ps1, py]

重要:このようなプラグインを使用するには、特別なパスを使用せずに、通常のコマンドラインでもファイルを呼び出せる必要があります。 Python の場合、正しくインストールされており、環境変数にインタープリタへのパスが指定されている必要があります。 Python を正しく設定する方法については、Python Software Foundationのページで直接ご確認ください

8.4. 特定のプラグインの実行をカスタマイズする

各プラグインは、さまざまなモードで実行できます。 設定ファイルには、以下のオプションを入力できます。

オプション 説明

pattern

'@user\*.ps1'

以下のオプションの範囲を設定します。ここではワイルドカードも使用できます。その後、以下のオプションは、その式が該当するすべてのプラグインを参照します。Leading は、プラグインをC:\Program Files (x86)\ のインストールディレクトリから直接実行するか、C:\ProgramData のデータディレクトリから実行するかを決定します。

run

yes/no

プラグインの実行を抑制するかどうかを指定します。

async

yes/no

プラグインを非同期で実行し、データをファイルに保存します。同期で実行すると、出力はエージェントに直接渡されます。

timeout

60

最大実行時間を設定します。その時間経過後、出力がない場合でもプラグインは終了します。デフォルト値は、エージェントのクエリ間隔のデフォルト値に基づいています。

cache_age

60

出力の有効期間を秒単位で設定します。

retry_count

1

キャッシュから出力を破棄する前にプラグインが失敗できる回数です。

description

'Text'

ログに追加する自由形式のテキストを入力できます。

Veeam プラグインの設定は、たとえば次のようになります (抜粋は短縮されており、例に関連する部分のみ記載しています)。

C:\ProgramData\checkmk\agent\check_mk.user.yml
plugins:
    enabled: yes
    execution:
        - pattern: $CUSTOM_PLUGINS_PATH$\veeam_backup_status.ps1
          async: yes
          timeout: 120
          cache_age: 300
          retry_count: 2

上記の構成例によると、データディレクトリC:\ProgramData\checkmk\agent\plugins にあるプラグインは、5 分(300 秒)ごとに非同期で実行され、最大 2 分(120 秒)間実行されます。 プラグインがこのタイムアウトに達した場合、2 回目に結果を取得を試みます。

8.5. エージェントベーカリーによるインストール

商業版では、付属のプラグインはエージェントベーカリーで設定できます。 これにより、プラグイン自体のインストールと、必要な場合は設定ファイルの正しい作成の両方が行われます。

各プラグインは、エージェントルールを使用して設定されます。 適切なルールセットは、Setup > Agents > Windows, Linux, Solaris, AIX > Agent rules > Agent Plugins にあります。

Page with rules for configuring agent plug-ins.
エージェントプラグインのルールリスト

8.6. 手動実行

エージェントプラグインは実行可能なプログラムであるため、テストや診断の目的で手動で実行することができます。 ただし、プラグインの中には、設定ファイルを見つけるためにエージェントによって特定の環境変数が設定されているものもあります。 必要に応じて、スクリプトまたはプログラムで必要な環境変数を手動で設定してください。

9. レガシー Nagios チェックプラグインの統合

9.1. MRPE 経由でプラグインを実行する

Checkmk で Nagios プラグインを引き続き使用するには、2 つの理由があります。 Nagios ベースのソリューションから Checkmk に監視を移行した場合、Checkmk に同等の機能がない古いチェックプラグインを引き続き使用することができます。 多くの場合、これらは Perl またはシェルで自作したプラグインです。

2 つ目の理由は、真のエンドツーエンド監視です。 Checkmk サーバー、web サーバー、データベースサーバーが、大規模なデータセンターに分散して設置されている場合を考えてみましょう。 このような場合、Checkmk サーバーから測定されたデータベースサーバーの応答時間はあまり意味がありません。 web サーバーとデータベースサーバー間の接続の応答時間を把握することが、はるかに重要です。

Checkmk エージェントは、この 2 つの要件を満たすシンプルなメカニズムを提供しています。 MK のリモートプラグインエクゼキュータ、略称MRPEです。 この名前は、Nagios で同じタスクを実行するNRPEに意図的にちなんで付けられました。

MRPE はエージェントにビルトインされており、さまざまな設定ファイルによって制御されます。

MRPE の有効化および無効化

デフォルトでは、MRPE プラグインの考慮は有効になっています。 この機能を使用しない場合は、設定ファイルに次の定義を追加して無効にすることができます。

C:\ProgramData\checkmk\agent\check_mk.user.yml
mrpe:
  enabled: no

実行時間の制限

スクリプトや Nagios プラグインのランタイムが予測できない場合があり、最悪の場合、プラグインが終了しないことがあります。 このような場合、MRPE プラグインの最大ランタイムを制限することで制御することができます。 ここに表示される値は、デフォルト値(秒単位)でもあります。 したがって、間隔を短くしたり長くしたりする場合にのみ、調整が必要です。

C:\ProgramData\checkmk\agent\check_mk.user.yml
mrpe:
  # enabled: yes
  timeout: 60

MRPE プラグインの追加

実行するファイルの場所と、その呼び出し方法をエージェントに指示するには、MRPE 設定にエントリを追加します。

C:\ProgramData\checkmk\agent\check_mk.user.yml
mrpe:
  config:
  - check = MyServiceName 'C:\ProgramData\checkmk\agent\mrpe\my_check_plugin.bat' -w 10 -c 20 MyParameter

ファイルをエージェントのディレクトリにも配置する必要はありませんが、すべてを 1 つの場所にまとめておく方が便利です。 この設定例では、関連する行に次のエレメントが表示されます。

エレメント 説明

MyServiceName

Checkmk に表示されるサービス名。

'C:\ProgramData\checkmk\agent\mrpe\my_check_plugin.bat'

実行するプログラム。スペースを含む場合は引用符で囲みます。

-w 10 -c 20

渡されるオプション:WARN の閾値は 10、CRIT の閾値は 20 です。

MyParameter

その他のパラメーターの例。

MRPE プラグインを設定すると、エージェントを再起動しなくてもすぐに有効になり、出力に追加されます。 サービスディスカバリーで、新しいサービスが自動的に検出されます。

agent windows service discovery

9.2. エージェントベーカリーを使用した MRPE

ユーザー固有の設定ファイルでホストに直接設定する代わりに、Setup メニューで MRPE プラグインを直接定義することもできます。 これを行うには、Setup > Agents > Windows, Linux, Solaris, AIX > Agent > Agent rules > Execute MRPE checks ルールセットを使用します。 必要なエントリは、エージェントベーカリーの設定ファイルに自動的に作成されます。

10. ハードウェアの監視

Windows ホストのハードウェア監視は、Checkmk エージェント、およびCheckmk Exchangeで入手できるプラグインと拡張機能によって十分にカバーされています。 ただし、既製のプラグインも、独自のプラグインを作成するためのプログラミングインターフェースも利用できない場合、アプリケーションソフトウェアまたはハードウェアメーカー製のハードウェア監視ツールが SNMP 経由で監視データを提供できる場合があります。

そのような場合は、セットアップのホストのプロパティにある「Monitoring agents 」ボックスで、SNMP を適切な接続タイプ(SNMPv2 or v3 またはSNMPv1 )に設定してください。 SNMP と Checkmk エージェントの両方で利用可能なサービス(CPU 使用状況、ファイルシステム、ネットワークカードなど)は、SNMP ではなく Checkmk エージェントによって自動的に取得されます。 これにより、重複した送信が自動的に回避されます。

詳細については、「SNMP による監視」の記事をご覧ください。

11. アンインストール

Windows では、エージェントをアンインストールするいくつかの方法があります。 すべてのバージョンの Windows では、コントロールパネルの「Control Panel > Programs and Features > Uninstall a program.」にエントリがあります。 新しいバージョンでは、Settings > Apps > Apps & features の設定にも Checkmk エージェントのエントリがあります。

管理者用のコマンドラインからは、エージェントを削除するいくつかのオプションがあります。 最後にインストールした MSI パッケージがまだある場合は、次のようにしてアンインストールできます。

C:\Users\downloads\> msiexec /x check_mk_agent.msi /qn

または、Windows 管理インストルメントコマンド (WMIC) を使用してアンインストールすることもできます。

C:\> wmic product where name="Check MK Agent 2.1" call uninstall /nointeractive

アンインストールが正常に完了すると、確認メッセージ「Method execution successful. 」が表示されます。

注:name= 」の後の文字列は、正確に入力する必要があります。 ここで別のバージョンのエージェントをアンインストールする場合は、次のコマンドでインストールされているすべての製品のリストを表示できます。

C:\> wmic product get name

このプロセスには非常に時間がかかる場合があり、ステータスメッセージは表示されませんが、非常に長いリストが表示されます。 フィルタリングするには、コマンドをパイプに拡張します。

C:\> wmic product get name | findstr Check
Check MK Agent 2.3

Windows のさまざまなルーチンは、インストールプロセスによってそこに追加されたファイルのみを削除するため、エージェントのディレクトリにファイルが残ることはまったく正常です。 これらは手動で削除できます。

12. ファイルとディレクトリ

12.1. 監視対象ホスト上のパス

パス 意味

C:\Program Files (x86)\checkmk\service

エージェントプログラムcheck_mk_agent.exe およびエージェントコントローラーcmk-agent-ctl.exe を含む、プログラム固有のファイルのインストールディレクトリ。ここでは調整は必要ありません。
エージェントは、32 ビットおよび 64 ビットのプログラムとして出荷されています。インストールルーチンは、32 ビットまたは 64 ビットのオペレーティングシステムに適切なプログラムを自動的に選択します。互換性の理由から、エージェントはProgram Files (x86) ディレクトリにインストールされます。

C:\Program Files (x86)\checkmk\service\check_mk.yml

エージェントのデフォルト設定ファイルです。このファイルは変更しないでください。

C:\ProgramData\checkmk\agent\

ホスト固有のファイルのインストールディレクトリ。このホストに固有の拡張機能、ログ、および設定ファイルは、このディレクトリに保存されます。

C:\ProgramData\checkmk\agent\bakery\check_mk.bakery.yml

この設定ファイルは、エージェントベーカリーによって作成され、必要に応じてデフォルト設定ファイルの値を上書きします。

C:\ProgramData\checkmk\agent\check_mk.user.yml

個別のカスタマイズ用の設定ファイルです。このファイルは最後に読み込まれ、必要に応じて他の設定ファイルの値を上書きします。

C:\ProgramData\checkmk\agent\plugins

エージェントによって自動的に実行され、追加の監視データで出力を拡張するプラグインのディレクトリです。

C:\ProgramData\checkmk\agent\spool

独自のセクションを持つログファイルなどによって作成されたデータが含まれます。これらのデータもエージェントの出力に追加されます。詳細については、「スプールディレクトリ」の記事をご覧ください。

C:\ProgramData\checkmk\agent\registered_connections.json

エージェントコントローラーに登録されている接続のリストが含まれます。

C:\ProgramData\checkmk\agent\pre_configured_connections.json

自動登録用のサイトへの事前設定済みの接続が含まれています。エージェントベーカリーを介してエージェントパッケージに統合されています。

C:\ProgramData\checkmk\agent\config

エージェントの設定ファイルの保存場所です。

C:\ProgramData\checkmk\agent\local

カスタムローカルチェック用のディレクトリです。

C:\ProgramData\checkmk\agent\mrpe

MRPE 拡張機能はここに保存できます。

C:\ProgramData\checkmk\agent\backup

Checkmk エージェントサービスが変更されるたびに、ユーザー設定のバックアップがここに作成されます。

C:\ProgramData\checkmk\agent\log

ログファイルはここにあります。動作中に常に更新されるcheck_mk.log (すべてのエディション)の他に、自動インストールやアップデートによるログもここにある場合があります。

12.2. Checkmk サーバー上のパス

パス 意味

~/local/share/check_mk/agents/custom

ベイクされたエージェントとともに配信されるカスタムファイルのベースディレクトリ。

~/share/check_mk/agents/windows/

エージェントの MSI パッケージを含むディレクトリ。このディレクトリには、設定例およびすべてのエージェントプラグインも含まれます。

~/var/agent-receiver/received-outputs

各接続の UUID を、ホスト名のフォルダを指すソフトリンクとして格納します。プッシュモードでは、このフォルダにはエージェントの出力結果が格納されます。

このページでは