差分

このページの2つのバージョン間の差分を表示します。

この比較画面にリンクする

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
ja:documentation:03_monitoring:06_web_monitoring [2021/07/03 23:05]
junichi [概要]
ja:documentation:03_monitoring:06_web_monitoring [2023/05/16 08:31] (現在)
行 22: 行 22:
 Goliat を利用できるようにするには、最初に Pandora FMS Enterprise サーバを有効化する必要があります。 Goliat を利用できるようにするには、最初に Pandora FMS Enterprise サーバを有効化する必要があります。
  
-  webserver 1+<code> 
 +webserver 1 
 +</code>
  
 実行したいリクエスト数に応じて、スレッド数およびデフォルトのタイムアウトを増やします。 実行したいリクエスト数に応じて、スレッド数およびデフォルトのタイムアウトを増やします。
行 33: 行 35:
 Goliat が使うライブラリのタイプ (LWP または CURL) を変更できる拡張設定トークンがあります。デフォルトでは CURL が利用されていますが、切り替えることができます。 Goliat が使うライブラリのタイプ (LWP または CURL) を変更できる拡張設定トークンがあります。デフォルトでは CURL が利用されていますが、切り替えることができます。
  
-  web_engine curl+<code> 
 +web_engine curl 
 + 
 +</code> 
 + 
 +<WRAP center round info 60%>\\ 
 +Pandora FMS は [[https://en.wikipedia.org/wiki/Cross-site_request_forgery|CSRF]] に対して保護されており、デバッグ時に Web チェックで次のメッセージが表示される場合があります:\\ 
 +''Cannot verify the origin of the request'' \\ 
 +[[:ja:documentation:03_monitoring:13_user_monitorization#概要|WUX 監視]] の使用を検討する際には、この保護を考慮に入れてください、</WRAP>
  
 ==== ウェブモジュールの作成方法 ==== ==== ウェブモジュールの作成方法 ====
 ウェブページをモニタするには、まずはモジュールタブをクリックします。その後 'ウェブサーバモジュールの新規作成(Create a new webserver module)' を選択し、//作成(Create)// をクリックします。 ウェブページをモニタするには、まずはモジュールタブをクリックします。その後 'ウェブサーバモジュールの新規作成(Create a new webserver module)' を選択し、//作成(Create)// をクリックします。
  
-{{ wiki:Gagita2.png?500 }}+{{  :wiki:pfms-creating_web_modules-goliat_server-img_002.png  }}
  
 //作成//をクリックすると、ウェブをモニタするために必要な設定を入力するためのフォームが表示されます。名前や、Webチェックのタイプなど、基本的なものです。 //作成//をクリックすると、ウェブをモニタするために必要な設定を入力するためのフォームが表示されます。名前や、Webチェックのタイプなど、基本的なものです。
  
-{{ wiki:goliat_types.jpg?600 }}+{{  :wiki:goliat_types.jpg?600  |goliat_types.jpg}}
  
 複数のチェックタイプが選択できます。 複数のチェックタイプが選択できます。
行 68: 行 78:
 </code> </code>
  
-{{ wiki:Resources-manage_agents-modules-remote_http_module_to_check_server_status_code.png?550 }}+{{  :wiki:resources-manage_agents-modules-remote_http_module_to_check_server_status_code.png?550  }}
  
 保存したのち、モジュールを強制実行して結果を見ることができます。 保存したのち、モジュールを強制実行して結果を見ることができます。
  
-{{ wiki:Resources-manage_agents-modules-remote_http_module_to_check_server_status_code-result.png?600 }}+{{  :wiki:resources-manage_agents-modules-remote_http_module_to_check_server_status_code-result.png?600  }}
  
 コマンドを追加した別の例: コマンドを追加した別の例:
行 85: 行 95:
 </code> </code>
  
-この基本的な例では、ウェブページに文字列があるかどうかをチェックしています。これは変数 **check_string** があるためです。 この変数では、HTML 自体をチェックすることはできません。テキストのサブストリングのみを検索します。 私たちは、Webサイト http://apache.org で "Apache Software Foundation" を探しています。 その文字列が存在する場合、チェックは OK を返します(サーバーの応答を確認するリモート HTTP モジュールの場合)+この基本的な例では、ウェブページに文字列があるかどうかをチェックしています。これは変数 **check_string** があるためです。 この変数では、HTML 自体をチェックすることはできません。テキストのサブストリングのみを検索します。 私たちは、Webサイト <[[http://apache.org|http://apache.org]]> で "Apache Software Foundation" を探しています。 その文字列が存在する場合、チェックは OK を返します(サーバーの応答を確認するリモート HTTP モジュールの場合)
  
 文字列が Web ページに存在しないことを確認するには、'check_not_string' を利用できます。 文字列が Web ページに存在しないことを確認するには、'check_not_string' を利用できます。
  
-  check_not_string Section 3+<code> 
 +check_not_string Section 3 
 +</code>
  
 ''check_string'' 構文がとる引数は、通常のテキスト文字列ではなく、"正規表現"です。 つまり、文字列 "Pandora FMS (4.0)" の検索は正規表現で行う必要があります。 例えば、''Pandora FMS \(4.0\)'' です。 これにより、強力な検索を行うことができますが、文字や数字以外の文字は ''\'' でエスケープする必要があることに注意してください。 ''check_string'' 構文がとる引数は、通常のテキスト文字列ではなく、"正規表現"です。 つまり、文字列 "Pandora FMS (4.0)" の検索は正規表現で行う必要があります。 例えば、''Pandora FMS \(4.0\)'' です。 これにより、強力な検索を行うことができますが、文字や数字以外の文字は ''\'' でエスケープする必要があることに注意してください。
行 106: 行 118:
 </WRAP> </WRAP>
  
-前のケースでは、 **curl** コマンドのパラメータが短いバージョンでは ''-L'' であり、長いバージョンでは ''--location'' であるため、 HTTP 3XX リダイレクトを受けた場合、リダイレクトされたドメインに対して再度実行されます。 **ただし、Pandora FMS の柔軟性により**、デバッグボタンを使用できます。 +前のケースでは、 **curl** コマンドのパラメータが短いバージョンでは、 
 + 
 +<code> 
 +-L 
 + 
 +</code> 
 + 
 +であり、長いバージョンでは、 
 + 
 +<code> 
 +--location 
 + 
 +</code> 
 + 
 +であるため、HTTP 3XX リダイレクトを受けた場合、リダイレクトされたドメインに対して再度実行されます。 **ただし、Pandora FMS の柔軟性により**、デバッグボタンを使用できます。 
  
-{{ wiki:Resources-manage agents-modules-remote http debug.png?700 }}+{{  :wiki:resources-manage_agents-modules-remote_http_debug.png?700  }}
  
 モジュールの作成時点では、モジュールは有効化されておらず、最初のチェックを実行した後モジュールを使用できるようになります。これを強制的に実行して時間を節約できます。  モジュールの作成時点では、モジュールは有効化されておらず、最初のチェックを実行した後モジュールを使用できるようになります。これを強制的に実行して時間を節約できます。 
行 114: 行 140:
 このモジュールを変更するときは、**デバッグ(Debug)** ボタンをクリックすると、デバッグモードに入って **クエリ(Query)** を編集できます。  このモジュールを変更するときは、**デバッグ(Debug)** ボタンをクリックすると、デバッグモードに入って **クエリ(Query)** を編集できます。 
  
-{{ wiki:Resources-manage agents-modules-remote http debug-curl parameters.png?800 }}+{{  :wiki:resources-manage_agents-modules-remote_http_debug-curl_parameters.png?800  }}
  
 モジュールのクエリを **クエリの実行(Execute query)** ボタンで実行したり、目的の結果が得られるまで他の値に変更して再実行したりできます。  モジュールのクエリを **クエリの実行(Execute query)** ボタンで実行したり、目的の結果が得られるまで他の値に変更して再実行したりできます。 
  
-{{ wiki:Resources-manage agents-modules-remote http debug-curl parameters pfms.png?700 }}+{{  :wiki:resources-manage_agents-modules-remote_http_debug-curl_parameters_pfms.png?700  }}
  
 ==== ウェブの応答時間チェック ==== ==== ウェブの応答時間チェック ====
行 149: 行 175:
  
 ==== Webコンテンツの取得 ==== ==== Webコンテンツの取得 ====
-特定の Web サイトが稼動しているか、どれくらい時間がかかっているかを知りたいわけではなく、Google の株価などコンテンツの内容を確認したい場合もあります。そのためには、適切な正規表現で //Remote HTTP module to retrieve numeric data// モジュールを利用します。+ 
 +特定の Web サイトが稼動しているか、どれくらい時間がかかっているかを知りたいわけではなく、[[:ja:documentation:08_technical_reference:02_annex_externalapi#get_total_modules|API を通して]]Pandora FMS サーバに登録されたモジュール数などコンテンツの内容を確認したい場合もあります。そのためには、適切な正規表現で **Remote HTTP module to retrieve numeric data** モジュールを利用します。
  
 <code> <code>
- task_begin + 
- get http://finance.google.com/finance/info?client ig&NASDAQ%3aGOOG +task_begin 
- get_content \d+\.\d+ +get http://127.0.0.1/pandora_console/include/api.php?apipass=1234&user=internal_API&pass=1234&op=get&op2=total_modules&id=0 
- task_end+get_content \d+ 
 +task_end 
 </code> </code>
  
 出力は次のようになります。 出力は次のようになります。
  
-{{ wiki:Google_stock_quote.png?700 }}+{{  :wiki:pfms-creating_web_modules-goliat_server-img_100.png  }}
  
-また、より複雑な HTTP 応答からのデータを収集するための正規表現を設定トークン ''get_content_advanced'' で指定することもできます。+また、より複雑な HTTP 応答からのデータを収集するための正規表現を設定トークン ''get_content_advanced'' で指定することもできます。この**実践的な**例では、Pandora FMS 公式ドキュメントのフッターから年を取得します(また、文字列データタイプ **Remote HTTP module to retrieve string data** で保存します: {{  :wiki:pfms-creating_web_modules-goliat_server-img_110.png  }}
  
 <code> <code>
- task_begin +task_begin 
- get http://finance.yahoo.com/q?s = GOOG +get https://pandorafms.com/manual/ 
- get_content_advanced <span id ="yfs_l84_goog">([\d\.]+)</span> +get_content_advanced \(c\) ([\d]+) Pandora FMS\(tm\) </span> 
- task_end+task_end 
 </code> </code>
  
-<WRAP center round important 60%> +{{  :wiki:pfms-creating_web_modules-goliat_server-img_120.png  }}しきい値の反転が使用されていることに注意してください。''2022'' 以外の文字列を受信すると、モジュールは障害状態になります。 
-''get_content_advanced'' に定義する正規表現は、カッコでくくらなければいけません。+ 
 +<WRAP center round important 75%> 
 +  ''get_content_advanced'' に定義する正規表現は、カッコでくくらなければいけません。 
 +  * 検索するテキストにカッコが含まれている場合は、バックスラッシュ ''\'' を使用して文字をエスケープする必要があります
 </WRAP> </WRAP>
 +
 +{{  :wiki:pfms-creating_web_modules-goliat_server-img_130.png  }}
  
 警告または障害状態のしきい値を設定するには、モジュールの設定を使用して、受信した文字列が期待どおりのものであることを確認します。 警告または障害状態のしきい値を設定するには、モジュールの設定を使用して、受信した文字列が期待どおりのものであることを確認します。
行 264: 行 299:
  
 ==== HTTP の簡単な認証 ==== ==== HTTP の簡単な認証 ====
 +
 いくつかのウェブページでは、[[https://en.wikipedia.org/wiki/Basic_access_authentication|HTTP 基本認証]] を必要とします。通常、これは高速認証、高度なセキュリティチェック(暗号化、データ永続性など)へのアクセスを可能にする最小限のセキュリティとして使用されます。 いくつかのウェブページでは、[[https://en.wikipedia.org/wiki/Basic_access_authentication|HTTP 基本認証]] を必要とします。通常、これは高速認証、高度なセキュリティチェック(暗号化、データ永続性など)へのアクセスを可能にする最小限のセキュリティとして使用されます。
  
-{{ wiki:conexion_http.png?650 }}+{{  :wiki:conexion_http.png?650  }}
  
 (上記スクリーンショットのように)拡張オプションで設定することも、次の設定トークンを使用して WEB タスク定義で直接設定することもできます。 (上記スクリーンショットのように)拡張オプションで設定することも、次の設定トークンを使用して WEB タスク定義で直接設定することもできます。
行 272: 行 308:
 **チェックタイプ(Check type)** **チェックタイプ(Check type)**
  
- HTTP サーバチェックタイプ+HTTP サーバチェックタイプ
  
 **http認証(ログイン)(http auth (login))** **http認証(ログイン)(http auth (login))**
  
- ユーザ名+ユーザ名
  
 **http認証(パスワード)(http auth (password))** **http認証(パスワード)(http auth (password))**
  
- パスワード+パスワード
  
 **プロキシ認証レルム(Proxy auth realm)** **プロキシ認証レルム(Proxy auth realm)**
  
- 認証レルム名+認証レルム名
  
 **プロキシ認証(サーバ)(Proxy auth (server))** **プロキシ認証(サーバ)(Proxy auth (server))**
  
- 待ち受けているドメインと HTTP ポート+待ち受けているドメインと HTTP ポート
  
 **プロキシURL(Proxy URL)** **プロキシURL(Proxy URL)**
  
- プロキシサーバの URL+プロキシサーバの URL
  
 **プロキシ認証(ログイン)(Proxy auth (login))** **プロキシ認証(ログイン)(Proxy auth (login))**
  
- プロキシ接続ユーザ+プロキシ接続ユーザ
  
 **プロキシ認証(パスワード)(Proxy auth (pass))** **プロキシ認証(パスワード)(Proxy auth (pass))**
  
- プロキシ接続パスワード+プロキシ接続パスワード
  
 タスク全体の例: タスク全体の例:
- 
 <code> <code>
 +
  task_begin  task_begin
  get http://artica.es/pandoraupdate4/ui/  get http://artica.es/pandoraupdate4/ui/
行 315: 行 351:
  http_auth_pass xxxx  http_auth_pass xxxx
  task_end  task_end
 +
 </code> </code>
 +
 +<WRAP center round important 60%> ''http_auth_pass'' に指定するパスワードではクォーテーションには対応していません。シングルクォート '' ' '' の利用は避けてください。
 +
 +</WRAP>
 +
  
 ==== WEB サービスおよび API モニタリング ==== ==== WEB サービスおよび API モニタリング ====
 +
 Pandora FMS と Goliat webチェックにて、[[https://en.wikipedia.org/wiki/Representational_state_transfer|REST]] APIを監視することができます。ただし、SOAP や XML-RPC を用いた API は監視できません。 Pandora FMS と Goliat webチェックにて、[[https://en.wikipedia.org/wiki/Representational_state_transfer|REST]] APIを監視することができます。ただし、SOAP や XML-RPC を用いた API は監視できません。
  
 例えば、動作しているときに数値(0からn)で返すような特定の Web API を監視したい場合、次のようなコードで、Pandora は何も応答が無い場合に障害と認識します。 例えば、動作しているときに数値(0からn)で返すような特定の Web API を監視したい場合、次のようなコードで、Pandora は何も応答が無い場合に障害と認識します。
- 
 <code> <code>
- task_begin + 
- get http://artica.es/integria/include/api.php?user = slerena&pass = xxxx&op = get_stats&params = opened,,1 +task_begin 
- check_string \n[0-9]+ +get http://artica.es/integria/include/api.php?user=my_user&pass=my_pass&op=get_stats&ms=opened,,
- task_end+check_string \n[0-9]+ 
 +task_end 
 </code> </code>
  
行 348: 行 392:
  
 0 0
 +
 </code> </code>
  
行 356: 行 401:
 <code> <code>
  task_begin  task_begin
- get https://swapi.co/api/planets/1/+ get https://swapi.dev/api/planets/1/
  get_content Tatooine  get_content Tatooine
  task_end  task_end
 +
 </code> </code>
  
行 368: 行 414:
  get_content imposter  get_content imposter
  task_end  task_end
 +
 </code> </code>
  
行 373: 行 420:
  
 **get_content_advanced** でモジュールを作成することもできます。 **get_content_advanced** でモジュールを作成することもできます。
- 
 <code> <code>
  task_begin  task_begin
行 379: 行 425:
  get_content_advanced "Nominee":"([A-Za-z]]+)","Year":"1990"  get_content_advanced "Nominee":"([A-Za-z]]+)","Year":"1990"
  task_end  task_end
 +
 </code> </code>
  
 この呼び出しは以下を返します。 この呼び出しは以下を返します。
  
-{{ wiki:APIwiki1.png?600 }}+{{  :wiki:apiwiki1.png?600  }}
  
 Pandora FMS は、次のように結果を表示します。 Pandora FMS は、次のように結果を表示します。
  
-{{ wiki:APIwiki2.png?400 }}+{{  :wiki:apiwiki2.png?400  }}
  
 +<WRAP center round important 60%> 呼び出しが正しく実行されるように、括弧内にキャプチャグループを適切に定義することが重要です。 </WRAP>
  
-<WRAP center round important 60%> +<WRAP center round important 60%> API 呼び出しを作成すときは宛先 API 呼び出し許可する適切な権限があるかどうかを確認するがあります。 </WRAP>
-呼び出しが正しく実行されように括弧内キャプチャグループを適切に定義することが重す。 +
-</WRAP>+
  
-<WRAP center round important 60%> 
-API 呼び出しを作成するときは、宛先 API に呼び出しを許可する適切な権限があるかどうかを確認する必要があります。 
-</WRAP> 
  
 ==== HTTPS モニタリング ==== ==== HTTPS モニタリング ====
行 432: 行 475:
  
 === LWP の代わりの Curl の利用 === === LWP の代わりの Curl の利用 ===
-LWP は、複数スレッドで HTTPS リクエストを実行するとクラッシュすることがあります(OpenSSL の制約による)。代替としては [[https://curl.se/dlwiz/|**curl** ツール]] を利用することです。この問題を解決するためには、///etc/pandora/pandora_server.conf// を編集し、次の行を加えます。 
  
-  web_engine curl+LWP は、複数スレッドで HTTPS リクエストを実行するとクラッシュすることがあります(OpenSSL の制約による)。代替としては [[https://curl.se/dlwiz/|curl ツール]] を利用することです。この問題を解決するためには、///etc/pandora/pandora_server.conf// を編集し、次の行を加えます。 
 +<code> 
 + 
 +web_engine curl 
 + 
 +</code>
  
 Pandora FMS サーバを再起動すると、ウェブチェックに LWP の代わりに Curl バイナリが利用されます。 Pandora FMS サーバを再起動すると、ウェブチェックに LWP の代わりに Curl バイナリが利用されます。
 +
  
 ===== 高度なトランザクション監視 ===== ===== 高度なトランザクション監視 =====
ºº