トラブルシューティングの基本
はじめに
障害対応の際、過去に経験したことのある障害ならスムーズに対応できます。
今回は初めて対応する障害の際にもスムーズにトラブルシューティングができるようになるため、
トラブルシューティングの基本について学習したことを整理します。
私がトラブルシューティング時に意識していること
まずは「起きている障害を把握すること」を念頭におきます。
そのために、下記のステップで確認を行っています。
①検知したメッセージがどの機器から出力されたものなのか確認し、
過去に対応経験がある障害なのかも併せて確認する。
②検知したメッセージを実機上で確認し、実機の状態を確認する。
③検知したメッセージの意味を公式のドキュメンテーションで確認したり、
ググったりして、メッセージの意味を調べる。
④関連するシステムの状態とログを確認する。
⑤サポートと調査連携するために、情報を整理する。
(いつどこで何が起きたのか、発生頻度、現在の状況、影響範囲、緊急度など)
⑥サポートと調査連携し、メッセージの意味や原因、対処方法について調査を進める。
⑦検知したメッセージの意味や原因、対処方法について理解したら、
対処方法の手順を作成し、実施する。
⑧問題が解決されない場合は、②~⑦を繰り返す。
調べてわかったトラブルシューティングの基本
トラブルシューティングの基本的な考え方には、
「最も単純で、頻度の高い原因から可能性を消していく」という、
消去法の考え方があることがわかりました。
また、一般的なトラブルシューティングのプロセスは下記のようになることもわかりました。
①問題の特定
まず何が問題なのかを理解し、エラーメッセージ、ログファイル、ユーザーフィードバック
などから情報を収集する。
②問題の範囲特定
問題がどれだけ広範囲にわたって影響を及ぼしているかを調査する。
一部のユーザーのみに影響しているのか、全てのユーザーに影響しているのか等を確認する。
③問題の再現
可能であれば、問題を再現させる。
問題が一貫して発生する条件を理解することができる。
④原因の特定
問題の根本原因を特定する。
試行錯誤のプロセスであり、異なる要素(ソフトウェア、ハードウェア、ネットワーク等)を
順に調査することが含まれる。
⑤修正策の実装
問題の原因を理解したら、修正策を策定し、それを実装する。
⑥検証
修正策が問題を解決したかどうかを確認する。
問題の再現と修正策の適用後の挙動を比較することで行う。
⑦ドキュメンテーション
問題とその解決策、及び学んだことを文書化する。
同様の問題が将来発生した場合の対応を迅速化し、知識をチーム全体で共有できる。
自分に欠けていたもの
私が意識していたことは、現在の現場に依存したものでした。
検知したメッセージから、どの機器から出力されたものなのか初動で確認できるため、
そもそも「最も単純で、頻度の高い原因から可能性を消していく」という考え方や、
一般的なトラブルシューティンのプロセスについて理解していないことがわかりました。
どの現場でも通用するためには、現場依存のトラブルシューティングではなく、
そもそもトラブルシューティングの基本的な方法や考え方について理解することが
重要です。
基本を学び、学んだことを現場環境に適したものに変化させていくことが必要があります。
つまり、自己学習と実務経験を反復することで、より練度が高いものになると考えます。
さいごに
トラブルシューティングだけではなく、技術を学ぶ際、まずは基本を学ぶことの重要性がわかりました。
基本を学ぶことで、自分に足りない要素、スキルアップにはどういったことを学ぶ必要があるのか
次のアクションが見えてくると思います。
Discussion