System Monitoring Column <システム監視コラム>

Webシナリオ監視

Category: 実践編

2017.02.15

目次

はじめに

中西です。
前回の記事で、RworksのWebシナリオ監視でできることとその使用例について書きました。
これからの記事ではより具体的にWebシナリオ監視について紹介するために、Webサイトの監視として実際にWebシナリオ監視をします。また、従来のWeb監視との比較を行いたいので、前回の記事で紹介したスクレイピングを使ったWeb監視もします。そして、Webシナリオ監視とスクレイピングを使ったWeb監視で同一の機能の監視をして、実際にその機能に障害を発生させることで両者の比較をします。

この比較を以下のような流れで説明します。

  • 監視対象となるWebサイトを作成して、どのような監視をするかについて決める
  • 監視サーバを構築し、作成したWebサイトをスクレイピングによってWeb監視する
  • 作成したWebサイトをWebシナリオ監視する
  • 実際に障害を発生させ、それぞれの監視の比較と考察を行う

それぞれの項目を1記事とし、全4回のシリーズとして説明していきます。

本記事では、まずサーバを構築して監視対象となるWebサイトを作成し、WebブラウザでWebサイトが閲覧できるようになるまでを説明します。そして作成したWebサイトをどのように監視するかを決めます。

Webサイトを作成する

どういうWebサイトを作成するか

Webサイトを作成するにあたりどういう内容のWebサイトを作成するかを考え、以下の設定で作ることにしました。

  • 売上や利益に直結しているWebサイト
  • ユーザのログイン、フォームによる問い合わせ、サイト内検索などの機能を備えたWebサイト
  • PCとスマートフォンで異なったデザインで表示されるレスポンシブなWebサイト

まず一つ目の「売上・利益に直結している内容のWebサイト」についてです。監視するWebサイトが、いつどのタイミングでサービス稼働が停止してしまっても問題ないようなものでは監視を導入する意味があまりありません。一方で、Webサイトを運用することが売上や利益に直結しているような内容のWebサイトであれば直感的に監視を導入することの重要性が分かります。そこで、今回はWebサイトのサービスが落ちたら売り上げが無くなるという状況である架空の会社(あーるわーくす商店)があると仮定し、ダミーの会員制通販サイトを作成します。

次に「ユーザのログイン、フォームによる問い合わせ、サイト内検索など、Webサイトの基本的な機能を備えたWebサイト」についてです。近年公開されているWebサイトは、これらの機能が備わっているものが多くみられます。また、あーるわーくす商店のWebサイトはエンドユーザにとって使いやすいWebサイトであって欲しいため、上記機能を備えたWebサイトを作成します。

最後に「PCとスマートフォンで異なったデザインで表示されるレスポンシブなWebサイト」についてです。近年のスマートフォンやタブレットの利用者増加に伴い、レスポンシブデザインを採用しているWebサイトが増えています。スマートフォンからWebサイトを閲覧する人が今後も増加するという想定をすると、スマートフォンから通販サイトにアクセスして商品を購入するエンドユーザも増加すると考えられます。このことから、レスポンシブなWebサイトであることも条件として加えます。

用いるツールの選定、サーバを構築、Webサイトの立ち上げ

上記のWebサイトの設定を踏まえ、ECサイトの構築によく利用されるEC-CUBEを使用してECサイト(あーるわーくす商店)を構築することにします。(EC-CUBE については製品サイトをご参照ください)

次にWebサイトが動作するサーバを構築します。サーバを環境をお手軽に構築するために、今回はDockerを用いてDockerの母艦マシン上に仮想環境を作成することにします。DockerとはLinux上にコンテナと呼ばれる仮想環境を作成できるオープンソースソフトウェアです。Dockerでは、OSやアプリケーションがパッケージ化されたイメージを利用することで、OSの設定やアプリケーションの初期設定などの作業を削減することができます。今回は「Docker Hub」でEC-CUBEがインストールされている公式イメージを探したのですが見つかりませんでした。そこで、公式イメージの ubuntu を用いて仮想環境を作成し、その後手動でEC-CUBEのインストールすることにします。

母艦マシン上にて以下のdockerコマンドを実行することで仮想環境を作成しました。

$ sudo docker run -it --name dummysite-eccube --publish ${IPアドレス}:80:80  ubuntu:14.04 /bin/bash

作成した仮想環境にEC-CUBEの動作に必要なパッケージをインストールして、それを起動します。
また、同時にEC-CUBE用のデータベース作成をします。

$ apt-get update
$ apt-get upgrade
$ apt-get install apache2 mysql-client mysql-server php5 php-guzzle php5-mysql php5-curl php5-mysql php5-mcrypt php-apc wget unzip
$ service apache2 start
$ service mysql start
$ mysql -u root -p
mysql> create database eccube;

そして、EC-CUBEをインストールし、Apacheのドキュメントルートに設置します。

$ cd /var/www/html/
$ wget http://downloads.ec-cube.net/src/eccube-3.0.12-p1.zip
$ unzip eccube-3.0.12-p1.zip
$ mv eccube-3.0.12-p1 eccube

