サーバ障害の切り分けとは
サーバは以下の5つのレイヤーに分類されます。
- サービス
- WebサイトやCMS
- アプリケーション
- PHPやMySQL
- ネットワーク
- キャリアネットワークやデータセンター内通信
- OS
- WindowsやLinux
- ハードウェア
- サーバルームやデータセンター
サーバに障害が発生した際は、その原因を突き止めなければなりません。そのために必要な手順が「切り分け」です。一般的には下層から上層(ハードウェアからサービス)の順で確認します。ただし、不審な点が見られるレイヤーがあれば、そこから確認することもあります。
サーバ障害の切り分け方のフロー
切り分け方のフローを見ていきましょう。
1.サーバが稼働するか確認する
サーバにアクセスできない場合、はじめに確認すべきなのはサーバが稼働しているかどうかです。そのために、以下のコマンドを利用しましょう。
- 1.pingの応答がある→サーバ・ネットワーク以外
- 2.pingの応答がない→tracertで目的のサーバまで経由するルータの応答あり→サーバ
- 3.pingの応答がない→tracertで目的のサーバまで経由するルータの応答なし→ネットワーク
2.サービスが稼働するか確認する
上記の手順でpingの応答がある場合は、OS・アプリケーション・サービスでの障害が考えられます。続いてサービスの稼働状況を確認しましょう。その際に利用するのがTelnetです。
Telnetは、コンピュータを遠隔操作するための仕組みです。障害が発生しているサーバのサービスやアプリにリモート操作を行い、応答がなければサービスがダウンしていることが分かります。逆に、正常な応答が返ってくるなら、サービスが動作していることが分かります。
3.システムの情報を取得する
上記の手順でサービス自体に異常がなければ、サーバにログインして情報を収集しましょう。具体的には、プロセスやアクセスログ、エラーログなどの情報を取得します。
過去のログだけでなく、リアルタイムなログも要チェックです。これらの情報により、具体的にどのような障害が起きているのか明らかになるでしょう。
逆に、Telnetに反応がなくサーバにログインできなかった場合は、それ以上は遠隔で調査できません。電源や冷却ファン、OSなど、現地で直接サーバを調査する必要があります。
サーバ障害を未然に防ぐコツ
サーバ障害を未然に防ぐにはどうすればよいのでしょうか。
障害対応マニュアルを作成する
障害による被害を最小限に抑えるためには、障害発生時の対策方法を整理しておく必要があります。具体的には、以下のようなことを定めましょう。
- ■監視体制の整備
- ■監視・運用スタッフの人員配置
- ■スタッフの役割分担
- ■障害検知方法・手順
- ■障害対応後の報告方法
これらのことを的確に定めるためには、障害発生時のログを残しておくことが大切です。いつどのような障害が生じ、どのように対応したのか記録することで、その後の対応がスムーズになります。
サーバ運用監視システムを導入する
サーバ運用監視システムとは、サーバの監視を自動化するためのシステムです。サーバ障害を避け、稼働を維持していくためには、常にサーバの状態を監視する必要があります。しかし、それをすべて人力で行うのは困難です。
サーバ運用監視システムは、自動でサーバの情報を取得します。定期的なping送信などを行い、障害発生時には迅速に管理者へ通知します。早期に小さな異常を検知できることで、大規模な被害を回避できます。
サーバ運用の負担とリスクを同時に軽減できる方法として導入を検討してみましょう。
サーバ障害の切り分け方を理解し、迅速に原因を特定しよう!
サーバ障害の切り分けは、サーバのレイヤーのうち、どこに障害の原因が潜んでいるか調べる方法です。以下のステップで切り分けられます。
- 1.サーバの稼働状況を確認
- 2.サービスの稼働状況を確認
- 3.システムの情報を取得
また、サーバ障害に備えて以下の対策を行いましょう。
- ■障害対応マニュアルの作成
- ■サーバ運用監視システムの導入
サーバ運用の負担軽減のため、ぜひ監視システムを導入し、適切な管理体制を整えてください。