問題のトラブルシューティング

トラブルシューティングとは、問題を解決するための体系的なアプローチのことです。 トラブルシューティングの目標は、ある部分が予期したように動作しない理由を特定し、問題の解決方法を明確にすることです。

トラブルシューティング・プロセスの最初のステップは、問題を完全に記述することです。 問題の記述により、お客様および IBM サポート担当者は、問題の原因を見つけるための手掛かりを得やすくなります。 このステップでは、お客様自身が次のような基本的な質問に回答します。

  • 問題の症状はどのようなものか。
  • どこで問題が発生するのか。
  • いつ問題が発生するのか。
  • どのような条件で問題が発生するのか。
  • 問題は再現できるか

通常、上記の質問に回答することは問題を的確に記述することになり、問題解決への道の第 1 歩として最良の方法です。

問題の症状はどのようなものか。

問題の記述を始める場合、最も明白な質問は「問題は何か」ということです。 これは単純な質問のように見えますが、これをさらに焦点を絞ったいくつかの質問に細分化することによって、問題をより具体的に記述することができます。 これには以下のような質問があります。

  • 誰が、または何が問題を報告しているか。
  • エラー・コードとメッセージは何か。
  • システムにどのような障害が発生したか。 例えば、ループ、ハング、異常終了、パフォーマンス低下、または出力結果の誤りなど。
  • 問題はビジネスにどのような影響を与えるか。

どこで問題が発生するのか。

問題の発生箇所を特定することは必ずしも容易ではありませんが、問題の解決に最も重要なステップの 1 つです。 報告元のコンポーネントと障害が発生しているコンポーネントの間に、テクノロジーの層が多数存在している可能性があります。 ネットワーク、ディスク、およびドライバーは、問題を調査する際に考慮すべきコンポーネントのごく一部にすぎません。

以下の質問は、問題の発生箇所に的を絞って、問題の層を切り分けるのに役立ちます。

  • 問題は 1 つのプラットフォームまたはオペレーティング・システムに固有のものか、あるいは複数のプラットフォームまたはオペレーティング・システム間で共通のものか。
  • 現在の環境と構成はサポートされているか。

ある層で問題が報告されても、必ずしもその層で問題が発生しているわけではないことに留意してください。 問題の発生箇所を特定する作業の一環として、その問題が存在する環境を理解します。 ある程度の時間をかけて、問題の環境を完全に記述してください。これには、オペレーティング・システムとバージョン、該当するすべてのソフトウェアとバージョン、およびハードウェア情報が含まれます。 実行環境の構成がサポートされていることを確認してください。多くの場合、問題をトレースすると、ソフトウェア・レベルに互換性がないことがわかります (一緒に実行することを意図していないソフトウェア・レベルであったり、完全には一緒にテストされていないソフトウェア・レベルであったりします)。

いつ問題が発生するのか。

障害に至るまでのイベントの詳細な時系列の記録を作成します (特に発生が 1 回限りの場合)。 最も簡単な方法は経過をさかのぼることです。つまり、エラーが報告された時点 (ミリ秒単位まで可能な限り正確に) から始めて、使用可能なログと情報をさかのぼって調べます。 通常は、診断ログで見つかった最初の疑わしいイベントまでを調べれば十分ですが、これは必ずしも容易ではなく、訓練を必要とします。 複数のテクノロジー層が関係しており、それぞれの層に独自の診断情報がある場合は、どの時点で調べるのを止めるべきかを判断することが特に困難になります。

イベントの詳細な時系列の記録を作成するには、以下の質問に答えます。

  • 問題が日中または夜間の特定時刻にのみ発生するか。
  • どのくらいの頻度で問題が発生するか。
  • 問題が報告される時点までに、どのような順序でイベントが発生するか。
  • 環境変更 (ソフトウェアまたはハードウェアのアップグレード、ソフトウェアまたはハードウェアのインストールなど) 後にこの問題が発生するか。

このような質問に回答することで、問題調査のための基準となる枠組みが得られます。

どのような条件で問題が発生するのか。

トラブルシューティングでは、問題発生時にどのシステムおよびアプリケーションが実行されているかを知ることが重要です。 使用環境に関する以下の質問は、問題の根本原因を特定するのに役立ちます。

  • 問題は同じタスクを実行すると必ず発生するか。
  • 問題が明らかになるまでに、イベントが特定の順序で発生しているか。
  • 同時に障害が発生するアプリケーションが他にあるか。

このような質問に答えることで、問題の発生する環境が明らかになり、依存関係を相互に関連付けるのに役立ちます。 複数の問題がほぼ同じタイミングで発生したからといって、それらの問題が必ずしも関係しているとは限らないことに注意が必要です。

問題は再現できるか

トラブルシューティングの観点から、「理想的」な問題は再現可能な問題です。 一般に、再現可能な問題には、自由に利用できる一連のツールや手順が数多く用意されており、調査に役立てることができます。 このため、再現できる問題は、多くの場合デバッグや解決が容易です。 しかし、再現できる問題には不都合な点もあります。つまり、その問題がビジネスに大きな影響を与える場合、問題が再発することは望ましくありません。 可能であれば、テスト環境または開発環境で問題を再現します。通常、この環境では、制御された状態で柔軟に調査を行うことができます。

  • テスト・システムで問題を再現できるか。
  • 複数のユーザーまたはアプリケーションで同様の問題が発生しているか。
  • 単一のコマンド、一連のコマンド、特定のアプリケーション、またはスタンドアロン・アプリケーションを実行して問題を再現できるか。