Checkmkでは、様々なチェックに対応するプラグインがすでに実装されており、WebGUIから監視設定をしてサービスを追加することができます。サービス結果はGUIで確認できますが、今設定して監視を実行しているコマンドは実際にどのような値が取得できているのか、コマンドラインから実行することで詳しい取得値や他の引数を確認できます。本記事では、この既存プラグインのデバッグ方法を手順を追ってご説明します。
確認する既存プラグインの種類
今回デバッグするプラグインの対象は、エージェントが必要ないチェックです。今回は「チェック HTTPサービス:check_http」の設定を確認します。
セットアップ>”サービス”>HTTP, TCP, Eメール>チェックHTTPサービス でルールを設定

まずはcheck_httpを使用したルールを設定し、サービスが作成されていることを確認します。ホスト登録画面から詳細画面に移動した画面が図2です。

登録したチェックをクリックし、サービスの詳細画面(図3,4)を確認します。


図4 サービス詳細画面下部の「サービスチェックコマンド」を確認してください。こちらに実際に実行されているコマンドと引数が表示されています。
「check_mk_active-http!’-j’ ‘GET’ ‘–sni’ ‘-p’ ’80’ ‘www.google.com’」
チェック名の表示が「check_mk_active-http」となっていますが、このルールがどのコマンドを使用しているかどうかは以下の画面で確認できます。
セットアップ>”サービス”>チェックプラグインのカタログ>エージェントなしのネットワークチェック

図5の画面で今設定したHTTP/HTTPS Connectionをクリックします。

画面で設定できるパラメータもこちらの画面で確認することができます。次に、確認できたチェックと引数をコマンドラインから確認・実行していきます。
格納場所と実行方法
格納場所:/opt/omd/sites/[サイト名]/lib/nagios/plugins

ここにプラグインが格納されています。実際に先ほど画面で確認した引数を設定し、実行します。
画面に表示されていたもの:check_mk_active-http!’-j’ ‘GET’ ‘–sni’ ‘-p’ ’80’ ‘www.google.com’
実行するコマンド:./check_http -j GET –sni -p 80 www.google.com

実行結果とWebGUI画面の監視内容を照らし合わせ、画面の取得値が正しく表示されていることが確認できます。なお、./check_http –help のコマンドで、引数の一覧を確認いただけます。

一例として図9のヘルプを表示し、その中に記載されているプロセス指定時のコマンド例を確認してみます。
(引用)「check_http -I 192.168.100.35 -p 80 -u https://www.verisign.com/ -S -j CONNECT -H www.verisign.com
all these options are needed: -I (proxy) -p (proxy-port) -u (check-url) -S(sl) -j CONNECT -H (webserver)」
この記載から、このプロセス指定時のコマンドには-I、-p、-u、-S、-j、-Hの引数が必要なことがわかります。この引数を参考に、WebGUIの設定画面を見てみます。

設定項目のオプションとして、プロキシアドレス、プロキシポート、URL、監視リクエスト(get/connect等)、仮想ホスト、など入力する欄が対応して存在していますので、必要な引数の項目を入力してサービスを作成すると、正しい引数で正しい結果が取得できます。
いかがでしたでしょうか。正しく設定したつもりでも、なぜか値が取得できない、想定した結果にならないなどといったタイミングがあるかもしれません。上記の方法で簡単にデバッグし詳しい取得結果や足りない引数を確認できますので、困った際にはこのデバッグ方法を活用し、少しでも設定時の問題解決にお役立ていただければと思います。
お問い合わせ
Checkmkにご興味のある方は、以下リンクよりいつでも弊社までお問い合わせください。
30日無償でご利用いただける評価版も以下のダウンロードリンクにご用意しております。簡単に検証ができますので、ぜひお試しください