web-dev-qa-db-ja.com

データベース接続の確立エラーについてサーバーをモニターする方法

pingdom.comuptimerobot.com のようなツールであなたのサイトを監視し、それらがダウンしているかどうかを知らせることはできますが、私のWordPressサイトでは恐ろしい "エラーの発生データベース接続 "が望まれるよりも頻繁にあり、それが起こったとき私はある種の通知を受けたいと思います(しかしユーザーの苦情の形ではありません!) PingdomとUptimerobotはエラーとは見なさないため、通知をプッシュしません。

他の方法では捕らえられないかもしれないその特定の問題(そしておそらく他の問題?)について私のサイトを監視する簡単なツールや方法はありますか。

[編集] 1.私は、さまざまなDB接続性の理由でよく発生するよく知られたWordPressエラーについて具体的に言及しています。エラーが発生すると、サイトにアクセスすると、デフォルトのホワイトページが返されます。その内容は以下のとおりです。

  1. この質問の目的のために、私はなぜそれが起こるのか、またはどのようにそれを修正するのかには興味がありませんが、代わりに、単に{自動的にそれを監視し通知を受けるありがとう。

enter image description here 

3
fortuneRice

実際にPingdomを使用してこの種のエラーをチェックできます。サーバーからの応答を直接チェックするのではなく、ページ上の特定の文字列を探すようにチェックを設定できます。例えば、あなたのページがホームページ上にある種の一貫したテキストを持っているなら、あなたはそれを探すことができます。

このPingdom投稿には、文字列のチェックに関する情報がいくつかあります。

HTTPチェックを最大限に活用する:オプション設定のベストプラクティス

また、特定の文字列がないことを確認することもできます。そのため、「データベース接続のエラー」というテキストが表示されている場合は、停止中としてフラグを立てることができます。

2
Rick Curran

メッセージをファイルwp-content/db-error.phpで上書きすることができます。

その後、このファイルにエラーを記録したり、問題があることを警告するために電子メールを送信したりできます。数秒で大量のEメールを受信する可能性があるため、すべてのエラーについてEメールを送信しないことをお勧めします。

2
mmm

データベースにどのように接続していますか?あなた自身に電子メールを送信する例外をキャッチできませんか?

WordPressではPHPだと思いますので、...

            try {
                    // connect to database
            } catch(PDOException $ex) {
                    $this->output_error_string .= "$ex";
                    mail(/* send mail */);
            }
1
sdexp

Httpをホームページの1分(またはそれ以上)に1回取得してその内容をチェックするなど、ワードプレス特有のものではない、おそらくそれを行うためのいくつかの外部的な方法があります。ローカルホストからでも異なるホストからでも実行できます。

Wordpress側での解決策は、@ sdexpが示唆することをひねって、(wpdb.phpファイルに/ wp-contentに置かれた)それ自身の実装を提供することによってwpdbクラスをオーバーライドすることです。接続が失敗したときに行われます。これは明らかにwpdbのソフトフォークですが、そのクラスはそれほど変わらず、あなたの実装でphpマジックメソッドcallsetおよびgetを賢く使用すれば、将来の失敗の可能性をさらに最小限に抑えることができます。

それでもあなたの最善の策は外部サービスを使うことです。モニタリングは驚くべきことに、以前にそのようなことをしたことがなければ正しく理解するのは非常に簡単ではありません。どのサービス? StackOverflowまたはServerFaultは、ワードプレス特有の問題ではないため、おそらく尋ねるほうがはるかに良い場所です。

0
Mark Kaplun