EC-CUBEでは.htaccessが使われているのでApacheの.confファイルにAllowOverride Allを加えます。
また、.htaccessを見るとrewriteを使っていることが分かったので、mod_rewriteも有効にします。

$ vi /etc/apache2/apache2.conf // AllowOverride Allにする
$ a2enmod rewrite
$ service apache2 restart

ここまでを実施し、Webブラウザからアクセスすることで、Webサイトが閲覧できることを確認しました。

あーるわーくす商店のWebシナリオ監視

作成したWebサイトを監視する際の3つのポイント

最後に、ここまでで作ったWebサイトに対して、どのようなポイントを監視するかを決めます。スクレイピングを使った監視でもWebシナリオ監視でも監視できるポイントとしては、以下のようなものがあります。

  1. 会員登録の機能の正常性
  2. 商品購入の機能の正常性
  3. フォームによる問い合わせ機能の正常性

まず、会員登録の機能についてです。この機能が正しく動作していなかった場合、非会員のエンドユーザは会員になることが出来ない状態になってしまいます。この機能が正しく動作しない原因として様々なことが想定できます。Webサーバやデータベースサーバが応答していないというミドルウェアの障害である場合や、PHPやPerlなどのサーバサイドのプログラムが正しく動いていない場合、JavaScriptのようなWebブラウザで動作するプログラムが正しく動いていない場合などが挙げられます。この障害が発生した際のダウンタイムを短縮したいため、会員登録の機能を実行して正常に動作しているかを監視をします。また、監視によって会員登録の機能を実行し続けると会員が増え続けてしまうので、会員登録をして登録された会員を退会させるところまでを実行します。

次に、商品購入の機能についてです。この機能が正しく動作していなかった場合、エンドユーザは商品を買うことが出来ない状態になってしまいます。正しく動作しない原因は、会員登録の機能で挙げたものと同様です。また、公開されている通販サイトにおいて商品購入の機能はページ遷移やユーザによる操作などの多くのステップを必要とする場合が多く見られます。例えば、今回立ち上げたWebサイトではトップページへのアクセスから商品購入完了画面に遷移するまで、次のステップが必要です。

  1. Webブラウザでログインページにアクセスする
  2. ログインフォームが表示されたら、ログイン情報を入力してログインボタンをクリックする
  3. 欲しい商品の詳細ページへのリンクをクリックする
  4. 商品をカートに入れるボタンをクリックする
  5. カートへ進むボタンをクリックする
  6. カートの中身が所望のものであることを確認して、レジに進むボタンをクリックする
  7. お客様情報及び注文内容が所望のものであることを確認し、完了ボタンをクリックする
  8. 注文完了ページが表示されることを確認する

商品購入の機能の正常性を判断するためには、上記の処理が全て正常に動作していることが必要です。今回は上記の処理を順番に実行して正常に動作しているかを監視します。また、監視によって商品購入の機能を実行し続けるため、監視による購入の記録が大量に残ってしまい不都合が生じます。よって監視において、商品購入の申し込みから、購入した商品をキャンセルするところまでを実行します。

最後に、フォームによる問い合わせ機能について考えます。この機能が正しく動作していなかった場合、エンドユーザからお問い合わせが出来ない状態となってしまいます。この機能が正しく動作しない原因も、会員登録の機能で挙げたものと同様のものが挙げられます。この機能の障害が発生していた場合、たまたま問い合わせをするユーザがいないからお問い合わせメールが来ていないのか、障害によって問い合わせメールが届かないのかの判断が難しいという問題があります。そのため、機能の障害が発覚することが遅れてしまい、後々の調査でこの日のこの時間帯にダウンタイムが発生していました、ということが分かるという事態も起こり得ます。このことから、実際にフォームによる問い合わせ機能を実行して正常に動作しているかの監視も必要です。

以上が、ECサイトの監視のポイントです。また、今回作成したWebサイトはレスポンシブなデザインであり、スマートフォンから見た上記機能の正常性も監視します。

まとめとおわりに

今回は、Web監視対象である ECサイトを立ち上げ、監視項目を検討しました。次回以降の記事では、どう監視設定に落とし込んでいくのか、具体的に考察していきます。
次回は、本記事で作成したWebサイトをスクレイピングによってWeb監視します。

Webシナリオ監視サービス

Webシナリオ監視サービス

Webシナリオ監視サービス

お客様の Webサイトの一連の操作をユーザ視点で自動監視する、クラウド型監視サービス。「実際のWebブラウザ(Chrome, Firefox, IE)やAndroid実機を利用」し、オンラインショップであればログインして商品を購入するまでのWebブラウザを使った一連の処理の流れを、定期的にトレースして監視することができます。

Free

資料ダウンロード

課題解決に役立つ詳しいサービス資料はこちら

資料ダウンロード
  • Webシナリオ監視サービスカタログ

    Webシナリオ監視サービスの提供機能、活用シーン、料金をご確認いただけます。実ブラウザを使ってユーザ視点で定期監視を行い、Webサイトの異常を早期に検知できます。

Tag: Webシナリオ監視

Contactお問い合わせ

お見積もり・ご相談など、お気軽にお問い合わせください。

single.php