問題のトラブルシューティング
トラブルシューティングは問題を解決するための系統的アプローチです。トラブルシューティングの目的は、期待したとおりに処理されない理由を突き止め、問題の解決方法を見つけることにあります。
トラブルシューティングプロセスの最初のステップは、問題を完全に記述することです。問題を記述することで、ユーザーと技術サポート担当者は、問題の原因をどこから探し始めるか認識しやすくなります。このステップには、自分で次のような基本的な質問をしてみることが含まれます。
- どのような問題の徴候があるか。
- どこで問題が起こるか。
- いつ問題が起こるか。
- どのような条件で問題が起こるか。
- 問題を再現できるか。
これらの問題への回答は、通常、問題の適切な記述につながり、その後、問題の解決へと導くことができます。
どのような問題の徴候があるか。
これは単刀直入な質問のように見えます。しかしこれは、問題の詳細を具体的に説明する、もっと焦点を絞った複数の質問に細分化することができます。次のような質問が考えられます。
- 誰が、または何が問題を報告しているか。
- どのようなエラー・コードまたはメッセージが出ているか。
- どのような障害がシステムに起こったか。例えば、ループ、ハング、異常終了、性能低下、結果が正しくない、など。
どこで問題が起こるか。
問題がどこで発生しているかの判断は、簡単にできるとは限りませんが、問題解決のための最も重要なステップの 1 つです。問題を報告しているコンポーネントと障害が起こっているコンポーネントの間には、多数のテクノロジー層が存在することがあります。問題を調査するときは、ネットワーク、ディスク、ドライバーを始めとして多くのコンポーネントを考慮する必要があります。
問題が起こった場所に焦点を当てて問題層を分離するには、以下の質問が役立ちます。
- 1 つのプラットフォームまたはオペレーティング・システムに固有の問題か、それとも複数のプラットフォームまたはオペレーティング・システムに共通の問題か。
- 現在の環境および構成がサポートされているか。
あるレイヤーで問題が報告されたとしても、必ずしもそのレイヤー内で問題が発生しているとは限りません。問題がどこで発生したかを突き止めるには、問題が存在する環境を理解することが不可欠です。しばらく時間を割いて、問題の環境を完全に記述してください。これにはオペレーティング・システムとそのバージョン、対応するすべてのソフトウェアとそのバージョン、およびハードウェア情報を含める必要があります。サポートされている構成の環境で実行していることを確認してください。問題の多くは、ソフトウェアのレベルが非互換 (一緒に実行することが意図されていないソフトウェアまたはその組み合わせでのテストが完全になされていないソフトウェア) であることが原因で生じている可能性があります。
いつ問題が起こるか。
障害に至るまでのイベントの詳細なタイムラインを作成します (特に、1 回限りの障害が発生する場合)。時間をさかのぼることによって、タイムラインを簡単に作成できます。エラーが報告された時点 (可能な限り正確に、できればミリ秒単位で) から始めて、使用できるログおよび情報を逆方向にたどります。通常、確認する必要があるのは、診断ログで見つけた最初の疑わしいイベントまでの部分だけです。
イベントを時系列で詳細に記述するために、次の質問に答えます。
- 昼間または夜間の特定の時刻にのみ問題が発生するか。
- 問題がどのくらい頻繁に発生するか。
- 問題が報告された時点までにどのようなイベントのシーケンスがあったか。
- 問題は環境の変更 (ソフトウェアまたはハードウェアのアップグレードまたはインストールなど) の後で発生するか。
このようなタイプの質問に回答することで、問題を調査するための基準枠を設定できます。
どのような条件で問題が起こるか。
問題が起こった時点で実行中だったシステムおよびアプリケーションを確認することは、トラブルシューティングの重要な部分です。問題の根本原因を突き止めるためには、環境に関する以下の質問が役立つことがあります。
- 問題は同じタスクの実行中に常に起こるか。
- 特定の一連のイベントが発生した場合にのみ、その問題が発生するか。
- ほかのアプリケーションにも同時に障害が起こるか。
この種の問題に答えることが、問題の起こる環境を明白にし、相互の依存関係を記述する上で役立つことがあります。ほぼ同時に複数の問題が発生する場合でも、それらの問題が必ずしも関連しているとは限りません。
問題を再現できるか。
トラブルシューティングの観点からすると、再現可能な問題が理想的です。通常、問題を再現できる場合、一連のさまざまなツールや手順を自由に利用して、問題を調査できます。したがって、再現可能な問題はデバッグおよび解決が容易なことがしばしばあります。ただし、再現可能な問題にも欠点があります。ビジネスに著しく影響する問題の場合、再現することは望ましくありません。可能な場合、テスト環境または開発環境で問題を再現してください。通常、そのような環境では、より柔軟で制御の利いた調査ができます。
- 問題をテスト・システムで再現できるか。
- 複数のユーザーまたはアプリケーションで同じタイプの問題が発生するか。
- 単一のコマンド、一連のコマンド、特定のアプリケーションのいずれを実行することによって問題を再現できるか。