1. ホーム
  2. django

ウェブアプリケーション監視のベストプラクティス [終了しました]

2023-08-09 11:09:32

質問

私たちはWebアプリケーションを仕上げ、デプロイメントを計画しています。本番環境へのデプロイメントの非常に重要な側面は、システムの健全性を監視することです。開発者/サポートからなる小さなチームを持っているため、私たちにとって非常に重要なこととして 早期通知 を取得し、ユーザーに影響を与える前に解決することが非常に重要です。

Nagios を使用することは良い選択肢のように見えますが、一般的なウェブアプリケーション、特に Django アプリのための最良の監視ツール/プラクティスは何かについて、より多くの意見を得たいと思いましたか?また、明白なCPU、メモリ、ディスクスペース、データベース接続を除いて、何を監視すべきなのかについての推奨も歓迎します。

私たちのWebアプリケーションはDjangoで書かれており、Linux(Ubuntu)上でApache + Fast CGIとPostgreSQLデータベースで動作しています。

編集 Linodeの下に完全仮想化環境を構築しています。

EDIT 私たちは django-logging を使っているので、情報、エラー、致命的な問題などを分離する方法があります。

どのように解決するのですか?

Nagiosもいいですが、システムテスト(Selenium)を定期的に走らせるのもいいかもしれませんね。

編集する ハイパーリンク グラウンドワーク も面白そうです。

おそらく、あなたのためにすべてを同様にプレッシャーテストし続けることができるテストスイートシステムがあります。 私は頭のてっぺんからその名前を思い出せませんが、たぶん誰かが以下で言及できるでしょう。

私が好きな他のこと。

インフラのための最高のモットーは、常に修正、検出、修理です。 立ち上げて、根本を探り、できることなら治療や予防をすることです。

システムは多くのレベルで存在するので、多くのレベルでテストする必要があります。

編集:すべてのエラーや警告は、電子メールでケースマネージャーに直接送信されるようにしましょう。そうすれば、一箇所で発生を追跡できます。

1) 接続 サーバーと外部からのインターネット接続を監視してください。 これをどこかに記録する

2) サーバー サーバをピン止めしないように、必要なプロセスをすべて監視してください。 HP Serverか、biosレベルからできるハードウェア障害通知のある同等のものを使用する。 もしそうなら、通知とログを記録します。

3) ソフトウェア : 常に起動している必要がある主要なソフトウェアを特定する。もしあれば、パフォーマンス・レベルを設定し、それらを監視します。 Nagiosはこれを支援することができるはずです。 Windowsの場合、もう少し増えるかもしれません。 例外が発生したら、そこからスクリプトを実行して、自動的にプロセスを再起動させることができるはずです。 私の夢は、SMSでサーバーとやりとりできるようにすることです。もし、サーバーが、私が許可しなければならない例外か、私がSMSでキャンセルしない限り自動的に発生する例外と見なすなら、です。 いつの日か...。

4) リモートパワー : リモートパワーリセット機能が手元にあることを確認します。 Windows を何かで使用する場合は、毎週再起動するようスケジュールするとよいでしょう。

5) ビジネスロジックのテスト : システムのワークフローをテストするスクリプトを定期的に走らせます。 Seleniumはおそらくこのいくつかを達成することができますが、私はこの時間にこれが実行され、これらのファイルにエラーがあったことを示すために、同様に結果をログに記録するのが好きです。 可能であれば、スクリプトを通してシステムが自分自身を監視するようにします。

6) バックアップ : 設定し忘れることができるバックアップを作成します。 もし、仮想マシンに移行することができれば、インフラのどの部分であっても、どこにでも拡張、移動、展開することができるので、理想的でしょう。 私は、死んでしまったサーバーをラップトップに移動し、問題を解決する間、それを VMware で実行させるという事例を経験しました。