インテージテクノスフィア技術ブログ

株式会社インテージテクノスフィアの社員達がシステム開発や仕事に関する技術情報を随時掲載いたします

サーバー監視の基本

こんにちは。インテージテクノスフィア技術ブログ担当アイダです。今回は当社情報システム部のUさんに投稿いただきました。

情報システム部は当社を含むグループ会社全般のシステム運営管理、データセンター事業など事業根幹を支える部署で、本当にいつもお世話になっております。

ではUさんお願いします!

サーバ監視とは

サーバーを本番環境で利用する際、「監視」が必要になりますが、教えてもらったことがないという方が多いかもしれません。

私自身、教えてもらったものではありません。 その為、監視といっても個人個人が思うものが違っている状況ではないでしょうか。

監視の考え方だけで本ができるほどですが、今回は、

  1. 死活監視

  2. プロセス監視

  3. リソース監視

について、少し纏めてみます。

当然ながら、それぞれ目的が異なります。

f:id:intage-tech:20200306162917p:plain

1.「死活監視」

読んでそのまま、「生存しているかを監視する」ために行うものです。 一般的には「サーバーへのPing応答結果」で「サーバー自体が生きていること」を判断します。 あくまでpingの応答結果で判断するため、「サーバー自体は稼働しているがログインできない」状況等、OSの状況は拾うことができません。 死活監視は、ロードバランサ―のサーバー振分けにも利用されています。

2.「プロセス監視」

アプリケーションが起動する際に立ち上がる「プロセスを監視する」ために行うものです。 主に「プロセスが立ち上がっているか」を確認します。 基本的には、OS上に監視用エージェントをインストールし、その監視用エージェントがプロセス状況をチェックすることで実現します。 OS上に監視用エージェントをインストールできない等の理由がある場合は、サーバー外から状況を把握する必要があります。 そういった場合は、監視用エージェントではなく、WMIやSNMPといった別のプロトコルを用いて状況を拾うことになります。

3.「リソース監視」

「システムを構成するための各種コンポーネントのサイズが足りているか」を確認します。

CPUは、100%使えば効率的に利用されていると判断します。(パフォーマンス視点を除く) 一方、ディスクは100%に達すると、システムが停止するリスクがある等、監視対象によって視点が異なります。 「何を監視対象にするべきか」を決めるためには、ロングランテストを実施することも良いと思います。 負荷テストを実施することは一般的ですが、 ロングランテストを行うことは少ない状況だと思います。 システムの本番稼働後は、なかなか停止することができません。 その為、長く稼働した際(ロングラン)のリソース状況等を事前に確認しておくといったテストが必要になります。 想定できることを事前に想定するためです。

このテスト結果を受けて、「リソースが不足していないか」、逆に「リソースが無駄に多すぎないか」等を確認します。 監視項目を検討する際のポイントは、サービス提供時間中に「何が変動するか」が重要であり、「変動箇所が監視項目」になります。 但し、全ての変動個所を監視することは現実的ではない為、問題発生時の影響を考慮し、何を対象とするか絞る必要があります。 クラウドのオートスケール機能でも、「死活監視」や「リソース監視」の考え方が重要です。 万能と思われがちなオートスケール機能は、一歩間違えると高額請求の可能性があります。 前述のテストと合わせ、ちゃんと設計・監視しましょう。

少し話が脱線しましたが、目的に応じて色々な監視があります。 むやみやたらに監視するのではなく、目的に沿った監視方法や監視間隔を選択し、運用するようにしましょう。 監視は、奥が深いものです。