サーバーの安定運用において、死活監視は欠かすことのできない重要な要素です。本記事では、死活監視の基礎から実践的な導入方法まで、詳しく解説していきます。皆さまが運用中のシステムに最適な監視体制を構築するためのヒントをお届けします。
この記事でわかること
① 死活監視の必要性や監視目的
② 死活監視と並行して監視すべき項目
③ 死活監視の実施方法と注意点
目次
死活監視とは?
死活監視の必要性について
死活監視は、サーバーが正常に稼働しているかどうかを継続的に確認するプロセスです。サーバー(システム)が「生きている」か「死んでいる」かを判断することから、この名称が付いています。
死活監視の必要性については想像に難くないかと思いますが、システム障害やサービス停止を早期に検出し、迅速な対応をとることができるため、サーバーの安定稼働にとって必要性の高い監視項目と言えるでしょう。
死活監視でリスク軽減が期待できること
・顧客サービスの中断
・売上の損失
・企業の信頼性低下
死活監視の方法
死活監視には、Ping監視、HTTP監視、プロセス監視といった監視方法があります。これらの監視方法を組み合わせることで、より網羅的な監視が可能になります。
どの監視方法を選択するかは、監視対象のシステムやサービスの種類、そして求められる監視レベルによって異なります。そのため適切な監視方法を選択し、システムの安定稼働を支えることが重要です。以下ではそれぞれの監視方法について見ていきましょう。
Ping監視
Ping監視は、ネットワークに接続されたデバイスが稼働しているかを確認するための最も基本的な方法の一つです。*ICMPエコー要求を対象デバイスに送信し、応答があるかどうかをチェックします。応答があればデバイスは稼働していると判断できます。
Ping監視が活用されるケースとしては、ネットワークの接続性や基本的なデバイスの稼働状況を確認する場合です。ただし、Ping監視だけではアプリケーションやサービスの詳細な稼働状況までは把握できないことに注意が必要です。
*ICMPとは:ICMP(Internet Control Message Protocol)は、ネットワークデバイス間でエラーメッセージや診断情報を交換するための通信プロトコル
HTTP監視
HTTP監視は、WebサーバーやWebアプリケーションが正常に動作しているかどうかを確認するための監視方法です。指定されたURLに対してHTTPリクエストを送信し、正常なレスポンス(例えば、HTTPステータスコード200)が返ってくるかどうかをチェックします。
HTTP監視は、単純な死活確認だけでなく、Webサービスが正常に稼働しているかをエンドユーザー視点で確認することが可能です。具体的には、Webサイトの表示内容(コンテンツ)や特定のAPIエンドポイントのレスポンスを確認することができます。
プロセス監視
プロセス監視は、システム上で実行されている特定のプロセスが正常に稼働しているかどうかを確認する方法です。プロセスが停止していたり、予期しないエラーが発生していたりする場合に、アラートを出すことができます。これにより、アプリケーションやサービスが期待どおりに動作しているかを監視することができます。
また、単純な起動/停止状態だけでなく、プロセスのゾンビ状態(終了したはずのプロセスが完全に消えずにシステムリソースを消費している状態)やメモリリークなどの異常状態の検知も重要な監視項目となります。これらの異常状態は、時間の経過とともにシステムの安定性を損なう可能性があるため、早期発見が重要です。
加えて、CPU使用率やメモリ使用量などのリソース状況も監視することで、システムのパフォーマンス問題の早期発見にも役立ちます。ここまででは、少々概念的な説明が多くHTTP監視との違いがイメージしづらい方もいらっしゃるかと思いますので、下記に例を記載します。
HTTP監視との違いの例
・「プロセス監視」は、HTTP監視では検出できない内部的な問題を発見するのに役立つ
例:)Webサーバーが応答していても、バックエンドのデータベースプロセスが異常な状態にある場合、プロセス監視によってその問題を早期に発見することができる
死活監視に関連する監視項目
ここまで死活監視は、システムやサービスの基本的な稼働状況を確認するためのもの。と説明しましたが、より詳細な監視を行うためには、他の監視項目と組み合わせて使用することが重要です。
例えば、アプリケーション監視、パフォーマンス監視、ログ監視、ポート監視などを組み合わせることで、システム全体の健全性をより深く維持することができます。これらの監視項目によって、死活監視だけでは検出できない潜在的な問題を発見することができます。以下ではそれぞれの監視項目について触れていきます。
アプリケーション監視
死活監視が単純なシステムの稼働状態を確認するのに対し、アプリケーション監視はより深いレベルでの監視を行います。具体的には、ログインの成功率、データベースクエリの実行時間、ユーザーセッション数、API呼び出しの成功率など、アプリケーション特有の機能が正しく動作しているかを詳細に監視します。死活監視では「生きている」状態でも、アプリケーションの一部機能が正常に動作していない場合があり、それを検知するためにアプリケーション監視は重要です。
パフォーマンス監視
死活監視がシステムの稼働状態を「生きている・死んでいる」の二値で判断するのに対し、パフォーマンス監視はシステムの健康状態を数値化して監視します。CPU使用率、メモリ使用量、ディスクI/O、ネットワークスループットなど、システムリソースの使用状況を継続的に計測し、性能劣化や異常な負荷状態を検知します。システムは稼働していても、高負荷によって実質的なサービス提供ができない状態を把握するために必要です。
また、エンドユーザー体験に直結する指標として、ページロード時間やAPIレスポンスタイム、データベースクエリのレイテンシーなども重要な監視項目となります。これらの指標は、システムが「動作している」だけでなく、「適切なパフォーマンスで動作している」ことを確認するために不可欠です。
例えば、ウェブサイトの表示に10秒以上かかる場合、システムは稼働していても実質的なサービス提供ができていない状態と言えます。
ログ監視
ログ監視は、システムやアプリケーションが出力するログを監視する方法です。ログデータには、システムの状態、エラー情報、セキュリティに関する情報など、多くの重要な情報が含まれています。ログ監視は、時系列での詳細な動作記録を監視するという特徴から、原因究明を得意としている監視と言えるでしょう。
ポート監視
Ping監視がICMPプロトコルによる基本的な疎通確認を行うのに対し、ポート監視は特定のサービスが使用する*TCPや*UDPポートの状態を確認します。例えば、データベース - MySQL(3306番ポート)、メールサーバー(25、587、465、2525番ポート)、FTPサーバー(20、21番ポート)など、各サービス固有のポートが正常に開放されているかを監視します。
このように、サービスプロセスは動作していても、ファイアウォールの設定変更やネットワークの問題でポートがブロックされている場合があり、そのような状況を検知するためにポート監視は重要です。
*TCPとは:TCP(Transmission Control Protocol)は、インターネット上でデータを確実に送受信するための通信規約。データを小さなパケットに分けて送信し、受信側で再構築する。
*UDPポートとは:UDP(User Datagram Protocol)は、インターネット上でデータを迅速に送受信するための出入口。データの到達確認を行わないため、速さが求められる通信に使われる。
死活監視のメリット
ここまでで、死活監視の特徴などを解説する中で様々な監視項目の役割や目的に触れてまいりましたが、その要約として以下では死活監視のメリットをご紹介します。併せて、注意すべきデメリットも取り上げてまいります。
システムの可用性向上
死活監視の最大のメリットは、システムの可用性を向上させることです。これにより、サービスの信頼性が向上し、ユーザー満足度の維持につながります。
問題の早期発見
システムの異常を素早く検知することで、大規模な障害に発展する前に対処することが可能です。予防的なメンテナンスにより、ダウンタイムを最小限に抑えることができます。
死活監視のデメリット
誤検知や過剰なアラート
死活監視には、誤検知や過剰なアラートが発生するというデメリットがあります。例えば、一時的なネットワークの不安定性や、システムの断続的な負荷上昇などが誤ったアラートを引き起こすことがあります。
このようなアラートは、運用担当者の負担を増やし、本当に対応が必要な問題を見過ごしてしまう可能性があります。誤検知を減らすためには、適切な閾値の設定や監視方法の調整が必要です。そのため、監視システムのチューニングは、効果的な監視を行う上で重要です。
運用コストの増加
死活監視の導入と運用には、一定のコストがかかります。監視ツールの導入費用、設定やメンテナンスにかかる人的コスト、そしてアラートに対応するためのリソース(時間、人材)が必要です。監視対象のシステムやサービスが増えれば、これらのコストはさらに増加する可能性があります。
運用コストを最適化するためには、適切な監視ツールの選定や効率的な運用体制の構築が必要です。コストと効果のバランスを考慮した上で、自社に必要な死活監視を導入することが重要です。
死活監視の実施方法
Pingコマンドの活用
Pingコマンドは、死活監視を行うための基本的な手段の一つです。コマンドラインから簡単に実行できるため、手軽にネットワークデバイスの稼働状況を確認できます。また、スクリプトやバッチファイルと組み合わせることで、定期的な監視を自動化することも可能です。このようにシンプルな監視には便利ですが、一方で複雑な監視ニーズには、他の監視ツールと組み合わせる必要があります。
死活監視ツール(サーバー監視ツール)の活用
多くの死活監視ツールは、パフォーマンス監視、ログ監視、プロセス監視など、包括的な監視方法に対応しています。さらにはオプションとして、アラート通知機能やレポート機能も備えているサービスもあり、問題発生時のより迅速な対応が期待できます。
一方で、監視ツールの選定は自社に必要のない(オーバースペックな)機能が搭載されており過剰な費用発生の懸念もあるため、システムの規模や要件に合わせて慎重に導入選定を行う必要があります。
▼ サーバー監視ツールについて比較紹介されている記事はコチラ ↓
サーバー監視ツール比較15選。無料・OSS・有料版ならこれ!
専門企業への委託
効率的かつ安定したシステム運用のために専門企業に死活監視業務を委託することも、一つの有効な手段です。当然ですが専門企業は、豊富な経験と高度な技術を持っているため、依頼する要件によっては死活監視業務を丸投げすることができ、自社リソース活用を限りなくゼロに抑えることが期待できます。
そのため、新規サービス開発や顧客要望の改善といった、コアビジネスに集中することができます。特に専門企業への委託に適しているケースを挙げると、大規模なシステムや高度な監視を必要とする場合です。
なぜなら、自社で対応するには「専門人材」「ツール導入コスト」「作業時間」といった様々なリソースが必要となり、それぞれのコストや工数を振り返った時に、専門企業へ外注した際のコストを上回っていたというケースが往々にあるためです。
死活監視の注意点
死活監視のみではシステムの安定稼働に不十分
ここまでで解説したように死活監視は、システムが稼働しているかどうかを確認するための重要な手段ですが、それだけではシステムの安定稼働を保証するには不十分です。死活監視は、あくまで基本的な監視であり、アプリケーションの内部的な問題やパフォーマンスの低下を検出することはできません。
そのため、システムの安定運用のためには、死活監視に加えて、アプリケーション監視、パフォーマンス監視、ログ監視などを組み合わせて、総合的な監視体制を構築する必要があります。複数の監視項目を組み合わせることで、システム全体の健全性を保ちましょう。
監修者:クロジカサーバー管理編集部
コーポレートサイト向けクラウドサーバーの構築・運用保守を行うサービス「クロジカサーバー管理」を提供。上場企業や大学、地方自治体など、セキュリティ対策を必要とするコーポレートサイトで250社以上の実績があります。当社の運用実績を踏まえたクラウドサーバー運用のノウハウをお届けします。
コーポレートサイトをクラウドでセキュアに
無料ではじめるサーバー管理
クロジカガイドブック
- コーポレートサイト構築・運用の課題を解決
- クロジカサーバー管理の主な機能
- 導入事例
- 導入までの流れ