継続的インテグレーション (CI) ジョブは大量のデータを生成します。ジョブが失敗した場合、何が問題だったのかを突き止めるのは面倒な作業になることがあります。ログを調査して根本原因を見つけ出す必要がありますが、根本原因はジョブ出力全体のごく一部にしか見つからないことがよくあります。最も関連性の高いデータを他のデータからより簡単に分離するには、以前に正常に実行されたジョブの結果を使用して、失敗した実行ログから異常を抽出する Logreduce 機械学習モデルをトレーニングします。 このアプローチは、Journald やその他のシステム全体の通常のログ ファイルから異常を抽出するなど、他のユース ケースにも適用できます。 機械学習を使用してノイズを削減する一般的なログ ファイルには、多くの標準イベント (「ベースライン」) と、開発者に関連するいくつかの例外的なイベントが含まれています。ベースラインには、検出や削除が困難なタイムスタンプや一意の識別子などのランダムな要素が含まれる場合があります。ベースライン イベントを削除するには、k 最近傍パターン認識アルゴリズム (k-NN) を使用できます。 ログイベントは、k-NN 回帰で使用できる数値に変換する必要があります。このプロセスは、一般的な特徴抽出ツール HashingVectorizer を使用して、あらゆるタイプのログに適用できます。各単語をハッシュし、各出現をスパース マトリックスにエンコードします。検索空間をさらに縮小するために、このトークン化プロセスでは、日付や IP アドレスなどの既知のランダムな単語が削除されます。 モデルをトレーニングした後、k-NN 検索により、各新しいイベントがベースラインからどれだけ離れているかがわかります。 この Jupyter ノートブックは、このスパース行列ベクトルの処理とグラフ化を示します。 Logreduce の紹介Logreduce Python ソフトウェアはこのプロセスを透過的に実装します。 Logreduce は、もともとビルド データベースを使用して Zuul CI ジョブの失敗を分析することを目的としていましたが、現在では Software Factory 開発ショップのジョブ ログ処理に統合されています。 最も単純な場合、Logreduce はファイルまたはディレクトリを比較し、類似の行を削除します。 Logreduce は、各ソース ファイルのモデルを構築し、次の構文を使用して、距離が定義されたしきい値を超えるターゲット行を出力します:
Logreduce のより高度な使用法は、再利用のためにモデルをオフラインでトレーニングすることです。ベースラインのさまざまなバリエーションを使用して、k-NN 検索ツリーを適合できます。
Logreduce は、Journald の時間範囲 (日数/週数/月数) と Zuul CI ジョブ ビルド履歴のベースラインを検出するためのインターフェイスも実装します。また、複数のファイルで見つかった異常をシンプルなインターフェースでグループ化した HTML レポートを生成することもできます。 管理ベースラインk-NN 回帰を使用した異常検出の鍵は、モデルが逸脱しすぎたログ ラインを検出するために使用する既知の適切なベースラインのデータベースを持つことです。このアプローチは、すべての名目上のイベントを含むベースラインに依存します。ベースラインに見つからないものはすべて異常として報告されるためです。 CI ジョブは、ジョブの出力が通常決定論的であり、以前の実行の結果を自動的にベースラインとして使用できることから、k-NN 回帰の重要なターゲットとなります。 Logreduce には、失敗したジョブ公開タスクの一部として使用して、簡潔なレポート (完全なジョブのログではなく) を公開できる Zuul ジョブ ロールがあります。この原則は、事前にベースラインを構築できる限り、他の状況にも適用できます。たとえば、公称システムの SoS レポートを使用して、欠陥のある展開における問題を見つけることができます。 異常分類サービスLogreduce の次のバージョンでは、ログ処理を外部サービスにオフロードし、レポートをさらに分析できるサーバー モードが導入されます。また、Zuul ビルドを分析するための既存のレポートとリクエストのインポートもサポートしています。これらのサービスは分析を非同期で実行し、スコアを調整して誤検知を排除するための Web インターフェースを備えています。 監査レポートは、ターゲット ログ ファイルと、共通の JSON ファイルに記録された異常な行のスコアを含むスタンドアロン データセットとしてアーカイブできます。 プロジェクトロードマップLogreduce はすでに効果的に使用できますが、ツールを改善する機会は数多くあります。今後の計画は次のとおりです。
このプロジェクトに参加することに興味がある場合は、#log-classify Freenode IRC チャネルでご連絡ください。フィードバックをお待ちしています! |
<<: 自動運転技術はすでにかなり成熟しているのに、なぜまだ普及していないのでしょうか?この技術を待っている
>>: AIを安全で信頼できるものにするためには、まずアルゴリズムの一般化能力を理解することから始める
第四パラダイムの主任科学者であり、パラダイム大学の指導者である楊強教授は最近、第四パラダイム内で「人...
最近、多くの専門家とコミュニケーションをとる中で、人工知能の3つの重要なビジネス面が徐々に明らかにな...
[[253100]]映画「ターミネーター」を見たことがある人は多いでしょう。実は、ターミネーターに似...
かつてはSFの世界の話のように思われていた人工知能(AI)という言葉は、今や現実のものとなり、私たち...
[[357895]]この記事はLeiphone.comから転載したものです。転載する場合は、Leip...
コネクテッドデバイスの急速な普及により、スマートシティのコンセプトが現実に近づきつつあります。これら...
現代のビジネス環境では、人工知能 (AI) がビジネスの運営方法を変えています。 AI をビジネス ...
時間と空間を結びつけるのは速度であり、エネルギーと質量を結びつけるのも速度です。事実と価値を結びつけ...
近年、自然言語処理、コンピュータービジョン、音声処理など、人工知能のさまざまな分野が、ディープラーニ...
現在、顔認識の応用はますます深く広範囲になり、それが引き起こす論争もますます激しくなっています。まず...
現在、国内RPA市場の競争は激化しており、多くのメーカーが独自のRPA製品やブランドを立ち上げていま...
カスタマーサービスに電話すると、ロボットはプログラムに従ってプロンプトを出すだけで、ユーザーが望む情...
例と視覚化による 10 個の基本的なグラフ アルゴリズムの簡単な紹介グラフは、ソーシャル メディア ...
現在、AI は主に人工ニューラル ネットワークとディープラーニングに関するものです。しかし、必ずしも...