はじめに
Linuxシステムを運用していると、ログ解析が避けられません。しかし、膨大な量のログを人力で確認するのは大変な作業であり、かなり属人化する作業でもあります。そこで、OpenAIのGPT-4を活用してログ解析を効率化するツール「LogAnalyzerGPT」を作成しました。
この記事では、LogAnalyzerGPTの概要、特徴、使い方について紹介します。
LogAnalyzerGPTの概要
LogAnalyzerGPTとは?
LogAnalyzerGPTは、Linuxシステムのログを収集・解析し、エラーや警告、潜在的な問題をAI(GPT-4)を使って要約するPythonツールです。
このツールを使うことで、システム管理者や開発者が問題を素早く把握し、効率的に対応できるようになります。
対象とするログ
以下のログファイルを解析対象としています:
/var/log/syslog
/var/log/messages
/var/log/dmesg
/var/log/auth.log
- その他の主要なログファイル(カスタマイズ可能)
主な特徴
1. エラーと警告の自動抽出
error
, failed
, critical
などのキーワードを基に、重要なログだけをフィルタリングします。
2. AIによるログの要約
OpenAIのGPT-4を利用して、フィルタリングされたログを要約し、システムの状態や潜在的な問題を簡潔に伝えます。
3. カスタマイズ性
- 対象とするログファイルや検索キーワードを自由に変更可能。
- 出力結果はテキストファイルとして保存。
4. スケーラブルな設計
膨大なログにも対応可能。必要に応じてログのサイズや解析範囲を調整できます。
使用方法
1. GitHubリポジトリをクローン
まずはリポジトリをクローンします。
git clone https://github.com/takurot/LogAnalyzerGPT.git
cd LogAnalyzerGPT
2. 必要なライブラリをインストール
Pythonの依存ライブラリをインストールします。
pip install openai
3. OpenAI APIキーを環境変数に設定
~/.bashrc
または ~/.zshrc
に以下を追加してください。
export OPENAI_API_KEY="your_openai_api_key"
4. スクリプトを実行
sudo
権限でスクリプトを実行します。
sudo python3 log_analyzer_gpt.py
5. 結果を確認
スクリプト実行後、生成された log_summary.txt
ファイルに要約結果が保存されます。
スクリプト内での環境変数利用
スクリプトでは、環境変数からAPIキーを取得するようになっています。
import os
import openai
# Get the OpenAI API key from environment variables
openai.api_key = os.getenv("OPENAI_API_KEY")
if not openai.api_key:
raise ValueError("The OpenAI API key is not set. Please set it as an environment variable: OPENAI_API_KEY.")
セキュリティ注意点
-
APIキーの管理
APIキーはコード内に直接記述せず、環境変数を利用することでセキュリティを向上させます。キーを公開しないよう十分注意してください。 -
ログファイルのアクセス権
ログファイルへのアクセスには管理者権限が必要です。特定のユーザーに権限を付与する場合は以下を参考にしてください:
sudo chmod 644 /var/log/syslog
-
sudo
をパスワードなしで実行
特定のコマンドに対してパスワードなしでsudo
を許可する方法については、README をご参照ください。
今後の改善予定
- ログ解析結果の可視化(グラフ化やダッシュボード作成)
- アラート機能の追加(深刻なエラーをメールやSlackで通知)
おわりに
LogAnalyzerGPTは、システムログ解析の効率化を目指して開発したツールです。GitHubリポジトリにて公開しています。
🔗 GitHubリポジトリ: https://github.com/takurot/LogAnalyzerGPT