Webサーバの監視方法とツール

このQ&Aのポイント
  • Webサーバを監視するための方法とツールについて教えてください
  • Webサーバの監視ツールを使った24時間監視方法について教えてください
  • 監視対象のWebサーバにエージェントを入れられない場合でも使える監視ツールを教えてください
回答を見る
  • ベストアンサー

Webサーバの監視

はじめまして。 Webサーバの監視について教えていただければと思います。 Apacheを使ってWebサーバを立てて、インターネットで外部から見れることを確認しました。 このWebサーバの応答速度を24時間監視し続けたいです。 具体的には、HTTP(80)とHTTPS(443)に一定感覚でリクエストを投げ、 応答に3分以上かかったら遅延の発生とみなし、管理者にメールを出す。 監視するサーバはWebサーバ2台です。 監視用のPCはWebサーバとは別途、WindowsPCを24時間稼動させます。 (LINUX機はありません) 制限事項として、以下のものがあるとして、何かよいツールはありますでしょうか。 ・監視対象のサーバにエージェントは入れられない ・外部のサイトのサービスで監視するようなのはNG ・できるだけ無償で行いたい Nagios、opManager辺りができそうなのですが、それでも上のことだけをやるには オーバスペックな気がします。他に何かソフトがありましたら教えて欲しいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • minis8566
  • ベストアンサー率50% (29/58)
回答No.1

無償であれば、ご自身でVBSなどをお使いになればできると思います。 以下は、特定のURLにアクセスしてリターンコードで判断するサンプルです。 Cscript で実行すると1分おきにアクセス結果をコンソールに返します。 連続3回目の失敗でメール処理になります。 サンプルにはその処理は書いてません。 詳細はプログラムのカテゴリで質問されれば、解決できると思いますよ。 CONST URL="http://www.xxxxxx.com" Dim oXMLHTTP Dim oStream Dim resData, ErrCount Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP.3.0") oXMLHTTP.Open "GET", URL, False oXMLHTTP.Send Do If oXMLHTTP.Status = 200 Then Wscript.Echo "ok:" & URL & vbTab & Now ErrCount = 0 Else resData = "Error returnCode:" & oXMLHTTP.Status Wscript.Echo resData ErrCount=ErrCount + 1 If ErrCount > 2 Then Call SendMail() End If End If Wscript.Sleep 60000 Loop Sub SendMail() ' 送信処理のコードか、Win7などのOS標準のタスクスケジューラのメール送信機能を使う Wscript.Echo "mail" End Sub

参考URL:
http://www.example-code.com/vbscript/http_getStatus.asp
shima9876
質問者

お礼

プログラム読みました。 なるほど、VBSでできるとは、感動です。 サンプルまで提示していただいて、ありがとうございます。 今日の朝から、ソフトの選定に試行錯誤していますが自作案も 一案として組み込もうと思います!

その他の回答 (2)

  • minis8566
  • ベストアンサー率50% (29/58)
回答No.3

1のサンプルの訂正です。 いいかげんなサンプルでごめんなさい。 DO-LOOPのDOの位置が間違っていました。 サンプルだと2回目のループから判断が不正確になります。 ただしくは、oXMLHTTP.Open "GET", URL, False の上の行にDOがあるべきです。

shima9876
質問者

お礼

いえいえ、訂正ありがとうございます。 まだ、ソフトの導入か自作かは決まっていませんが、 VBSならば、教えて頂いたスクリプトをベースにしてしまえば、 要件満たせそうなので、それで、担当の人と話してみます。 ありがとうございます。

  • minis8566
  • ベストアンサー率50% (29/58)
回答No.2

1の回答の補足です。 プログラムとは別の視点の話です。 監視体制で万全を期すなら、物理的に離れた場所にある2台以上のパソコンから監視することで、監視する側のパソコンの故障やエリア停電などの電源障害や通信系故障をによる検出漏れを回避することも考えたほうがよいかもしれません。

