私のブログはカスタムRuby/Rackアプリケーションであり、数週間ごとにランダムにクラッシュしています。何日も気付かないことがありますが、気が付いたらすぐに通知したいのですが。
それを行うための最良の方法は何ですか? Centos 5.3、Nginx、Passenger、Rackなどを実行しています。
エラーログの末尾を自分宛てにメールで送信する方法を考えました。これは、1つのアプリだけでなく、すべてをキャッチするのに役立ちます(リンクがないなどの情報が表示されます)。それを行う簡単な方法はありますか?
ありがとう!
サイトがダウンしたときにアラートが必要な場合は、通知用のオンラインサービスを検討する必要があります。外部の視点が表示されます。
「自分のボックス内」から監視する場合、スクリプトを実行したり警告したりすることができなくなるため、完全にクラッシュしたり、ネットワーク接続が失われたりしても、電子メールは届きません。
Bello または Pingdom はどちらも、始めるのに最適な無料のアカウントを提供します。
その他のサービスは にリストされています誰かがウェブサイト監視サービスをお勧めできますか?
誰も言及していないことに驚いています Nagios 。それは信じられないほど強力で、稼働時間のパーセンテージ、電子メール/ IMによる通知、ダウンタイムでスクリプトを実行できるなどです。おそらくそこにある最高のものです。
AreMySitesUp( http://aremysitesup.com )とPingdomをチェックしてください。どちらにも無料のオプションがあり、サイトがダウンしたときにメールとSMSを送信します。AreMySitesUpにはiPhoneアプリもあります。
Wgetを使用するシェルスクリプトを記述し、応答コードに基づいてページが応答したかどうかを判断するだけで、基本的な接続テストを取得できます。
#!/bin/bash
WGET='/usr/bin/wget'
URL='http://url.to.check'
${WGET} -O /dev/null --tries=1 ${URL}
if [ $? -eq 0 ]; then
echo "Success!"
# You could write a log file or something here
else
echo "Fail! :("
# run something to mail you that your site isn't responding
fi
これは拡張可能な非常に基本的な例ですが、簡単なものを探しているだけであれば、これでうまくいきます。あなたはそれをcronすることができるので、それがクラッシュしたかどうかをすぐに知ることができます。
大量のサーバーがある場合、Nagiosは最適です。 muninから始めることをお勧めします。セットアップは簡単で、プラグインは文字通り5分の時間の投資です。 nagiosよりも小規模な統計の収集とアラートに最適です。最良の部分は、nagiosが必要とする投資を正当化するのに十分な大きさに拡張する場合、nagiosにうまく統合されることです。
ムニン: http://munin.projects.linpro.no/
開発もまた持ち直し始めました!!
あなたは神を使うことができます:神(ドット)rubyforge [dot] org
スクリプトを実行できる別の場所にサーバーがありますか?
これらの人はあなたのページ(最大2つのURL)を無料で(30分ごとに)監視しますhttpHost-tracker.com注文ページ
代わりに、問題のデバッグと修正に集中する必要があります:)
そうは言っても、やりたいことをするには2つの方法があります。サーバーが常に稼働している(そして稼働していると信頼できる)場合は、cronジョブを介して実行中のサービスを簡単に監視できます。監視ソフトウェアは、単にやり過ぎでしょう。ただし、Webアプリケーションに問題があり、サーバーで実行されているサービスを実際に停止せずに何らかの方法で失敗し、失敗したことをテストする簡単な方法がない場合(プロセス自体はまだ実行されている、結果のチェックに一貫性がないなど) 。)次に、外部からサイトをチェックする、ここで推奨されるサービスの1つを使用することをお勧めします。
プロセスの監視には、puppetやcfengineなどを使用できます。
これらのツールを使用すると、特定のプロセスがまだ実行されているかどうかを監視し、実行されていない場合はプロセスを再起動してイベントを報告することが非常に簡単です。ポートを開いてリクエストに対する応答を期待するようなチェックを実行するように拡張することもできます。
ただし、サーバー全体が停止している場合、これは機能しませんが、ここではそれが原因ではないようです。
私はRuby/Rackのオプションのセットに精通していませんが、Djangoはサーバーエラー(レンダリング中にエラーを引き起こすページ)や自分のサイトからの404についてもメールで送信できることを知っています。たぶん、あなたはあなたが構築しているものに同様のオプションを見つけるか、フックすることができます。
これらの2つを組み合わせると、ページのレンダリングに失敗した場合やデーモン全体が停止した場合に通知されます。