障害対応で一番時間がかかる作業はなんでしょうか?
私の答えは「ログの読み解き」です。
大量のログから原因を特定する作業は、経験とカンが必要で、慣れないうちは何時間もかかることがあります。しかしここ1〜2年、私はAIを使ってこの作業を大幅に効率化しています。
今回は、実際に私がやっているAIを使ったログ分析の方法を、具体的に紹介します。
AIをログ分析に使うようになったきっかけ
きっかけは単純で、「試しにログをChatGPTに貼り付けてみたら、思ったより使えた」という体験でした。
それまでは、エラーログをGoogle検索にかけて、Stack OverflowやQiitaの記事を読み漁るというやり方をしていました。これでも解決はできるのですが、時間がかかる。しかも、複数のエラーが絡み合っているような複雑な障害では、検索だけではなかなか糸口が見つかりません。
AIに同じログを投げてみたところ、エラーの意味・考えられる原因・確認すべき箇所を整理して返してくれました。「これは使える」と思ったのがきっかけです。
ログ分析でAIを使う3つのメリット
1. エラーの意味を日本語で説明してくれる
英語のエラーメッセージや、意味のわかりにくいログコードも、AIに投げれば日本語でわかりやすく説明してくれます。
たとえばこんなエラーログを貼り付けると——
ORA-01555: snapshot too old: rollback segment number 5 with name "_SYSSMU5_123456789$" too small
「これはOracleデータベースのUNDO領域が不足していることを示すエラーです。長時間実行されているトランザクションが古いデータを参照しようとした際に、そのデータがすでに上書きされてしまっている状態です」と説明してくれます。
2. 複数のログを関連付けて分析できる
単一のエラーログだけでなく、複数の時間帯のログをまとめて貼り付けると、「このエラーはAの時点から始まり、Bのタイミングで悪化した可能性があります」というように、時系列で関連付けて分析してくれます。
3. 次のアクションを提案してくれる
「このエラーが出ている場合、次に確認すべきことは何ですか?」と追加で聞くと、確認すべきコマンドや設定ファイルを提示してくれます。
実際のやり方
私が実際に使っているプロンプト(AIへの指示文)を紹介します。
基本のプロンプト
以下のログを分析してください。
・エラーの意味を日本語で説明してください
・考えられる原因を3つ挙げてください
・次に確認すべきコマンドや設定を教えてください
【ログ】
(ここにログを貼り付ける)
時系列分析のプロンプト
以下は障害発生前後のログです。時系列で分析して、
原因と考えられる箇所を特定してください。
【障害発生30分前のログ】
(ログを貼り付ける)
【障害発生時のログ】
(ログを貼り付ける)
比較分析のプロンプト
以下は正常時と障害時のログです。
差異を比較して、異常な箇所を指摘してください。
【正常時のログ】
(ログを貼り付ける)
【障害時のログ】
(ログを貼り付ける)
使う上での注意点
AIログ分析は便利ですが、注意点もあります。
1. 機密情報・個人情報は貼り付けない
ログにはIPアドレス・ユーザー名・システム固有の情報が含まれることがあります。社外のAIサービスに貼り付ける場合は、機密情報をマスクしてから使うようにしましょう。
# マスクの例
IPアドレス → xxx.xxx.xxx.xxx
ユーザー名 → [USERNAME]
ホスト名 → [HOSTNAME]
2. AIの回答を鵜呑みにしない
AIは「それらしい答え」を返してくれますが、必ずしも正確とは限りません。AIの分析結果はあくまでも「仮説の一つ」として扱い、最終的な判断は自分で行うようにしてください。
3. 使えるAIツールを選ぶ
私が実際に使っているツールはこちらです。
- ChatGPT(GPT-4o):汎用的なログ分析に
- Claude:長いログの分析や、詳細な説明が必要なときに
- Perplexity AI:エラーコードの調査や最新情報の収集に
まとめ
AIを使ったログ分析のポイントをまとめます。
- エラーの意味・原因・次のアクションをセットで質問する
- 複数のログをまとめて投げて時系列分析をする
- 機密情報はマスクしてから使う
- AIの回答は仮説の一つとして扱い、最終判断は自分で行う
ログ分析にかかる時間が半分以下になった、というのが私の実感です。障害対応の現場で時間に追われているエンジニアにとって、AIは強力な武器になります。
ぜひ一度試してみてください。


コメント