関連するQ&A

  • フリーのサーバ監視ソフト

    フリーのサーバ監視ソフトを探してます。 サーバやルータ等に対し、IPレベル程で監視が出来ればと思ってます。 例: Ping応答の有無、TCPxxx番ポートにアクセスした場合の結果応答 nagiosというソフトを扱ったことがありますが もし、他にもこんなソフトがある等 お勧めのソフトがもしあれば、ご教示戴ければと思い 質問させて戴きました。 なお、OSはLinuxです。(CentOS5です)

  • WEBサーバ稼働状態の監視について(Linux)

    Linux(CentOS5.6)でApacheでWEBサーバを構築予定なのですが、 サーバの稼働状態を監視する方法について教えてください。 いつもは、外部から監視するサービスを使って、サーバが落ちている場合はアラートメールを送信するというようなことをやっています。 具体的に、よく使っているのは、 http://www.cman.jp/network/ こちらのサービスです。 通常はこれで問題ないのですが、 今回はLAN(ローカル)で稼働するWEBサーバになり、こちらからのアクセスは一切できません。 ただし、LAN内からSMTPのポートを空けてもらい、メールの送信はできるようになる予定です。 そこで、サーバー自身が自分自身を監視して、httpが落ちていたら(正常に稼働していなかったら)アラートメールを送信する。 ということは可能でしょうか? muninなどのサーバ監視ソフトで閾値を超えたらアラートメールを出す。 というのはあるようですが、稼働状態を監視するというのはできなそうです(僕が知らないだけかもしれません) ご存知の方いらっしゃいましたら、よろしくお願いいたします。

  • LAN内からWEBサーバへのアクセスについて

    LAN側からWEBサーバの名前解決によるアクセスができずに困っております。 内向きDNSを立て、LAN内部からDMZに置かれた公開WEBサーバにURLでアクセス できる環境を作っているのですがうまくいきません。 しかし、まったくうまく行かないわけではなくHTTPSによる通信のみ 名前解決によるアクセスが可能な状況のため困っております。 上記の現象は内向きDNSを止め、WindownsのHOSTSファイルを利用して も同じ状況です。 外部からのアクセスはすべて正常です。 内部からもIPアドレスの直接入力によるアクセスはすべて正常です。 内部からのHTTPSによる名前解決は可能です。 内部からのHTTPによる名前解決ができませ。 ルータのフィルタリング機能などを疑ったのですが、 IPアドレスの直接入力からはアクセスできる事から、ここが原因と なっている可能性は低いのではないかと考えております。 私自身が疑っている点はWEBサーバに利用しているApache2.0の設定なのですが この名前解決に関する問題で設定等に疑わしき点が御座いましたらご教授頂き たいと考えております。

  • WEBサーバがFINを返さないようのですが…

    FW-LB-Web×2台 の構成でサーバ構築、運用しています。 WebサーバはApacheです。 バージョンは今正確にわかりませんが、2.2だったように記憶しています。 Webサーバのログに200ステータスとして記録されている通信において、 LBからのFINに対してWebサーバがFINを返さないケースは何に起因する と考えられるでしょうか。 また、その原因を調べる方法は何かありますでしょうか。 tcpdumpを使ってもWebサーバにはLBのIPが残らないので、問題究明 に時間がかかりそうで、他にも方法がないのか、と質問させていただ いています。 質問の背景は下記のとおりです。 サイト監視サービスでエラーが発生するのでその原因を調査しています。 その中で、通信終了後にLBからFINを受けたWEBサーバがLBにFINを 返さないケースがある事がわかりました。 ただし、監視サービスからのアクセスに対しては毎回FINを返していない ようですので、上記問題の原因ではないと思っています。 また、監視サービスからのHTTP1.1アクセスに対してのみFINが返って いないようで、一般的なアクセス(ブラウザからの)の場合は返している ようなのです。 監視サービスでは、GETコマンドをつかって直接(ブラウザを使わず) アクセスしているようです。 以上何かお気づきの点があれば教えていただければと思います。

  • 自宅webサーバにアクセスできない

    自宅サーバ(Fedora7)を立てようと奮闘していますが、 LAN外からwebサーバにアクセスできません。 パソコン初心者で大変申し訳ありませんが、アドバイスお願い致します。 ■現状は以下の通りです。 (1)フレッツ光ファミリータイプを使用、CTUのポートフォワーディング、ファイアウォール設定済み (2)apache2インストール、設定済み (3)ダイナミックDNS設定済み (4)LAN内に2台のPCあり⇒自宅サーバ(Fedora7)、作業PC(windows) ※自宅サーバに割り当てたプライベートアドレス『192.168.24.○○』をA、ドメイン名『○○.dynalias.net』をBとする ■確認済内容 ・LAN内のWindowsPCからサーバのプライベートアドレスAへのアクセスは可能⇒apacheのテストページ表示 ・LAN内のWindowsPCからサーバに設定したドメインBへのアクセス不可 ・サーバPCからサーバに設定したドメインBへのアクセスは可能 ・WindowsPCからping A としたときの応答あり ・WindowsPCからping B としたときの応答あり ・LAN外のPCからドメインBへのアクセス不可 確認済内容は当たり前のこと、無駄なことをやっているかもしれませんが、WindowsPCからping B としたときの応答があったことを考えると CTUの設定が間違っているのかなとも思うのですがどうでしょうか? 実を言うと最初はLAN外のPCからドメインBでアクセスできてたのですが、1週間程度ネットワークが繋げない状況がありまして、その後 LAN外のPCから自宅サーバにアクセスできなくなりました。 これも関係するかわかりませんが、何かアドバイス頂けたらと思います。宜しくお願い致します。

  • Apacheを使ってプロキシサーバを設定

    apache2.0のmod_proxyを使って、プロキシサーバをたてようとしています。HTTPでのアクセスでは、正常に動作するのですが、HTTPSでのアクセスでは正常に動作しません。アドバイスお願いします。 ○下記構成で利用を想定しています クライアント→今回設定するプロキシサーバA→既存のプロキシサーバB→目的のサイト ○ProxyRemote ディレクティブで既存プロキシサーバBを設定していますが ・HTTPアクセスでは想定どおりの動作をしています ・HTTPSではプロキシサーバA上のWEBサーバへアクセスしようとしてしまいます ○クライアントのプロキシ設定を既存のプロキシサーバBに設定し、HTTPSでのアクセスは正常に行えます Apacheのmod_proxy+HTTPS+多段プロキシ(串)は、動作しないのでしょうか? 以上、よろしくお願いします。

  • HTTPS(SSL)通信とサーブレットについて

    ショッピングサイトなどで、買い物カゴに入れたあと、支払いするときにHTTPS(SSL)通信になりますが、この場合の仕組みがよくわかりません。 (1)これは、WebサーバをHTTP用とHTTPS(SSL)用の2台構成として、買い物カゴにいれるまでは、HTTP用のWebサーバでアクセスしておいて、支払いするときにHTTPS(SSL)用のWebサーバにアクセスさせることで実現してるのでしょうか? (2)ショッピングサイトを見ると、URLはHTTP://がHTTPS://に変わるだけで、サーバが変わっているようには見えませんが、これは、apacheなどのWebサーバが持つバーチャルホスト機能で実現してるのでしょうか? (3)アプリケーションを開発する側としては、HTTP通信を行うサーブレットはHTTP用のサーバに配置して、HTTPS(SSL)通信を行うサーブレットはHTTPS(SSL)用のサーバに配置しておいて、HTTPS(SSL)通信をしたいときは、HTTP用のサーバに配置したサーブレットから、HTTPS(SSL)用のサーバに配置したサーブレットを呼びだすだけでOKでしょうか? (4)また、(3)が正しい場合、サーブレットの配置さえ気にしていれば、特にHTTPS(SSL)用のプログラムを組む必要はないでしょうか? 調べたのですが、最初からHTTP(SSL)通信する場合の方法しか記載がなくて困っています。

  • .NETアプリケーションサーバ設置

    始めまして、開発環境の作成でどうするべきか悩んでおり回答を頂けるとたすかります。 いままでは、PHP等のWebサーバ単体でのアプリケーション開発と運用を行ってきたのですが、 今回少し応答するデータ量が多いシステム開発があることと 出来れば、アプリケーションは外部から見えない方がいいかなと思いまして、 アプリケーションサーバをWeb(HTTP)サーバと別にする場合はどのようにするのか? と思い調べてみたのですが、いい内容が見つかりません。 ※HTTPで受けたリクエストを別のサーバで処理するってどのように設定するんでしょうか? 思いつく事は、 1.相互通信用のプログラムを作成して、電文のやり取りで実行、結果の応答をする。  ⇒これはちょっと違いますよね。 2.DBを中継して、リクエストと応答を処理する  ⇒これも違う気がします。 と少し古い頭しかなくて困っております。 上記でも開発はできるのですが、もっとスマートに出来るとは思いますので 回答いただけると助かります。 該当の書籍、ホームページの紹介でも助かります。 よろしくお願いいたします。 ※環境  サーバ:Windows Server 2012  Web:IIS  アプリケーション:ASP.NET (予定、他で実現可能であれば検討しますがjava以外で)  DB:MySQL 5.5(別サーバにて稼働中×3台)

  • CentOSをサーバ監視するには?

    レンタルサーバ(さくらインターネット)でVPS(CentOS6.2(x64))を借りたばっかりなのですが、 システム監視や脆弱性チェックなど、要はサーバ監視(≒「サーバ落ち」&「セキュリティ監視」?) をするためのソフトやウェブサービスにはどんなものがあるのでしょうか?おすすめがありましたらお教えください。 なお、ウェブアプリの脆弱性チェック(XSSとかSQLインジェクションとかディレクトリートラバーサルとかもろもろ)ができるツールもお教えいただけるとうれしいです(もちろん、穴がないようにコードを書くつもりですが) なお、 *そのCentOS6.2(x64)の中で動くもの *あるいは、外部のCentOS6.2(x64)(自宅のwin7上のvmwareに入れてます)で動くもの *windows7(x64)で動くもの の、どれでもいいです。 また、SELinuxというのは知ってますが、 レンタルサーバ業者がセットアップしたデフォルトではoffになっています。 onのほうがいいと単純に思うのですが、どんな理由があるのでしょうか? またレンタルサーバ業者がよくやっている、 pingによる監視は、単にcronでpingをうっているだけなのでしょうか? 以上、よろしくお願いいたします。

  • 自宅でWEBサーバーを構築したいのですが。

    自宅でWEBサーバーを立てたいと思っているのですが、外部から見ることができません。 自宅でWEBサーバーを構築したいのですが、外部から見ることができません。 ソフトウェアは「Apache2.0」でOSはVistaです。 使用しているルーターはアイオーデータのWN-GDN/Rです。 DDNSで、DICEも使用しています。 「Apache2.0」の設定仮定で、サーバー機内のIEから「localhost」では表示したいページは出てくるのですが、外部(別のNET回線)からでは、「ページが表示できません」と表示されます。 サーバーに割り振られたIPアドレスを直接入れてもページは表示されないのですが、Pingテストは問題なくとおります。 私個人の考えでは、「Apache2.0」の設定に問題があるのでは?と思っているのですが、いかがでしょうか? ルーターでのポート開放も完了しています。(使用ポートは80) よろしくお願いいたします。