質問: 新規サービスをリリースし、運用が本格的になってきたため、アプリの監視を行いたいと思っていますが、 運用経験がなく以下のような監視をどのように行えばいいのか教えて頂きたいです。 ``` 環境webサーバーはnginx foreverを使ってexpressサーバーを起動しています。 ``` 1. node.jsのプロセス監視 ------------------ expressサーバーのプロセスが落ちていないことを確認したいのですが、 単純にプロセス数をカウントして、指定した閾値より下回っていれば落ちていると判断すれば良いのでしょうか? 2. nginxのプロセス監視 ---------------- ngixのプロセスが落ちていないことを確認したいのですが、 こちらも同様に単純にプロセス数をカウントして、指定した閾値より下回っていれば落ちていると判断すれば良いのでしょうか? 監視項目について --------- みなさんが実運用で監視されているものが、以下のもの以外にあれば教えていただきたいです。 CPU使用率 ディスク使用率 メモリ使用率 swap使用率 ping監視 プロセス監視 ポート監視 web監視 上記について教えて頂きたいと思いますので よろしくお願いいたします!
回答: まずは質問への回答として > > 1. node.jsのプロセス監視 > > > Nagiosを利用するならば、nrpe経由でcheck_procsプラグインを使います。 指定したプロセスが指定範囲内であればOK、それ以外はNGとします。 > > 2. nginxのプロセス監視 > > > 1.と同様です。(「プロセス監視」であればその通りです。) ただ、プロセスが活きていてもサービスダウンする場合もあります。 それを防ぐには下に記載するサービス-WebアプリケーションのEndpointの監視等を入れてください。 私は運用するために主に以下の点で監視しています。 ・サービス監視 ドメイン監視 ドメイン期限の監視 DNS監視 DNSクエリに対し、期待通りのレコードを返しているか WebアプリケーションのEndpointの監視。Webアプリケーションが設定した時間内に正常応答していることを外部から監視。 等 ・システムサービス監視 SSHやSMTPのポートなどの監視。ダウンしてもサービスへの影響はないが、障害発生時の対応ができない等。 ・ホスト死活監視 ホスト死活 ・プロセス死活監視 システムを維持するのに必要なプロセス、サービスを維持するのに必要なプロセスの死活監視。 ・システム状況監視 ユーザーログイン数、特定のステータスのプロセス数、その他色々 ・リソース監視 ディスク、ネットワーク、CPU、メモリ、その他色々