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

Weitere ähnliche Inhalte

Was ist angesagt?

(DL Hacks輪読) How transferable are features in deep neural networks?
(DL Hacks輪読) How transferable are features in deep neural networks?(DL Hacks輪読) How transferable are features in deep neural networks?
(DL Hacks輪読) How transferable are features in deep neural networks?
Masahiro Suzuki
 

Was ist angesagt? (20)

(DL Hacks輪読) How transferable are features in deep neural networks?
(DL Hacks輪読) How transferable are features in deep neural networks?(DL Hacks輪読) How transferable are features in deep neural networks?
(DL Hacks輪読) How transferable are features in deep neural networks?
 
Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦Kubernetesによる機械学習基盤への挑戦
Kubernetesによる機械学習基盤への挑戦
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
国内トラフィックエンジニアリングの現状
国内トラフィックエンジニアリングの現状国内トラフィックエンジニアリングの現状
国内トラフィックエンジニアリングの現状
 
実践イカパケット解析α
実践イカパケット解析α実践イカパケット解析α
実践イカパケット解析α
 
AS45679 on FreeBSD
AS45679 on FreeBSDAS45679 on FreeBSD
AS45679 on FreeBSD
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向IPv4/IPv6 移行・共存技術の動向
IPv4/IPv6 移行・共存技術の動向
 
CTFとは
CTFとはCTFとは
CTFとは
 
CpawCTF 勉強会 Network
CpawCTF 勉強会 NetworkCpawCTF 勉強会 Network
CpawCTF 勉強会 Network
 
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
Optuna Dashboardの紹介と設計解説 - 2022/12/10 Optuna Meetup #2
 
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
MLOps に基づく AI/ML 実運用最前線 ~画像、動画データにおける MLOps 事例のご紹介~(映像情報メディア学会2021年冬季大会企画セッショ...
 
TensorRT Inference Serverではじめる、 高性能な推論サーバ構築
TensorRT Inference Serverではじめる、 高性能な推論サーバ構築TensorRT Inference Serverではじめる、 高性能な推論サーバ構築
TensorRT Inference Serverではじめる、 高性能な推論サーバ構築
 
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタックONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
ONIC2017 プログラマブル・データプレーン時代に向けた ネットワーク・オペレーションスタック
 
eBPFは何が嬉しいのか
eBPFは何が嬉しいのかeBPFは何が嬉しいのか
eBPFは何が嬉しいのか
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正版)」
 
Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話Chainer でのプロファイリングをちょっと楽にする話
Chainer でのプロファイリングをちょっと楽にする話
 
第 1 回 Jetson ユーザー勉強会
第 1 回 Jetson ユーザー勉強会第 1 回 Jetson ユーザー勉強会
第 1 回 Jetson ユーザー勉強会
 
目grep入門 +解説
目grep入門 +解説目grep入門 +解説
目grep入門 +解説
 
NEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdfNEDIA_SNIA_CXL_講演資料.pdf
NEDIA_SNIA_CXL_講演資料.pdf
 

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

PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -
Katsumi Onishi
 
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
TatsuyaKatayama
 
Pylons ユーザのための Pyramid 移行ガイド
Pylons ユーザのための Pyramid 移行ガイドPylons ユーザのための Pyramid 移行ガイド
Pylons ユーザのための Pyramid 移行ガイド
Nozomu Kaneko
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
Makoto Kato
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
hiro345
 

Ähnlich wie Pandora FMS による Web サービス監視 (20)

How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
NGINX製品の最新機能アップデート情報
NGINX製品の最新機能アップデート情報NGINX製品の最新機能アップデート情報
NGINX製品の最新機能アップデート情報
 
PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -PhoneGap勉強会 - 実践編 -
PhoneGap勉強会 - 実践編 -
 
Flumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システムFlumeを活用したAmebaにおける大規模ログ収集システム
Flumeを活用したAmebaにおける大規模ログ収集システム
 
OSC福岡 20111203
OSC福岡 20111203OSC福岡 20111203
OSC福岡 20111203
 
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
OpenMDAOの最適化を試す(第23回オープンCAE勉強会@関西)
 
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
「NVIDIA プロファイラを用いたPyTorch学習最適化手法のご紹介(修正前 typoあり)」
 
Pylons ユーザのための Pyramid 移行ガイド
Pylons ユーザのための Pyramid 移行ガイドPylons ユーザのための Pyramid 移行ガイド
Pylons ユーザのための Pyramid 移行ガイド
 
Firefoxの開発プロセス
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
 
Nseg20120929
Nseg20120929Nseg20120929
Nseg20120929
 
NGINX Ingress Controller on RedHat OpenShift.pdf
NGINX Ingress Controller on RedHat OpenShift.pdfNGINX Ingress Controller on RedHat OpenShift.pdf
NGINX Ingress Controller on RedHat OpenShift.pdf
 
爆速プレビュープロキシ pool
爆速プレビュープロキシ pool爆速プレビュープロキシ pool
爆速プレビュープロキシ pool
 
Plugman code-reading
Plugman code-readingPlugman code-reading
Plugman code-reading
 
Alfresco CI
Alfresco CIAlfresco CI
Alfresco CI
 
OWASP Projects
OWASP ProjectsOWASP Projects
OWASP Projects
 
Oracle GoldenGate EM Plugin 13c セットアップガイド
Oracle GoldenGate EM Plugin 13c セットアップガイドOracle GoldenGate EM Plugin 13c セットアップガイド
Oracle GoldenGate EM Plugin 13c セットアップガイド
 
Grunt入門
Grunt入門Grunt入門
Grunt入門
 
20131227_appium+rspec
20131227_appium+rspec20131227_appium+rspec
20131227_appium+rspec
 
Heroku Inside
Heroku InsideHeroku Inside
Heroku Inside
 
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
仮想マシンざっくり解説と実践Vagrant | StaticPress × S3 × Vagrant 勉強会
 

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