ウェブアプリケーション監視のベストプラクティス [終了しました]
質問
私たちは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 で実行させるという事例を経験しました。
関連
-
AttributeError: 'str' オブジェクトには 'decode' という属性がありません。
-
[解決済み] Django のビューで 2 つ以上のクエリセットを結合するにはどうすればよいですか?
-
[解決済み] Djangoでファイルをアップロードする方法は?[クローズド]。
-
[解決済み] request.GETでURLパラメータを取得する
-
[解決済み] Django テンプレート内で現在の URL を取得する方法は?
-
[解決済み] Django South - テーブルはすでに存在する
-
[解決済み] Djangoアプリの命名規則はありますか?
-
[解決済み] Django が ManyToMany リレーションシップからオブジェクトを取り除く
-
[解決済み] テーブルのフィールドから異なる値を選択する
-
[解決済み] Django はフォームが初期化された後にフィールドの値を設定します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
django のクエリセット操作
-
[解決済み] pipと要件ファイルを使って、特定のパッケージをアップグレードするにはどうすればよいですか?
-
[解決済み] Django のカスタムフィールドで User モデルを拡張する
-
[解決済み] Django のフォームで、あるフィールドを編集できないように readonly (または disabled) にするにはどうしたらいいですか?
-
[解決済み] Django の修正 管理者の複数形
-
[解決済み] Django ManyToMany filter()
-
[解決済み] Djangoのvalues()の項目名を変更する方法は?
-
[解決済み] Django でモデルのフィールドを取得する
-
[解決済み] djangoでurls.pyから直接名前付きurlパターンにリダイレクトする?
-
[解決済み] django テンプレートで "ブロック" を繰り返す方法