特許第6735903号(P6735903)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ニュー レリック インコーポレイテッドの特許一覧

<>
  • 特許6735903-ログクエリーユーザーインターフェイス 図000002
  • 特許6735903-ログクエリーユーザーインターフェイス 図000003
  • 特許6735903-ログクエリーユーザーインターフェイス 図000004
  • 特許6735903-ログクエリーユーザーインターフェイス 図000005
  • 特許6735903-ログクエリーユーザーインターフェイス 図000006
  • 特許6735903-ログクエリーユーザーインターフェイス 図000007
  • 特許6735903-ログクエリーユーザーインターフェイス 図000008
  • 特許6735903-ログクエリーユーザーインターフェイス 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6735903
(24)【登録日】2020年7月16日
(45)【発行日】2020年8月5日
(54)【発明の名称】ログクエリーユーザーインターフェイス
(51)【国際特許分類】
   G06F 16/332 20190101AFI20200728BHJP
   G06F 11/34 20060101ALI20200728BHJP
【FI】
   G06F16/332
   G06F11/34 176
【請求項の数】20
【全頁数】17
(21)【出願番号】特願2019-505435(P2019-505435)
(86)(22)【出願日】2017年7月28日
(65)【公表番号】特表2019-530053(P2019-530053A)
(43)【公表日】2019年10月17日
(86)【国際出願番号】IB2017054621
(87)【国際公開番号】WO2018025140
(87)【国際公開日】20180208
【審査請求日】2019年3月14日
(31)【優先権主張番号】15/228,908
(32)【優先日】2016年8月4日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】518295303
【氏名又は名称】ニュー レリック インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】特許業務法人 谷・阿部特許事務所
(72)【発明者】
【氏名】ジュリアン ギウーカ
【審査官】 後藤 彰
(56)【参考文献】
【文献】 特開2016−076020(JP,A)
【文献】 特開2010−218333(JP,A)
【文献】 特開2002−207612(JP,A)
【文献】 米国特許第07895611(US,B1)
【文献】 米国特許出願公開第2014/0282031(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/332
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
コンピュータによって実行される方法であって、該方法は、
ログファイルをクエリーするためのユーザーインターフェイスにおいて、1つまたは複数のログファイルの複数の行を表示するステップと、
前記複数の表示された行の少なくとも第1および第2の選択を受信するステップと、
前記選択された行の各々に対して、
前記選択された行に関連付けられたルールネームを指定する入力を受信し、
前記選択された行の1つまたは複数のアトリビュートの選択を受信し、
前記選択された行の1つまたは複数の各アトリビュートの選択に応じて、
前記ユーザーインターフェイスに、前記選択されたアトリビュートに関連付けられるアトリビュートネーム入力フィールドを表示し、および
前記表示されたアトリビュートネーム入力フィールドの各々に対するアトリビュートネームを受信するステップと、
前記ログファイルを構文解析するために第1ルールおよび第2ルールを選択するステップであって、前記第1ルールは前記第1の選択された行に関連付けられた第1ルールネームにより示され、および前記第2ルールは前記第2の選択された行に関連付けられた第2ルールネームにより示されるステップと、
前記ユーザーインターフェイスを使用して、前記第1ルールに関連付けられた少なくとも1つのアトリビュートネームを前記第2ルールネームに関連付けることによって前記第1ルールおよび前記第2ルールをリンクするステップと、
前記リンクされた第1ルールおよび第2ルールから集成ルールを作成するステップと、
前記集成ルールを使用して前記ログファイルのクエリーを実行するステップと
を備えたことを特徴とする方法。
【請求項2】
前記ログファイルは、異なるアプリケーションからの1つまたは複数の行を含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記ログファイルは、railsのアプリケーションから生成されることを特徴とする請求項1に記載の方法。
【請求項4】
前記ログファイルは、前記ルールを定義する前に生成される1つまたは複数の行を含むことを特徴とする請求項1に記載の方法。
【請求項5】
該方法は、
検索インターフェイスを表示するステップと、
前記検索インターフェイスに含まれる検索フィールドにおいて、前記選択された行に含まれる1つまたは複数の標準的な表現を指定する入力を受信するステップと、
前記検索インターフェイスにおいて、前記1つまたは複数の指定された標準的な表現を含む1つまたは複数の行を表示するステップと
をさらに備えたことを特徴とする請求項1に記載の方法。
【請求項6】
前記選択された行は、構造化されたデータを含むことを特徴とする請求項1に記載の方法。
【請求項7】
構造化されたデータを含む前記選択された行の各アトリビュートに一致するトークンを各アトリビュートネーム入力フィールドにおいて表示するステップをさらに備えたことを特徴とする請求項1に記載の方法。
【請求項8】
各選択されたアトリビュートに異なる視覚的識別子を関連付けるステップをさらに備えたことを特徴とする請求項1に記載の方法。
【請求項9】
該方法は、
前記1つまたは複数の選択されたアトリビュートを含む1つまたは複数の行を表示するステップと、
前記1つまたは複数の選択されたアトリビュートを含む前記表示された1つまたは複数の行の各アトリビュートに異なる視覚的識別子を関連付けるステップと
をさらに備えたことを特徴とする請求項8に記載の方法。
【請求項10】
前記第1ルールおよび前記第2ルールをリンクするステップは、
前記第1ルールの1つまたは複数のアトリビュートの選択を受信するステップと、
前記第2ルールに前記第1ルールの選択されたアトリビュートをリンクするステップと
を含むことを特徴とする請求項1に記載の方法。
【請求項11】
実行可能なコンピュータプログラム命令を格納する非一時的なコンピュータ読み取り可能な記録媒体であって、前記命令がプロセッサーにより実行されると前記プロセッサーは、
ログファイルをクエリーするためのユーザーインターフェイスにおいて、1つまたは複数のログファイルの複数の行を表示するステップと、
前記複数の表示された行の少なくとも第1および第2の選択を受信するステップと、
前記選択された行の各々に対して、
前記選択された行に関連付けられたルールネームを指定する入力を受信し、
前記選択された行の1つまたは複数のアトリビュートの選択を受信し、
前記選択された行の1つまたは複数の各アトリビュートの選択に応じて、
前記ユーザーインターフェイスに、前記選択されたアトリビュートに関連付けられるアトリビュートネーム入力フィールドを表示し、および
前記表示されたアトリビュートネーム入力フィールドの各々に対するアトリビュートネームを受信するステップと、
前記ログファイルを構文解析するために第1ルールおよび第2ルールを選択するステップであって、前記第1ルールは前記第1の選択された行に関連付けられた第1ルールネームにより示され、および前記第2ルールは前記第2の選択された行に関連付けられた第2ルールネームにより示されるステップと、
前記ユーザーインターフェイスを使用して、前記第1ルールに関連付けられた少なくとも1つのアトリビュートネームを前記第2ルールネームに関連付けることによって前記第1ルールおよび前記第2ルールをリンクするステップと、
前記リンクされた第1ルールおよび第2ルールから集成ルールを作成するステップと、
前記集成ルールを使用して前記ログファイルのクエリーを実行するステップと
を実行することを特徴とする非一時的なコンピュータ読み取り可能な記録媒体。
【請求項12】
前記ログファイルは、異なるアプリケーションからの1つまたは複数の行を含むことを特徴とする請求項11に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項13】
前記ログファイルは、railsのアプリケーションから生成されることを特徴とする請求項11に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項14】
前記ログファイルは、前記ルールを定義する前に生成される1つまたは複数の行を含むことを特徴とする請求項11に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項15】
前記命令が前記プロセッサーにより実行されると前記プロセッサーは、
検索インターフェイスを表示するステップと、
前記検索インターフェイスに含まれる検索フィールドにおいて、前記選択された行に含まれる1つまたは複数の標準的な表現を指定する入力を受信するステップと、
前記検索インターフェイスにおいて、前記1つまたは複数の指定された標準的な表現を含む1つまたは複数の行を表示するステップと
をさらに実行することを特徴とする請求項11に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項16】
前記選択された行は、構造化されたデータを含むことを特徴とする請求項11に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項17】
前記命令が前記プロセッサーにより実行されると前記プロセッサーは、構造化されたデータを含む前記選択された行の各アトリビュートに一致するトークンを各アトリビュートネーム入力フィールドにおいて表示するステップをさらに実行することを特徴とする請求項11に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項18】
前記命令が前記プロセッサーにより実行されると前記プロセッサーは、各選択されたアトリビュートに異なる視覚的識別子を関連付けるステップをさらに実行することを特徴とする請求項11に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項19】
前記命令が前記プロセッサーにより実行されると前記プロセッサーは、
前記1つまたは複数の選択されたアトリビュートを含む1つまたは複数の行を表示するステップと、
前記1つまたは複数の選択されたアトリビュートを含む前記表示された1つまたは複数の行の各アトリビュートに異なる視覚的識別子を関連付けるステップと
をさらに実行することを特徴とする請求項18に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項20】
前記命令が前記プロセッサーにより実行されると前記プロセッサーが前記第1ルールおよび前記第2ルールをリンクするステップは、
前記第1ルールの1つまたは複数のアトリビュートの選択を受信するステップと、
前記第2ルールに前記第1ルールの選択されたアトリビュートをリンクするステップと
を含むことを特徴とする請求項11に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般にコンピューターにより生成された記録の分析に関し、特にログメッセージをイベントの洞察に変換するユーザーインターフェイスに関する。
【背景技術】
【0002】
分散型コンピューティングシステム内の多くのコンポーネントはログデータを生成する。分散型コンピューティングネットワークの数、大きさおよび複雑さが次第に大きくなるにつれて、ログファイルの量および種類もまた増大する。大量のログデータは分析するのを困難および冗長にさせる可能性がある。従来のロギングの結果は多くの場合限定的であり、理由としては、未処理のテキスト検索を使用するか予めフォーマットされたデータ構造を用いるかしてログデータを分析するからある。従って、ロギングの結果は、ログファイルを構文解析し、潜在的な問題を識別し、および複数のデータセットに対する、複数のアプリケーションに渡るエラーを発見することが、ますます困難になる。
【発明の概要】
【0003】
本明細書の実施形態は、ユーザーに、複数の構文解析のルールを生成しリンクすることによって、構造化されていないログデータおよび構造化されたログデータの構文解析に対するルールを定義することができるようになるグラフィカルユーザーインターフェイスを詳述する。第一のユーザーインターフェイスにより、ユーザーは、分析中のログファイルから行を選択し、ログファイルにおいて行をマッチさせるために検索し、ログファイルを構文解析するためのルールを定義し、および選択された行のアトリビュートをトークン化することができるようになる。第二のユーザーインターフェイスにより、ユーザーは、定義されたルールをリンクして、集成ルールにすることができるようになる。集成ルールを、複数のログ行且つ/又はログファイルに含まれるメッセージを相互に関係させる1つまたは複数のログファイルに適用して、複数の行に渡って起こるイベントを識別することができる。
【図面の簡単な説明】
【0004】
図1】一実施形態にかかるログクエリーユーザーインターフェイスを実行するシステム環境を示す図である。
図2】一実施形態にかかる図1のアプリケーションサーバー上において実行中のアプリケーションからログデータ情報を構文解析するために1つまたは複数のルールセットを定義するルール定義ユーザーインターフェイスを示すブロック図である。
図3】一実施形態にかかる図2のルールセットに含めるためのルールを指定するルールユーザーインターフェイスを示すブロック図である。
図4】一実施形態にかかる選択された行に類似する分析中のログファイル中の行を検索するユーザーインターフェイスを示す図である。
図5】一実施形態にかかる図3の選択された行をトークン化するトークン化ユーザーインターフェイスを示す図である。
図6】一実施形態にかかるイベント集成ユーザーインターフェイスを示す図である。
図7A】一実施形態にかかる集成イベントを指定する方法の一部を説明するフローチャートを示す図である。
図7B】一実施形態にかかる集成イベントを指定する図7Aの方法の別の部分を説明するフローチャートを示す図である。
【0005】
図面は単に例証を目的として本開示の種々の実施形態を示す。当業者は以下の考察から、本明細書において示される構造および方法の代替の実施形態を、本明細書において詳述される開示の原則から逸脱することなしに用いることができることをすぐに認識するであろう。
【発明を実施するための形態】
【0006】
図1は、一実施形態にかかるログクエリーユーザーインターフェイスを実行するシステム環境を例示する。1つの実施形態において、システム環境はサーバー110、クライアントデバイス130および監視サーバー140を含み、ネットワーク150を介して通信する。クライアントデバイス130は、ユーザー入力を受信する、同様にネットワーク経由によりデータを送信且つ/又は受信する性能がある1つまたは複数のコンピューティングデバイスを含む。1つの実施形態において、クライアントデバイス130は従来のコンピューターシステム、例えばデスクトップまたはラップトップコンピューターなどである。あるいはまた、クライアントデバイス130はコンピューターの機能性があるデバイス、例えばPDA(携帯情報端末)、携帯電話、スマートフォンまたは別の適切なデバイスなどとすることができる。クライアントデバイス130を、ネットワーク150経由により通信するよう構成する。1つの実施形態において、クライアントデバイス130は、クライアントデバイス130のユーザーがサーバー110とコミュニケーションをとることができるようになるアプリケーションを実行する。例えば、クライアントデバイス130はブラウザーアプリケーションを実行すると、クライアントデバイス130とサーバー110との相互作用をネットワーク150経由により可能にする。別の実施形態において、クライアントデバイス130は、固有のオペレーティングシステム、例えばIOS(登録商標)またはANDROID(登録商標)などの上で動作するAPI(アプリケーションプログラミングインターフェイス)によって、サーバー110とコミュニケーションをとる。単一のクライアントデバイス130を図1において示すが、あらゆる台数のクライアントデバイス130がサーバー110とネットワーク150経由によりコミュニケーションをとることができる。
【0007】
クライアントデバイス130を、有線且つ/又は無線の両方の通信システムを使用するネットワーク150経由によりサーバー110とコミュニケーションをとるよう構成するが、ローカルエリア且つ/又はワイドエリアネットワークのあらゆる組み合わせを含むことができる。1つの実施形態において、ネットワーク150は標準の通信技術且つ/又はプロトコルを使用する。例えば、ネットワーク150は、イーサネット(登録商標)、802.11、WiMAX(worldwide interoperability for microwave access)、3G、4G、CDMA(符号分割多元接続)、DSL(デジタル加入者線)などのような技術を使用する通信リンクを含む。ネットワーク150経由による通信に使用されるネットワーキングプロトコルの例は、MPLS(マルチプロトコルラベルスイッチング)、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、HTTP(ハイパーテキスト転送プロトコル)、SMTP(簡易メール転送プロトコル)およびFTP(ファイル転送プロトコル)を含む。ネットワーク150を介して交換されるデータを、例えばHTML(ハイパーテキストマークアップ言語)またはXML(拡張可能マークアップ言語)などのあらゆる適切なフォーマットを使用して表すことができる。いくつかの実施形態において、ネットワーク150の通信リンクの全部または一部を、あらゆる適切な1つまたは複数の技術を使用して暗号化することができる。
【0008】
サーバー110はアプリケーション115およびエージェント120を操作する。アプリケーション115は、いろいろな種類の通信アプリケーション、モバイルアプリケーションまたはウェブアプリケーションのいずれかにすることができ、クライアントサーバーアプリケーションの演算のサブセットを表すことができる。サーバー110によって動かされるアプリケーション115は、クライアントサーバーアプリケーションのあらゆるサーバー側のプロセス、例えばデータベースコンテンツを呼び出して格納すること、クライアントデバイス130におけるレンダリングのユーザーインターフェイスを生成すること、クライアントデバイス130において要求される機能を果たすこと、およびコンテンツをクライアントデバイス130に(例えば、ネットワーク150を介して)伝達することなどを含む。1つの実施形態において、サーバー110は電子メールサーバーであり、電子メールメッセージをクライアントデバイス130に送付する。別の実装において、サーバー110はウェブサーバーであり、ウェブページを、ユーザーに表示するためのクライアントデバイス130に送付する。単一のサーバー110を図1において示すが、サーバー110は、アプリケーション115の機能を実行する1つまたは複数のコンピューティングデバイスを含むことができて、環境は、あらゆる個数のアプリケーション115を動かすあらゆる台数のサーバー110を含むことができる。
【0009】
エージェント120はアプリケーション115の実行を、サーバー110上で動いているプロセス、アプリケーション115のレスポンスタイム、クライアントデバイス130におけるユーザーのアクティビティについての行動に関する状況、且つ/又は他の情報を含んで監視する。エージェント120は、サーバー110により実行される一組のソフトウェアであり、コードをアプリケーション115に導入することによって、アプリケーション115を監視する。
【0010】
監視サーバー140は、アプリケーションサーバー110の実行を監視する。監視サーバー140は、アプリケーション監視サービスプロバイダーにより提供することができて、あらゆる台数のアプリケーションサーバーの実行を監視することができる。1つの実施形態において、監視サーバー140は当社が提供し、当社の製品を実行する。1つの実施形態において、監視サーバー140を、コンピューティングデバイスに作用するよう構成して、コンピューティングデバイスは特に、監視サーバー140の機能を果たす命令を実行するように構成された1つまたは複数の処理デバイスを含む。処理デバイスを、一連のグラフィカルユーザーインターフェイスを生成する命令を実行するよう構成して、一連のグラフィカルユーザーインターフェイスによりユーザーは、構造化されていないログデータおよび構造化されたログデータを構文解析するためのルールを定義することが可能になり、構文解析のルールを、1つまたは複数のログファイルに含まれる複数のログ行に適用する。
【0011】
サーバー110を監視するために、監視サーバー140はエージェント120をサーバー110に提供して、エージェント120からデータを受信する。エージェント120により集められたデータを、表示用のユーザーインターフェイスにおいて、サーバー110のアドミニストレーターに提示することができる。
【0012】
ログデータ構文解析ユーザーインターフェイス
図2は、一実施形態にかかるサーバー110上において実行中のアプリケーション115からログデータ情報を構文解析するための1つまたは複数のルールセットを定義するユーザーインターフェイス200を例示するブロック図である。ルールセットは1つまたは複数のルールの一群であり、ログファイルに適用してログファイルを構文解析する。例えば、ルールセットは、サーバー110により受信されて入ってくるリクエストに関係する行を構文解析する複数のルールを含むことができる。図2に示すように、ユーザーインターフェイス200は、ルールセット定義セクション205、ルールセット選択セクション210およびログファイル205の一部を表示するログ行表示セクション215を含む。1つの実施形態において、ユーザーインターフェイス200を、監視サーバー140によって生成して、1つまたは複数のクライアントデバイス130にネットワーク150経由により表示するために提示する。
【0013】
ユーザーインターフェイス200にルールセット定義セクション205は含まれ、ログファイルを構文解析するために、ルールセットを指定するネームを受信するためのネーム入力フィールド205A、およびルールセットネームをルールセット選択セクション210に追加するための追加ボタン205Bを含む。ルールセット選択セクション210は、ネーム入力フィールド205Aにおいて受信された情報に対応するルールセットネームのリストを含む。ルールセットネームを、追加ボタン205Bが選択入力を受信するとすぐに反応して追加することができる。例えば、図2のルールセット選択セクションは4つのルール、対応する4つの異なるルールセットネーム、例えばネーム入力フィールド205において受信されたルールセット_A、ルールセット_B、ルールセット_Cおよびルールセット_Dを示す。
【0014】
ログ行表示セクション215は、1つまたは複数のアプリケーション、オペレーティングシステム、サーバー、またはログファイルを生成する性能がある分散ネットワーキングシステムの他のコンポーネントにより生成されるログファイルの一部220を含む。ログファイルは、分散ネットワーキングシステム内の種々のコンポーネント上で実行される動作の記録を含む。例示的な動作は、サーバー110へのアクセス要求についての情報、クライアントデバイスにより見られるページ、およびリクエストを処理している間に起こるエラーなどのイベントを含む。いくつかの場合において、ログファイルを自動的に、サーバー110上で動いているオペレーティングシステムまたはアプリケーションにより生成することができる。自動的に生成されるログを、サーバー110に含まれるメモリーに指定されるロケーションに書き込むことができる。ログファイルは特定のログファイルを生成したアプリケーションまたはオペレーティングシステムに基づいて指定されたフォーマットを有することができる。他の場合において、ログファイルフォーマットを、構造化されていないテキストまたは未処理のテキストとすることができる。監視サーバー140はログを、指定されたメモリーロケーションから直接的にまたはエージェント120経由により間接的に呼び出することができる。
【0015】
図2に示すログファイルの一部220は、時系列に(すなわち、最も古いものから最も新しいものへとまたは最も新しいものから最も古いものへと)並べられた複数の行225を含む。1つの実装において、ログ行表示セクション215に表示されるログファイルの一部220は、アプリケーションサーバーを動作させているアプリケーションにより生成されるログファイルの動作中の末端に一致する。例えば、エージェント120により、コマンドtail−f/path/thefile.logは実行され、ストリームセクションにおいて表示し連続的に新しい行225として更新するために、アプリケーションサーバー110のメモリーコンポーネントに格納されるログファイルの最新の10行をログに追加することを引き起こすことができる。他の実装において、ログファイルの一部220は、図2に示す行数より少なくまたはより多くを含むことができる。ストリームモードにおいて、ログファイルが現在実行中のアプリケーションから生成される限り、動作中のログファイルの末端についての表示は、プレイ/一時停止ボタン230が選択指示を受信するまで更新を続ける。表示されるログファイルの更新を再開するために、プレイ/一時停止ボタン230は、動作中の末端の配信が一時停止された後に別の選択指示を受信する。
【0016】
配信をユーザーが一時停止することができて、ユーザーインターフェイス200に、ログファイルを構文解析するよう指定されるルールセットに含めるためのルールを指定する行225の選択指示を受信することができるようにする。配信が一時停止されると、行225の選択指示を、ログ行表示セクション215経由により受信して、ルールセットに含めるためのルールを指定することができる。1つの実施形態において、行225の選択指示は、選択された行235の一部をクリックすること、ポインターを選択された行235の一部に移動させること、またはログ行表示セクション215経由により行の選択を指示する他の手段を含むことができる。
【0017】
図3は、一実施形態にかかる図2のルールセットに含めるためのルールを指定するルールユーザーインターフェイス300を例示するブロック図である。ユーザーインターフェイス300を、ログ行表示セクション215から行225の選択指示を受信するとすぐに反応する監視サーバー140が生成する。選択された行235に一致するルールネームを指定するユーザーインターフェイス300は、選択された行235を表示する選択フィールド305、および選択された行235についての情報を受信する入力ルールネームフィールド310を含む。選択された行235についての情報は行235に関連付けられたログイベントの型を詳述することができる。ログイベントの例示的な型は、ルート、コントローラー、レスポンスなどを含むことができる。例えば、選択された行235はサーバー110に入ってくるリクエストの第1ステップを詳述することができて、ログイベントの「ルート」型に一致する。「次へ」ボタン320の選択指示を受信するとすぐに反応して、ユーザーインターフェイス300は検索ユーザーインターフェイス400に置き換えられる。
【0018】
図4は、一実施形態にかかる図3において選択された行に類似する行を検索するユーザーインターフェイス400を例示するブロック図である。ユーザーインターフェイス400は、選択された行235を詳述する情報を受信するとすぐに反応する監視サーバー140により生成される。ユーザーインターフェイス400は、選択された行235を表示する選択フィールド405、選択された行235に類似する、ログファイル中のメッセージを詳述する情報を受信する検索フィールド410、および選択された行235にマッチする行430を表示する検索確認表示エリア420を含む。
【0019】
図4に示す一実施形態において、選択された行235に類似する行を検索するために、検索フィールド410は標準的な表現としてフォーマットを設定する情報を受信する。標準的な表現は検索パターンを定義する一連の特徴を含むことができる。例えば、図4に示すように、標準的な表現「Started \w+」は、選択された行235に類似するログファイルから行を呼び出す。検索フィールド410において情報を受信するとすぐに反応して、監視サーバー140は、ログファイルをフィルタリングして、構文解析するために検索フィールド410において指定された情報にマッチする特徴を有する他の行を識別する。フィルタリングされた結果430を検索確認表示エリア420に表示して、検索フィールド410により受信された検索情報が、選択された行235に類似する、ログファイルに含まれる行を識別していることを視覚的に確認する。「次へ」ボタン440の選択指示を受信するとすぐに反応して、検索ユーザーインターフェイス400はトークン化ユーザーインターフェイス500に置き換えられる。
【0020】
図5は、一実施形態にかかる図3において選択された行をトークン化するトークン化ユーザーインターフェイス500を例示するブロック図である。トークン化ユーザーインターフェイス500によって、選択された行235の異なる部分を、ユーザーが選択できるようになり、さらにトークン化ユーザーインターフェイス500内のスタンドアローンのアトリビュートとして自動的に提示する。トークン化ユーザーインターフェイス500は特定のルールを識別するルールネーム505(図3のインターフェイスにおいて指定される)、選択フィールド510、行アトリビュートトークン化セクション515およびマッチング行表示エリア570を含む。
【0021】
選択フィールド510は選択された行235を表示して、選択された行235の1つまたは複数のアトリビュートを選択し各選択されたアトリビュートをネームに関連付けるインターフェイスを提供する。1つの実施形態において、選択された行235のアトリビュートを、ポインター、例えばカーソルまたはマウスアイコンを動かすことによって、少なくとも指定された時間間隔の間にアトリビュートを介して選択することができる。別の実装において、選択を、カーソル、アイコンまたはアトリビュートを介して他の視覚的なポインターを動かすこと、およびマウスまたは同様の入力デバイスをクリックすることによって示すことができる。1つの実施形態において、監視サーバー140により、行が選択されると生成される語彙的な文法プログラムが用いられ、選択された行をキー/値のコンポーネントにばらすことができる。文法プログラムは、ログファイルに含まれる行毎に評価されて、キー/値のコンポーネントを含む行を出力する。別の実施形態において、クライアントデバイス130は、単独でまたは監視サーバー140と連係して文法プログラムを用いることができる。
【0022】
選択された行235のアトリビュートの選択指示を受信するとすぐに反応して、監視サーバー140はアトリビュートトークン化セクション515におけるアトリビュートネームを受信するために提出された入力のすぐそばに、各選択されたアトリビュートを表示する。アトリビュートトークン化セクション515は1つまたは複数の列を含み、各列は選択されたアトリビュートおよびネームをアトリビュートに関連付けるネームフィールドを含んでいる。例えば、図5に示すように、行235の選択されたコンポーネントは「GET」520、「/status/check」530、「10.1.0.12」540、「2015−10−20」535および「11:13:21」540を含む。アトリビュート「GET」が選択されると、一致するアトリビュート「GET」520を、アトリビュート「GET」520のネームを受信する入力フィールド545と一緒に、トークン化セクション515に追加する。同様の処理を各選択されたアトリビュートに対して繰り返し、各選択はアトリビュートトークン化セクション515に新しい列を作成する。各新しい列は、選択されたアトリビュートおよびアトリビュートネームを受信する入力フィールドを含む。選択された行235にマッチする行を検索確認表示エリア570に表示して、アトリビュートの抽出が分析中のログファイルに含まれる類似した行に作用することを視覚的に確認する。別の実施形態において、選択された行235は構造化されたデータを含むことができ、この場合において、トークン化ユーザーインターフェイス500は自動的にアトリビュートを選択し、トークン化を実行する。
【0023】
1つの実施形態において、トークン化ユーザーインターフェイス500のユーザビリティを改善するために、各選択されたアトリビュートを、一意的な視覚的識別子にコード化する。例示的な視覚的識別子は、フォントの色、テキストの上にあるハイライトされた色、または各選択されたアトリビュートを別のひとつと視覚的に区別するインジケーターの他の種類を含む。一意的な視覚的識別子を、選択された行235の別個のアトリビュート、アトリビュートネーム、入力フィールド、および検索確認エリア570に含まれるマッチする行のアトリビュートの上に配置することができる。あらかじめ考えたルール定義およびアトリビュートトークン化処理を、ルールセットに含まれる各ルールに繰り返すことができる。例えば、処理は、リクエストのライフサイクルの各ステップに繰り返されて、「コントロール」、「パラメーター」および「レスポンス」のルールを含むことがきる。
【0024】
1つの実施形態において、あらかじめ考えたアトリビュートトークン化処理を、「この履歴に実行」選択ボックス575の選択指示を受信するとすぐに反応して、履歴のログデータに適用することができる。監視サーバー140は、終了ボタン580の選択指示を受信するとすぐに反応して、トークン化ユーザーインターフェイス500を閉じることができる。
【0025】
トークン化された行をログクエリーインターフェイスが使用して、選択されたアトリビュートに基づいてログデータ上のクエリーを実行することができる。しかしながら、いくつかの状況において、データを複数の行に広げることができる。例えば、ログクエリーを実行して、IP(インターネットプロトコル)アドレスを含む電子メールアドレスを横切ることによって複数の国からログインしている誰かを探すことは、複数の行からのデータを使用する。そのような状況において、ロギングシステムが特定のイベントを識別するために複数の行からメッセージを相互に関係させる性能は大いに有益である。ルール集成ユーザーインターフェイス600は、複数のログルールをスタンドアローンのイベントと相互に関係させるインターフェイスを提供する。1つの実施形態において、監視サーバー140は、指定された一連のルールが発生するとストリーミングデータイベントを合わせてリンクし、新しいイベントを生成するジャバスクリプトプログラムを構築する。例えば、監視サーバー140を、リクエストのライフサイクル例えばルート、コントローラー、パラメーターおよびレスポンスなどに対してルールを相互に関係させ、各ルールにより生成されたデータを、新しいイベントに結合するために構成することができる。
【0026】
図6は、一実施形態にかかるイベント集成ユーザーインターフェイス600を例示するブロック図である。図6に示す実施形態において、集成ユーザーインターフェイス600によりユーザーは、あらかじめ定義されたルールのリストから選択し、選択したルールを合わせてリンクして集成イベントを形成することができるようになる。図5において説明したように、あらかじめ定義されたルールを、コンテンツまたはログ行のあらゆるアトリビュートを使用して定義することができる。したがって、集成ユーザーインターフェイス600は、1つまたは複数のログファイルを、1つまたは複数のログ行に含まれるコンテンツの項目且つ/又はアトリビュートの種々の組み合わせにより合わせてリンクされるルールの一意的な組み合わせを作成することによって、広く検索することができるようにする。
【0027】
図6に示す実施形態において、ルール集成ユーザーインターフェイス600は、「ストリーム」、「プログラム名」、「ルール」、「集成イベント」および「出力」とラベル表示された複数の列を含む。ストリーム605の列は評価中のログファイルに関連付けられたアプリケーションを指定するフィールド630を含む。一例として、ストリーム605の列はアプリケーションサーバー110上のアクセス制御アプリケーション演算の認証サービスを指定するフィールド630を含む。プログラム名610の列はアプリケーションフォーマットを指定するフィールド635を含む。一例として、アプリケーションフォーマットは、ルビーオンレイルズまたは本明細書において呼ばれるRailsであるとすることができる。ルール615の列は、1つまたは複数のルールをリストにする1つまたは複数のフィールド645を含む。1つまたは複数のフィールド645は、ルールユーザーインターフェイス300において指定されるルールに一致するルールを指定する。例えば、図6に示すように、ルール615の列における1つまたは複数のフィールドは、ルートルールを指定する第1フィールド650、コントローラールールを指定する第2フィールド665、パラメータールールを指定する第3フィールド670、およびレスポンスルールを指定する第4フィールド675を含む。
【0028】
各ルールフィールドを、ルール615の列において指定されるルールフィールドのリストから選択し、集成イベント620の列の位置にドラッグして、集成ルールを作成することができる。例えば、図6に示すように、ルール615の列からルートルールフィールド650を選択して、集成イベント620の列に移動することができる。処理を、コントローラールールフィールド665、パラメータールールフィールド670およびレスポンスルールフィールド675を集成イベントの列620に移動することによって、レスポンスのライフサイクルに関連付けられた残りのルールに対して繰り返す。いったん集成イベント620の列に移動されると、リンクインジケーター685が移動されたルールフィールドの下に現れて、移動されたルールフィールドを、移動されたルールフィールドのすぐ下にある別の移動されたルールフィールドにリンクさせることが可能になる。図6に示す例において、集成イベント620の列においてリストにされたルールフィールドの集成により、監視サーバー140に、ルート、コントローラー、パラメーターおよびレスポンスルールを合わせて相互に関係させて、スタンドアローンのイベントを作成させる。別の方法だと、監視サーバー140が、ルートルールに続いて、コントローラールール、パラメータールールおよびレスポンスルールを確認すると、監視サーバー140はルールによって生成されたすべてのデータをスタンドアローンのイベントに結合する。1つの実施形態において、集成イベント620の列においてリストにされたルールフィールドの集成により、クライアントデバイス140に、選択されたルールを合わせて相互に関係させて、スタンドアローンのイベントを作成させる。他の実施形態において、クライアントデバイス130および監視サーバー140は、選択されたルールを集成してスタンドアローンのイベントを作成するために連携して動作することができる。
【0029】
1つの実施形態において、ステップ間のリンクを、それぞれのルールに関連付けられたリンクインジケーター685の選択指示を受信するとすぐに反応して、さらに修正することができる。リンクインジケーター685の選択はアトリビュートフィールド680A、条件フィールド680Bおよび結果フィールド680Cを生成する。アトリビュートフィールド680Aは、アトリビュートフィールド680Aの選択指示を受信するとすぐに反応して、それぞれのルールに対するアトリビュートのドロップダウン選択リストを提示することができる。ドロップダウンリストに含まれるアトリビュートは、図5に関して上述したようなトークン化処理の間に指定されるアトリビュートに一致する。条件フィールド680Bは、アトリビュートフィールド680Aにおいて選択されたアトリビュートに関連付けられた条件のドロップダウン選択リストを提示する。例えば、「url」アトリビュートがアトリビュートフィールド680Aにおいてルートルールに対して選択されると、条件フィールド680Bのドロップダウンリストに含まれる条件は、「等しい」、「等しくない」、「含む」、「含まない」、「設定されている」、「設定されてない」および「アトリビュートである」を含む。結果フィールド680Cは、アトリビュートフィールド680Aおよび条件フィールド680Bに類似した方法によってドロップダウン選択リストを含むことができる。結果フィールド680Cに含まれる結果は、アトリビュートフィールド680Aおよび条件フィールド680Bにおいて作成された選択に依存する。例えば、「url」アトリビュートがルートルール用のアトリビュートフィールド680Aにおいて選択され「含む」が条件フィールド680Bの条件に対して選択されると、結果「ログイン」を結果フィールド680Cに対して選択することができる。
【0030】
集成ルールの生成に関連付けられた結果イベントに、出力625の列におけるネームイベントフィールド655に集成イベントを詳述する情報を受信することによって、名前を付けることができる。集成ルールの配置を、保存ボタン690の選択を受信するとすぐに反応して、集成イベントユーザーインターフェイス600経由により保存することができる。
【0031】
図7Aは、一実施形態にかかる集成イベントを指定する方法の一部を詳述するフローチャートを例示する。1つの実施形態において、監視サーバー140は分析中の1つまたは複数のログファイルの選択を受信する(ステップ702)。選択されたログファイルを、同一のまたは異なるコンピューティングデバイス上で動作している単一のアプリケーションまたは複数のアプリケーションに関連付けることができる。1つの実施形態において、監視サーバー140は、アプリケーションサーバー110上で動作しているエージェント120を使用して、サーバー110から選択されたログファイルを呼び出す。別の実施形態において、監視サーバー140は、ネットワーク150経由によりアプリケーション115とコミュニケーションをとることによって、選択されたログファイルを呼び出す。
【0032】
監視サーバー140は、分析中の選択されたログファイルに対してルールセットユーザーインターフェイス200を生成する。ルールセットユーザーインターフェイス200は、ログファイルに含まれる行を構文解析するために、1つまたは複数のルールを含む新しいルールセットを追加するための入力フィールドと一緒に、分析中のログファイルを詳述する情報に対する指示を含む。分析の間に、ルールセットユーザーインターフェイス200は、新しいルールセットを追加する選択指示と一緒に、新しいルールセットを追加する入力フィールドに新しいルールセット(例えば、ネーム)を詳述する情報を受信する。指示は、入力フィールドに隣接するプラスボタンを選択する指示を含むことができる。新しいルールセットを追加する選択指示を受信するとすぐに反応して、新しいルールセットを詳述する情報を、ルールセットユーザーインターフェイスのルールセット選択リストに追加する。
【0033】
監視サーバー140は、クライアントデバイス130に表示するために、ルールセットユーザーインターフェイス200の行表示セクションにおいて分析中のログファイルから複数の行を提示する(ステップ704)。1つの実施形態において、複数の行は、分析中の1つまたは複数のログファイルからの一部の行に一致する。一部の行は、1つまたは複数のアプリケーション115からのストリーム(すなわち、現在実行中)に一致することもでき、または既に実行されたアプリケーションのログからの行に一致することもできる。
【0034】
1つの実施形態において、行表示セクションからの行の選択指示を受信する(ステップ706)。例示的な選択指示は、行の一部をクリックすること、キーボードからの入力経由により行を選択すること、またはルール定義ユーザーインターフェイス200とコミュニケーションをとるために入力デバイスを使用する他の選択方法を含む。
【0035】
行の選択を受信するとすぐに反応して、監視サーバー140は、選択された行235に関連付けられたルールを詳述する情報を受信する(ステップ708)ためにダイアログボックス300を生成する。例示的な情報は、選択された行235に一致するログイベントの型を詳述する情報、または選択された行235を識別する他の情報を含む。1つの実施形態において、監視サーバー140は、ユーザーに、選択された行235の行にマッチするアトリビュートを含む、分析中のログファイルから追加された行を検索することを可能にする検索ユーザーインターフェイス400を生成する。検索ユーザーインターフェイス400は、選択された行235における、さらに分析中のログファイルに含まれる他の行に含まれる可能性があるアトリビュートについての情報を受信する検索フィールドを含む。監視サーバー140は、検索ユーザーインターフェイス400経由により検索フィールドにおける情報(例えば、標準的な表現)を受信し、受信された情報を使用する分析に従ってログファイルをフィルタリングしてマッチするまたは類似する行を識別する。類似するまたはマッチすると決定された行を、検索ユーザーインターフェイス400内の検索確認表示エリアに表示する。
【0036】
監視サーバー140は、クライアントデバイス130のディスプレイに、選択された行235をトークン化するトークン化ユーザーインターフェイス500を提供する。監視サーバー140は、トークン化ユーザーインターフェイス500の選択フィールドに表示するために提示された、選択された行235の1つまたは複数のアトリビュートについての選択指示を受信する(ステップ710)。選択された行の各アトリビュートの選択にすぐに反応して、監視サーバー140は、トークン化ユーザーインターフェイス500に、アトリビュートトークン化セクションの選択されたアトリビュートに名前を付けるための入力フィールドと一緒に、選択されたアトリビュートを表示する(ステップ712)。監視サーバー140は、検索確認表示エリア420において、表示された選択された行にログをマッチさせる分析に従ってログファイルからの行を表示して、アトリビュートの抽出が類似した行430に作用することを視覚的に確認する。
【0037】
1つの実施形態において、選択された行235の各アトリビュートの選択にすぐに反応して、監視サーバー140は、視覚的識別子に、選択フィールドに表示された各選択されたアトリビュートを適用する。さらに監視サーバー140は、視覚的識別子に、トークン化セクションの入力フィールドに隣接するアトリビュートネームを適用して、検索確認エリアに表示される行の一致するアトリビュートを適用する。
【0038】
監視サーバー140は、トークン化ユーザーインターフェイス500のトークン化セクションにおいてリストにされた1つまたは複数のアトリビュートに関連付けられた、入力フィールドのアトリビュートネームを受信する(ステップ714)。1つの実施形態において、監視サーバー140は、選択された行が構造化されたデータに関連付けられて自動的にアトリビュートを選択することを決定し、トークン化を実行し、トークン化ユーザーインターフェイス500にトークン化された結果を決定する。
【0039】
ルールセットに含めるために追加されるルールを、ルールセットが完了するまで、ステップ706〜714を繰り返すことによって定義することができる(ステップ715)。さらにこのことは、分析中の1つまたは複数のログファイルに属する複数の行に渡って発生するイベントを識別するために集成することができる複数のルールを生成する。図7Bは、一実施形態にかかる集成イベントを指定する図7Aの方法の残り部分を詳述するフローチャートを例示する。監視サーバー140は、イベント集成ユーザーインターフェイス600に含まれるルールのリストから、少なくとも2つのルール、第1ルールおよび第2ルールの選択指示を受信する(ステップ716)。第1ルールの選択にすぐに反応して、監視サーバー140は、ルールリンクインジケーターと一緒に第1ルールの名前を表示するフィールドを、イベント集成ユーザーインターフェイス600の集成イベントの列に動かす。同様に、第2ルールの選択にすぐに反応して、監視サーバー140は、ルールリンクインジケーターと一緒に第2ルールの名前を表示するフィールドを、集成イベントの列の第1ルールに一致するフィールドの下に動かす。いくつかの実施形態において、第1ルールのリンクインジケーターの選択指示を受信して、アトリビュートフィールド、条件フィールド、および第1ルールのネーム入力フィールドの下に表示する結果フィールドの生成を引き起こす。1つまたは複数のアトリビュートフィールド、条件フィールドおよび結果フィールドは、選択オプションのドロップダウンリストを表示して、図6に関して上述したように、どのように第1ルールを第2ルールにリンクさせることができるかをさらに指定することができる。
【0040】
監視サーバー140は、選択された条件に従って第1ルールを第2ルールにリンクさせて(ステップ718)、集成ルールを作成する(ステップ720)。集成ルールを使って、監視サーバー140を、分析中の1つまたは複数のログファイルについてのクエリーを実行するために使用することができる(ステップ722)。ステップ706〜714に従って定義されたルール(すなわち、既に定義されたルール)を、初めに定義されたどれかのルールから、異なるログファイルに適用することができる。既に定義されたルールを、別個にまたは図7Bに従って指定される集成ルールのように適用することができる。
【0041】
本開示の実施形態についての上述の説明は例示の目的に対して提示されていて、すなわち網羅的であること又は本開示を開示されたとおりの形態に限定することを意図しない。当業者は上記の開示に照らして多くの変更および変形が可能であることを認識することができる。
【0042】
本説明のいくつかの部分は情報の動作のアルゴリズムおよび記号表現の観点から開示の実施形態を説明する。アルゴリズム的記述および表現はデータ処理技術の当業者によって研究の要旨を他の当業者に効果的に伝えるために一般的に使用される。動作は機能的に、計算的に又は論理的に説明されるが、コンピュータープログラム若しくは等価の電気回路、マイクロコード又は同類のものによって実装されることが理解される。加えて、一般性を失わずに、動作の配置をモジュールということが時折さらに便利なことがわかっている。説明された動作および関連したモジュールを、ソフトウェア、ファームウェア、ハードウェア又はそれらのあらゆる組み合わせにおいて具現することができる。
【0043】
本明細書において説明されるステップ、動作又はプロセスはどれでも、1つ又は複数のハードウェア若しくはソフトウェアモジュールによって単独で又は他のデバイスとの組み合わせにおいて実行又は実装することができる。一実施形態においてソフトウェアモジュールは、コンピュータープログラムコードを有するコンピューター読み取り可能な記録媒体を含むコンピュータープログラム製品に実装され、説明されたステップ、動作若しくはプロセスのいずれか又はすべてを実行するコンピュータープロセッサによって実行することができる。
【0044】
さらに、本開示の実施形態は本明細書の動作を実行する装置に関係することができる。装置は必要な目的のために特別に構築することができ且つ/又はコンピューターに格納されたコンピュータープログラムによって選択的に起動される又は再構成される汎用コンピューティングデバイスを含むことができる。このようなコンピュータープログラムは有形のコンピューター読み取り可能なストレージ媒体又は電子命令を格納するのに適したあらゆる種類の媒体に格納され、コンピュータシステムバスに結合することができる。加えて、本明細書において言及されるあらゆるコンピューティングシステムは単一のプロセッサーを含むことができ、又は計算能力を高めるようマルチプロセッサーの設計を用いる構成であるものとすることができる。
【0045】
さらに、本開示の実施形態は搬送波において具現されるコンピューターデータ信号に関係することができ、ここで、コンピューターデータ信号はコンピュータープログラム製品又は本明細書において説明される他のデータの組み合わせについてのあらゆる実施形態を含む。コンピューターデータ信号は有形の媒体又は搬送波において提示されおよび変更されあるいはまた搬送波に符号化されて、実在し、あらゆる適した伝送方法に従って送信される。
【0046】
最後に、本明細書において使用される言語は主として読みやすさ又は教授の目的に対して選択されていて、発明の主題を叙述および制限するために選択されない。故に、本開示の範囲は詳細な説明によるのではなく、本明細書に基づく適用に関するあらゆる特許請求の範囲によって制限されることを意図する。従って、本開示の実施形態の開示は発明の範囲を例証することを意図し発明の範囲を制限しない。
図1
図2
図3
図4
図5
図6
図7A
図7B