Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
PandoraFMSによるWebサービス監視
株式会社アールワークス/PandoraFMS JP
打田 旭宏
1
目次
‣ PandoraFMS について
‣ ポート監視(ネットワークサーバ)
‣ http 応答監視(プラグインサーバ)
‣ 標準プラグイン/Nagios プラグイン
‣ ブラウザを利用する監視(プラグインサーバ )
‣ Selenium W...
PandoraFMS ご紹介
‣ スペイン発の統合監視ツール
‣ コミュニティページ: http://pandorafms.org
‣ ドキュメント: http://wiki.pandorafms.com
‣ 開発: https://githu...
PandoraFMS のアーキテクチャ
4
PandoraFMS 用語
‣ エージェント
‣ 通常 PandoraFMS での監視対象機器のことです
‣ より細かくいえばモジュールをまとめる単位
‣ モジュール
‣ 監視項目
‣ 監視手法により更に分類されます
5
モジュールの分類
‣ データサーバモジュール
‣ ネットワークサーバモジュール
‣ プラグインサーバモジュール
‣ WMIサーバモジュール
‣ 予測サーバモジュール(エンタープライズ版のみ)
‣ Webサーバモジュール(エンタープライズ版のみ)...
お試し Docker 環境
‣ docker-compose 環境を用意しました
‣ 今回紹介する監視方法を試せます
‣ Docker ホストの 80 番ポートで pandora_console
が閲覧できます。ユーザ名: admin パスワー...
ポート監視
ネットワークサーバモジュールを利用すると以下の
情報収集ができます
‣ ICMP (レイテンシー/真偽値)
‣ SNMP (文字列/数値データ/数値差分/真偽値)
‣ TCP (文字列/数値データ/数値差分/真偽値)
Web 監視と...
ポート監視
設定に必要な情報
‣ 「対象IP」と「ポート番号」
‣ 「TCP 送信文字列」と「TCP 受信文字列」
例: / に対する GET リクエストで 200 OK が返るか
‣ TCP 送信文字列: GET / HTTP/1.1^M^M...
http応答監視
プラグインサーバモジュールでは pandora_server 上で
コマンドを実行して以下の情報収集ができます
‣ 2種類のプラグインタイプ
‣ 標準タイプ(文字列/数値データ/数値差分/真偽値)
‣ Nagios タイプ(真...
http応答監視(標準タイプ)
‣ 標準タイプのプラグインは登録したコマンドの標
準出力を結果として受け取ります
‣ 例えば curl を利用して監視するなら
‣ 前後に「_」を含む文字列は実行前にマクロとして
評価されます
‣ 真偽値の場合は...
http応答監視(標準タイプ)
各監視対象に対して共通で利用する
コマンドをプラグインとして登録し
ます
右の設定例では
‣ パラメータマクロとして 「URL
」と 「タイムアウト」をとり
ます
監視対象毎にパラメータマクロを変
更して利用しま...
http応答監視(標準タイプ)
設定例
13
http応答監視(Nagiosタイプ)
Nagios プラグインの実行結果(OK/CRITICAL)などに応
じて結果を返します
‣ http 応答を nagios の check_http プラグインで監視
する例
Nagios タイプのプラ...
http応答監視(Nagiosタイプ)
‣ プラグインタイプを「標準」か
ら「Nagios」にする以外は標準
タイプのプラグインと同様
‣ 利用する Nagios プラグインの
オプション(-H/-p/-u/-t など)を
パラメータマクロとし...
http応答監視(Nagiosタイプ)
設定例
16
Webサーバモジュール
エンタープライズ版に含まれるWebサーバモジュール
を利用すると以下のような機能を含む監視が可能です
‣ 文字列存在を含むかの監視(正規表現)
‣ プロキシ経由での監視
‣ フォームへの入力を含む監視
‣ HTTP認証を...
シナリオ監視
‣ ユーザ操作を実際のブラウザで再現し、Webサイ
トが意図通りに動作しているか確認
‣ 実際のブラウザを利用するメリット
‣ 想定するユーザ環境に近い状況で動きを確認
‣ ブラウザ上での JavaScript の実行・再現
‣ ...
WebDriver のアーキテクチャ
‣ 主な構成要素
‣ クライアント(ライブラリなど)
‣ ブラウザドライバ(リクエストを受け
て実際にブラウザを動かす部分)
‣ Selenium Server (構成によっては省
略可能、複数ブラウザがあ...
WebDriver を利用するツール
‣ 各言語向けバインディングを利用したスクリプト
‣ Selenium 公式: Java/C#/Ruby/Python/JavaScript
‣ サードパーティライブラリ(Perl/PHP/Haskel…)...
今回扱う環境
お試し環境として用意している環境
‣ クライアント: selenese-runner-java
‣ ブラウザドライバー: chromedriver
‣ 今回紹介する方法の制限
‣ 複数種類のブラウザを利用する方法
については扱いま...
selenese-runner-java
‣ https://github.com/vmi/selenese-runner-
java/releases から入手可能
‣ SeleniumIDE でテストケース html ファイルを作成
‣ 以...
selenese-runner-java
お試し環境に JavaScript ベースの Web アプ
リケーションを同梱しています
そのアプリケーションを監視するテストケー
スファイル例
‣ open コマンドでページを開く
‣ waitFor...
シナリオ監視
設定例
24
PandoraFMS の console 拡張機能
シナリオ監視できても、実行結果の確認がしにくいと
いう問題が…
‣ PandoraFMS には監視コンソールを拡張する機能
があります。
‣ 監視プラグインと協調動作させるることで実行結
果の...
pandoa_console 拡張例
26
宣伝
株式会社アールワークスでは Selenium WebDriver を利
用した Web シナリオ監視サービスを SaaS 提供してい
ます
‣ シナリオ監視用 pandora_console 拡張を含む
PandoraFMS Enterp...
Upcoming SlideShare
Loading in …5
×

Pandora FMS による Web サービス監視

689 views

Published on

Pandora FMS でできる監視のうち、特に外部からの Web サイトの監視に焦点をあてて、ポート監視、http応答、JavaScriptの実行も含むシナリオ監視などについて紹介します。

Published in: Internet
  • Be the first to comment

Pandora FMS による Web サービス監視

  1. 1. PandoraFMSによるWebサービス監視 株式会社アールワークス/PandoraFMS JP 打田 旭宏 1
  2. 2. 目次 ‣ PandoraFMS について ‣ ポート監視(ネットワークサーバ) ‣ http 応答監視(プラグインサーバ) ‣ 標準プラグイン/Nagios プラグイン ‣ ブラウザを利用する監視(プラグインサーバ ) ‣ Selenium WebDriver ‣ Pandora console 拡張機能 2
  3. 3. PandoraFMS ご紹介 ‣ スペイン発の統合監視ツール ‣ コミュニティページ: http://pandorafms.org ‣ ドキュメント: http://wiki.pandorafms.com ‣ 開発: https://github.com/pandorafms/pandorafms ‣ 日本語コミュニティ: http://pandorafms.jp ‣ 最新リリースは 6.0SP1 ライセンスは GPLv2 ‣ 商用版 (Enterprise 版)も http://pandorafms.com 3
  4. 4. PandoraFMS のアーキテクチャ 4
  5. 5. PandoraFMS 用語 ‣ エージェント ‣ 通常 PandoraFMS での監視対象機器のことです ‣ より細かくいえばモジュールをまとめる単位 ‣ モジュール ‣ 監視項目 ‣ 監視手法により更に分類されます 5
  6. 6. モジュールの分類 ‣ データサーバモジュール ‣ ネットワークサーバモジュール ‣ プラグインサーバモジュール ‣ WMIサーバモジュール ‣ 予測サーバモジュール(エンタープライズ版のみ) ‣ Webサーバモジュール(エンタープライズ版のみ) 6
  7. 7. お試し Docker 環境 ‣ docker-compose 環境を用意しました ‣ 今回紹介する監視方法を試せます ‣ Docker ホストの 80 番ポートで pandora_console が閲覧できます。ユーザ名: admin パスワード: pandora $ git clone https://github.com/rworksjp/docker-compose-osc2016-tokyo-spring $ cd docker-compose-osc2016-tokyo-spring $ cp dot.env .env $ edit .env $ docker-compose pull $ docker-compose up -d mysql $ docker-compose up -d pandora_console $ docker-compose up -d pandora_server $ docker-compose up -d pandora_agent 7
  8. 8. ポート監視 ネットワークサーバモジュールを利用すると以下の 情報収集ができます ‣ ICMP (レイテンシー/真偽値) ‣ SNMP (文字列/数値データ/数値差分/真偽値) ‣ TCP (文字列/数値データ/数値差分/真偽値) Web 監視ということで http の応答を確認するために TCP(真偽値) で情報収集する例を考えます 8
  9. 9. ポート監視 設定に必要な情報 ‣ 「対象IP」と「ポート番号」 ‣ 「TCP 送信文字列」と「TCP 受信文字列」 例: / に対する GET リクエストで 200 OK が返るか ‣ TCP 送信文字列: GET / HTTP/1.1^M^M ‣ TCP 受信文字列: 200 OK http://wiki.pandorafms.com/index.php?title=Pandora:Documentation_ja:Remote_Monitoring 9
  10. 10. http応答監視 プラグインサーバモジュールでは pandora_server 上で コマンドを実行して以下の情報収集ができます ‣ 2種類のプラグインタイプ ‣ 標準タイプ(文字列/数値データ/数値差分/真偽値) ‣ Nagios タイプ(真偽値) 単純なプラグインとして真偽値の標準タイププラグイ ンと Nagios プラグインでの監視する例を考えます 10
  11. 11. http応答監視(標準タイプ) ‣ 標準タイプのプラグインは登録したコマンドの標 準出力を結果として受け取ります ‣ 例えば curl を利用して監視するなら ‣ 前後に「_」を含む文字列は実行前にマクロとして 評価されます ‣ 真偽値の場合は 1 が正常、0 が障害を表します http://wiki.pandorafms.com/index.php?title=Pandora:Documentation_ja:Remote_Monitoring 11 /bin/sh -c 'curl -sf --connect-timeout _field2_ "_field1_" > /dev/null && echo 1 || echo 0'
  12. 12. http応答監視(標準タイプ) 各監視対象に対して共通で利用する コマンドをプラグインとして登録し ます 右の設定例では ‣ パラメータマクロとして 「URL 」と 「タイムアウト」をとり ます 監視対象毎にパラメータマクロを変 更して利用します 12
  13. 13. http応答監視(標準タイプ) 設定例 13
  14. 14. http応答監視(Nagiosタイプ) Nagios プラグインの実行結果(OK/CRITICAL)などに応 じて結果を返します ‣ http 応答を nagios の check_http プラグインで監視 する例 Nagios タイプのプラグインは Nagios プラグインの実 行結果に応じて結果を返す以外は標準タイプのプラグ インと同じように動きます 14 /usr/lib64/nagios/plugins/check_http -H "_field1_" -p _field2_ -u "_field3_" -t "_field4_" _field5_
  15. 15. http応答監視(Nagiosタイプ) ‣ プラグインタイプを「標準」か ら「Nagios」にする以外は標準 タイプのプラグインと同様 ‣ 利用する Nagios プラグインの オプション(-H/-p/-u/-t など)を パラメータマクロとして利用 ‣ 他にも -s オプションを利用す ることで文字列チェックなども 可 http://nagios-plugins.org/doc/man/check_http.html 15
  16. 16. http応答監視(Nagiosタイプ) 設定例 16
  17. 17. Webサーバモジュール エンタープライズ版に含まれるWebサーバモジュール を利用すると以下のような機能を含む監視が可能です ‣ 文字列存在を含むかの監視(正規表現) ‣ プロキシ経由での監視 ‣ フォームへの入力を含む監視 ‣ HTTP認証を含むページの監視 http://wiki.pandorafms.com/index.php?title=Pandora:Documentation_ja:Web_Monitoring
  18. 18. シナリオ監視 ‣ ユーザ操作を実際のブラウザで再現し、Webサイ トが意図通りに動作しているか確認 ‣ 実際のブラウザを利用するメリット ‣ 想定するユーザ環境に近い状況で動きを確認 ‣ ブラウザ上での JavaScript の実行・再現 ‣ 今回は Selenium WebDriver を使う方法を扱います 。他にも JavaScript で PhantomJS/SlimerJS とい ったヘッドレスブラウザを呼び出す方法もありま す。 18
  19. 19. WebDriver のアーキテクチャ ‣ 主な構成要素 ‣ クライアント(ライブラリなど) ‣ ブラウザドライバ(リクエストを受け て実際にブラウザを動かす部分) ‣ Selenium Server (構成によっては省 略可能、複数ブラウザがある場合の 割り振り、ドライバ起動などを担当) ‣ 各要素は WebDriver specに従い通信 https://www.w3.org/TR/webdriver/ (実態は RESTful API) ‣ クライアント側がブラウザドライバの 実装を気にしなくて済む、独自ブラウ ザドライバ実装によるモバイル対応な どの利点 19
  20. 20. WebDriver を利用するツール ‣ 各言語向けバインディングを利用したスクリプト ‣ Selenium 公式: Java/C#/Ruby/Python/JavaScript ‣ サードパーティライブラリ(Perl/PHP/Haskel…) ‣ 今回は selenese-runner-java を使います ‣ SeleniumIDE (Firefox 拡張) でブラウザ操作を録 画 ‣ 生成されたテストケース(WebDriver 以前の Selenium 向け)を WebDriver に変換し実行 20
  21. 21. 今回扱う環境 お試し環境として用意している環境 ‣ クライアント: selenese-runner-java ‣ ブラウザドライバー: chromedriver ‣ 今回紹介する方法の制限 ‣ 複数種類のブラウザを利用する方法 については扱いません ‣ ブラウザドライバを含むシナリオの 実行環境の監視方法についても扱い ません ‣ 複数種のブラウザを扱う場合は例えば selenium-grid-hub などが利用できます 21
  22. 22. selenese-runner-java ‣ https://github.com/vmi/selenese-runner- java/releases から入手可能 ‣ SeleniumIDE でテストケース html ファイルを作成 ‣ 以下のようなコマンドで利用(今回の環境では) ‣ selenese-runnar-java には色々なオプションがある ので今回紹介する方法以外でも使えます $ java -jar /opt/selenese/selenese-runner.jar --driver remote --remote-browser chrome --remote-url http://chromedriver:9515 --cli-args "--no-sandbox" "_field1_" && echo 1 || exit 0 22
  23. 23. selenese-runner-java お試し環境に JavaScript ベースの Web アプ リケーションを同梱しています そのアプリケーションを監視するテストケー スファイル例 ‣ open コマンドでページを開く ‣ waitForElementPresent コマンドで特 定の要素が表われるのを待つ ‣ click コマンドで特定要素のクリック ‣ assertText コマンドで特定要素に意図 した文字列があるか確認 23
  24. 24. シナリオ監視 設定例 24
  25. 25. PandoraFMS の console 拡張機能 シナリオ監視できても、実行結果の確認がしにくいと いう問題が… ‣ PandoraFMS には監視コンソールを拡張する機能 があります。 ‣ 監視プラグインと協調動作させるることで実行結 果の詳細を表示することもできます http://wiki.pandorafms.com/index.php?title=Pandora:Documentation_ja:Anexo_Console_extensions_develop ment 25
  26. 26. pandoa_console 拡張例 26
  27. 27. 宣伝 株式会社アールワークスでは Selenium WebDriver を利 用した Web シナリオ監視サービスを SaaS 提供してい ます ‣ シナリオ監視用 pandora_console 拡張を含む PandoraFMS Enterprise がフロントエンド ‣ ブラウザは Firefox, Chrome(PC/Android), IE を選択 可SaaS なのでブラウザ実行環境を用意いただく必 要がありません ‣ http://ms.rworks.jp/saas/s-scenario-monitoring/ 27

×