web-dev-qa-db-ja.com

シンプルなWebサーバー監視(稼働中)

LinuxでWebサーバーが稼働しているかどうかを監視するソフトウェアに関するヒントはありますか? URL以外を知らなくても実行できるはずです。また、サイトがダウンしたときに電子メールアラートを送信する機能が必要です。このためのスクリプトを自分で書くのは難しいことではありませんが、既に何か良いものがあれば、無意味に思えます。

内部サーバーを監視することに注意してください。これは、外部のWebベースのサービスではなく、同じネットワーク上のマシンで実行するツールである必要があります。

また、小さくシンプルなソリューションが推奨されます。

更新:私は最終的に小さなpython現在このために使用しているスクリプトを作成しました、それは見つけることができます- ここ

8
Zitrax

このようなスクリプトで wget を使用できます

wget --timeout=3 --tries=1 --spider --no-check-certificate http://serverfault.com

if [ $? -ne 0 ];then
  echo "Site Down" | mail -s "Site Down" [email protected]
fi

また、wgetが最初に3秒以内にサイトにアクセスできない場合は、メールが送信されます。

数分ごとにスクリプトを実行するようにcronジョブを設定します。

他にも多くの選択肢がありますが、これはおそらく最初からセットアップするのが最も簡単です。

12

選択肢はたくさんありますが、2つあげます。

  • Nagios は、httpよりはるかに多くの機能を監視できる本格的な監視アプリケーションですが、それも処理します。また、すべての種類のリポを作成することもできます(「今週/月/年...サーバー/サービスの稼働率を教えてください...」)

  • Monit も人気の高い選択肢です。 Nagiosほど機能満載ではないかもしれませんが、それでもニースで​​す。

7

まあ、自分で何かを実行したい場合は。

これらはいくつかのオプションです:

または、管理されたソリューションが必要な場合:

個人的には、Webサーバーのステータスを監視したいだけの場合、ZabbixとZenossはやりすぎだと思います。しかし、必要以上に多くの機能があるもの以外を監視することも計画している場合;)

1
Wolph

RichardとJanneの回答に賛成しましたが、Webサーバーが送受信する内容についてさらに詳しく知りたい場合は、O'Reillyの本「Perlを使用したWebクライアントプログラミング」の最初の2つの章で概要を説明しています。 HTTPプロトコルの。アップ/ダウンだけでなく、より詳細な監視が必要で、応答コードなどを含めたい場合は、最初に開始するとよいでしょう。

本は古いですが、まだ有効です。 1997年に発行されたO'Reillyは、本の内容をOpenBookイニシアチブの一部として http://oreilly.com/openbook/webclient/ にオンラインで無料で投稿しています。

1
gWaldo

担当者がいたら、Janneの回答に投票します。

Nagiosに関する重要な注意、それが完全に機能しているという事実は、それが困難で長いインストールであることを意味しません、それは非常にシンプルでフレンドリーです。

次に、ハードウェアベンダーが何を提供する必要があるかを実際に確認する必要があります。たとえば、私はHP Proliantsを使用していますが、彼らはそれを支援する本当に素晴らしいRPMを持っています。

0
bangolio

Nagiosの機能は気に入ったが、内部について詳しく知りたくない場合は、 Opsview も確認してください。 Nagiosと他のいくつかのツールですが、Nice GUIを介して提供されます。それはかなり良い出発点です。

0
user52933

Nagiosは素晴らしいソフトウェアであることに同意しますが、フリーウェアが必要な場合は、 AppPerfect Agentless Monitor を参照することをお勧めします。 AppPerfectを使用したLinuxサーバーの監視は非常に軽量であり、監視中のターゲットシステムへのオーバーヘッドはごくわずかです。このツールを使用して、CPU、ディスク、ネットワーク、メモリに関連するすべての重要な統計を監視できます。セットアップは非常に簡単で、ソフトウェアは非常に使いやすいです。明確なドキュメントとチュートリアルも利用できます ここ Linuxサーバー監視用

0
Steve Young

私が使用してきた1つの解決策は、HashiCorpの consul です。

それは確かに電子メール出力を備えた単純なスクリプト以上のものですが、あなたが話している種類の監視の設定はまだ非常に簡単です(数行のYAMLまたはJSON)。

ほとんどの場合、テンプレートを作成しますが、単一サーバーの監視は次のように行うことができます。

{
  "service": {
    "name": "web", 
    "tags": ["production"], 
    "port": 80,
    "check": {
      "id": "front-end",
      "name": "HTTP front-end for web service",
      "http": "http://web.domain.tld",
      "interval": "10s",
      "timeout": "1s"
    }
  }
}

これを提案する理由の1つは、必要に応じて、Webフロントエンドの「単なる」監視だけでなく、チェックをサービス(例:report_serverサービスは、Webフロントエンド、1つはWebバックエンド、もう1つはプライマリDBのチェックを持つことができ、これらすべてがこの1つのサービスに関連付けられたアラートを提供します。

0