0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ツールでログ解析 × Jenkinsで簡単運用!

0
Last updated at Posted at 2025-04-18

通信メッセージからCPU使用率レポートを自動生成する仕組みを作ってみた

【1. はじめに】

組み込みソフトウェアの開発において、通信メッセージ内に含んだデバッグを解析することがあると思います。例えばCPU使用率などのシステムの負荷傾向を把握することは重要です。

私のチームや関連するチームにて、このログを手動で解析する作業が煩雑であったり、ローカル環境でのPython実行環境構築がネックになっていたり、面倒だからそもそもやらなかったりと、運用面で課題がありました。

そこで、誰でも簡単に解析ができるよう、Jenkinsを活用してログをアップロードするだけで自動的にレポートが出力される仕組みを構築しました。本記事ではその構成と工夫ポイントについて紹介します。


【2. 解決アプローチの全体像】

  • ログ解析ツール自体はPythonで作成。
  • Jenkinsを用いて以下のフローを構築:
    • ユーザーがログファイルをアップロード
    • JenkinsがPythonスクリプトを実行して解析
    • 結果をレポートとしてArtifactに出力
  • Jenkinsを選定した理由は、GitLab CI/CDで同様の仕組みを試みた際、以下の課題があったため:
    • リポジトリに解析対象のログファイルをコミットする必要がある
    • 不要なログファイルが履歴や容量を圧迫する
    • 無駄なコミットが発生してしまう

【3. Jenkins構築とプラグイン】

File Parameter Plugin

このプラグインを使用すると、ジョブの実行時にユーザーがファイルをアップロードできます。
これにより、リポジトリにログを登録する必要がなくなり、柔軟な運用が可能になります。

Discard Old Builds Plugin

Jenkins上で出力されたArtifact(解析レポート)が増えてストレージを圧迫しないように、一定数以上のビルドを自動で削除する設定を行いました。


【4. 実際のジョブ構成】

今回はFreestyle Projectを使用して構成しました。

  • パラメータ設定で"File Parameter"を追加(名前:log_file など)
  • ビルドステップに以下のようなシェルスクリプトを追加:
#!/bin/bash
python3 parse_cpu_log.py "$log_file"
  • 解析結果(例:HTML, CSV, PNG)をJenkinsのワークスペース内に保存
  • Post-build Actionで「ビルド成果物を保存」にチェックを入れて、成果物をダウンロード可能に

【5. 実行イメージと運用の流れ】

  1. Jenkinsジョブの「ビルド」ボタンを押下
  2. ログファイルをアップロード
  3. 数秒で自動解析&レポート出力
  4. 結果はブラウザからArtifactとしてダウンロード可能

解析にPythonの知識や環境構築は不要で、誰でもブラウザだけで操作できます。


【6. GitLab CI/CDではなくJenkinsを選んだ理由】

GitLab CI/CDでの自動化も試みましたが、以下の問題がありました:

  • ログファイルをGitにコミットする必要がある
  • ストレージ容量が増加し、不要な履歴が残る
  • 開発フローと混在してしまい、管理が煩雑になる

Jenkinsであれば「一時的なファイルを解析して破棄する」というユースケースに非常に向いていると感じました。


【7. 今後の展望】

  • アップロードされた複数ファイルのバッチ解析対応
  • JenkinsのUIをさらにわかりやすくカスタマイズ
  • クラウド化(例:Jenkinsを外部サーバに配置)やWebhook連携
  • GitLabとのハイブリッド運用も検討余地あり

【8. まとめ】

  • PythonツールをJenkinsと連携することで非エンジニアでも簡単に解析が可能に
  • File Parameter Pluginによりユーザーの入力を柔軟に
  • JenkinsのArtifact保存&削除設定によりストレージ管理も自動化
  • Gitと分離することで開発フローを汚さずに解析処理を提供可能

シンプルな仕組みですが、ちょっとした工夫で「誰でも使えるログ解析環境」を実現できました。


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?