(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-25
(45)【発行日】2023-11-02
(54)【発明の名称】ログ監査方法、装置、電子機器、媒体およびコンピュータプログラム
(51)【国際特許分類】
G06F 11/07 20060101AFI20231026BHJP
G06F 16/332 20190101ALI20231026BHJP
G06F 16/338 20190101ALI20231026BHJP
G06F 11/34 20060101ALI20231026BHJP
【FI】
G06F11/07 190
G06F16/332
G06F16/338
G06F11/34 176
(21)【出願番号】P 2022096421
(22)【出願日】2022-06-15
【審査請求日】2022-06-15
(31)【優先権主張番号】202110712632.0
(32)【優先日】2021-06-25
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】521208273
【氏名又は名称】阿波▲羅▼智▲聯▼(北京)科技有限公司
【氏名又は名称原語表記】APOLLO INTELLIGENT CONNECTIVITY(BEIJING)TECHNOLOGY CO.,LTD.
【住所又は居所原語表記】101, 1st Floor, Building 1, Yard 7, Ruihe West 2nd Road, Beijing Economic and Technological Development Zone, Beijing 100176, China
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】王 夏 麗
【審査官】武田 広太郎
(56)【参考文献】
【文献】再公表特許第2016/125837(JP,A1)
【文献】中国特許出願公開第109284251(CN,A)
【文献】特開2016-004297(JP,A)
【文献】特開2009-110102(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/07
G06F 16/332
G06F 16/338
G06F 11/34
(57)【特許請求の範囲】
【請求項1】
収集されたログファイルを
分散配信購読型メッセージキューに送信して、前記ログファイルを前記
分散配信購読型メッセージキューに配列することと、
分散配信購読型メッセージキューにおけるログファイルを直接的に第1のデータベースに記憶し、かつ
分散配信購読型メッセージキューにおけるログファイルの複数のフィールドを抽出し、抽出された前記複数のフィールドに基づいて、ログファイルを第2のデータベースに記憶するととも
に検索エンジンに送信することと、
分散処理エンジンによって第2のデータベースに記憶されたログファイルの各フィールドを統計して、異常なログフィールド情報を特定することと、を含む
ログ監査方法。
【請求項2】
クライアントおよび/または仮想マシンに収集ノードを配置することと、
前記収集ノードを利用してログファイルを収集することと、をさらに含む
請求項1に記載の方法。
【請求項3】
前記収集されたログファイルを
分散配信購読型メッセージキューに送信して、前記ログファイルを前記
分散配信購読型メッセージキューに配列することは、
ログファイルが
分散配信購読型メッセージキューに到達する時間に基づいて、前記ログファイルを前記
分散配信購読型メッセージキューに配列することを含む
請求項1に記載の方法。
【請求項4】
前記第1のデータベースは、
分散型かつカラム指向型の構造化データベースを含む
請求項1に記載の方法。
【請求項5】
前記
分散配信購読型メッセージキューにおけるログファイルの複数のフィールドを抽出することは、
ログファイルにおけるネットワークアドレスフィールド、ホスト名フィールドのうちの少なくとも一つを抽出することと、
抽出されたネットワークアドレスフィールド、ホスト名フィールドのうちの少なくとも一つに基づいて、ログファイルを第2のデータベースに記憶するとともに
検索エンジンに送信して、
検索エンジンによって第2のデータベースにおける各フィールドを検索することと、を含む
請求項1に記載の方法。
【請求項6】
前記分散処理エンジンによって第2のデータベースに記憶されたログファイルの各フィールドを統計することは、
ログファイルの統計データを生成することと、
前記統計データを遠隔辞書サーバに送信することと、を含む
請求項1に記載の方法。
【請求項7】
分散処理エンジンによって第2のデータベースに記憶されたログファイルの各フィールドを統計して、異常なログフィールド情報を特定することは、
第2のデータベースに記憶されたログファイルの各フィールドを関連付けることと、
関連付けたフィールドが所定のルールを満たしているか否かを判定することと、
所定のルールを満たしていない関連付けたフィールドを異常なログフィールド情報と特定することと、を含む
請求項1に記載の方法。
【請求項8】
異常なログフィールド情報に対して表示および警報を行うことをさらに含む
請求項7に記載の方法。
【請求項9】
収集されたログファイルを
分散配信購読型メッセージキューに送信して、前記ログファイルを前記
分散配信購読型メッセージキューに配列する送信モジュールと、
分散配信購読型メッセージキューにおけるログファイルを直接的に第1のデータベースに記憶し、かつ
分散配信購読型メッセージキューにおけるログファイルの複数のフィールドを抽出し、抽出された前記複数のフィールドに基づいて、ログファイルを第2のデータベースに記憶するとともに
検索エンジンに送信する記憶モジュールと、
第2のデータベースに記憶されたログファイルの各フィールドを統計して、異常なログフィールド情報を特定する分散処理エンジンと、を含む
ログ監査装置。
【請求項10】
少なくとも一つのプロセッサと、
前記少なくとも一つのプロセッサと通信接続されたメモリとを、含み、
前記メモリには、前記少なくとも一つのプロセッサに実行される命令が記憶されており、前記命令が前記少なくとも一つのプロセッサに実行されることで、前記少なくとも一つのプロセッサは請求項1~8のいずれか一項に記載の方法を実行可能となる
電子機器。
【請求項11】
コンピュータに請求項1~8のいずれか一項に記載の方法を実行させるためのコンピュータ命令を記憶した非一時的なコンピュータ読み取り可能な記憶媒体。
【請求項12】
プロセッサに実行される時に請求項1~8のいずれか一項に記載の方法を実現するコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピュータ技術分野に関し、特に人工知能技術およびセキュリティ技術分野に関し、具体的にログ監査方法、装置、電子機器、媒体およびコンピュータプログラムに関する。
【背景技術】
【0002】
ログは、コンピュータ情報セキュリティ分野において、疑いの余地のない重要性をもっている。コンピュータ技術の発展に伴い、現在のログ量がますます多くなり、大量データをリアルタイムに分析することがチャレンジとなる。また、各種類のアプリケーションが生成したログフォーマットは異なり、問題を遡る場合、それぞれ十数個のアプリケーションにおいて数十個の異なるフォーマットのログファイルを開く可能性があり、効率が非常に低い。したがって、各種類のログ間の関連性をマイニングしてログを総合的に監査することは、ログ監査技術の開発において重点となる。
【発明の概要】
【発明が解決しようとする課題】
【0003】
本開示は、ログ監査方法、装置、電子機器、媒体およびコンピュータプログラムを提供する。
【課題を解決するための手段】
【0004】
本開示の一態様によれば、収集されたログファイルをカフカメッセージキューに送信して、前記ログファイルを前記カフカメッセージキューに配列することと、カフカメッセージキューにおけるログファイルを直接的に第1のデータベースに記憶し、かつカフカメッセージキューにおけるログファイルの複数のフィールドを抽出し、抽出された前記複数のフィールドに基づいて、ログファイルを第2のデータベースに記憶するとともに弾性検索エンジンに送信することと、分散処理エンジンによって第2のデータベースに記憶されたログファイルの各フィールドを統計して、異常なログフィールド情報を特定することと、を含むログ監査方法を提供する。
【0005】
本開示の別の態様によれば、収集されたログファイルをカフカメッセージキューに送信して、前記ログファイルを前記カフカメッセージキューに配列する送信モジュールと、カフカメッセージキューにおけるログファイルを直接的に第1のデータベースに記憶し、かつカフカメッセージキューにおけるログファイルの複数のフィールドを抽出し、抽出された前記複数のフィールドに基づいて、ログファイルを第2のデータベースに記憶するとともに弾性検索エンジンに送信する記憶モジュールと、分散処理エンジンによって第2のデータベースに記憶されたログファイルの各フィールドを統計して、異常なログフィールド情報を特定する統計モジュールと、を含むログ監査装置を提供する。
【0006】
本開示の別の態様によれば、少なくとも一つのプロセッサと、前記少なくとも一つのプロセッサと通信接続されたメモリとを、含み、前記メモリには、前記少なくとも一つのプロセッサに実行される命令が記憶されており、前記命令が前記少なくとも一つのプロセッサに実行されることで、前記少なくとも一つのプロセッサは本開示の一態様に係る方法を実行可能となる、電子機器を提供する。
【0007】
本開示の別の態様によれば、コンピュータに本開示の一態様に係る方法を実行させるためのコンピュータ命令を記憶した非一時的なコンピュータ読み取り可能な記憶媒体を提供する。
【0008】
本開示の別の態様によれば、プロセッサに実行される時に本開示の一態様に係る方法を実現するコンピュータプログラムを提供する。
【0009】
本部分に記述される内容は、本開示の実施例の肝心または重要な特徴を標識するためのものではなく、本開示の範囲を制限するためのものでもないことを理解すべきである。本開示の他の特徴は、以下の明細書を通して、容易に理解されるようになる。
【0010】
図面は、本方案をよりよく理解するためのものであり、本開示を限定するものではない。
【図面の簡単な説明】
【0011】
【
図1】本開示の実施例に係るログ監査方法のフローチャートである。
【
図2】本開示の他の実施例に係るログ監査方法のフローチャートである。
【
図3】本開示の実施例に係るログファイルのプロセス概略図である。
【
図4】本開示の実施例に係るログ監査装置の概略図である。
【
図5】本開示の実施例を実施できる例示的な電子機器のブロック図を示す概略図である。
【発明を実施するための形態】
【0012】
以下、図面を参照しながら、本開示の例示的な実施例について説明し、容易に理解するために、その中には本開示の実施例の様々な詳細を含んでおり、それらは単なる例示するものと見なされるべきである。したがって、当業者は、ここで記述される実施例に対して様々な変更や修正を行ってもよく、本開示の範囲および精神から逸脱することにならないと理解すべきである。同様に、明確および簡潔するために、以下の記述では、周知の機能および構成の記述を省略する。
【0013】
図1は、本開示の実施例に係るログ監査方法100のフローチャートである。
ステップS110において、収集されたログファイルをカフカメッセージキューに送信して、ログファイルをカフカメッセージキューに配列する。いくつかの実施例において、ログファイルは、様々なデータソース、例えばKubernetes
(登録商標)クラスタ、ホストマシン、容器、アプリケーション、データベースおよびクラウドホストなどに由来することができる。
【0014】
カフカ(Kafka(商標))メッセージキューは、高スループットの分散配信購読型メッセージシステムであり、ウェブサイトでのユーザの全ての動作フローデータ、例えばユーザがアクセスしたコンテンツ、ユーザが検索したコンテンツなどを処理することができる。カフカメッセージキューは、ログおよびログ集合を処理することで、これらのデータのスループットに対する要求を解決する。いくつかの実施例において、各データソースからログファイルを収集し、かつ、所定のルール、例えばログファイルがカフカメッセージキューに到達する時間、名称、タイプなどに基づいて、これらのログファイルをカフカメッセージキューに配列する。
【0015】
ステップS120において、カフカメッセージキューにおけるログファイルを直接的に第1のデータベースに記憶し、かつカフカメッセージキューにおけるログファイルの複数のフィールドを抽出し、抽出された複数のフィールドに基づいて、ログファイルを第2のデータベースに記憶するとともに弾性検索エンジンに送信する。
【0016】
いくつかの実施例において、ソースログファイルへの遡りとログファイルに対する検索、およびログファイルに対する段階的な保護を実現するために、ソースログファイルとフィールドが抽出されたログファイルとをそれぞれ2つのデータベースに記憶する。
【0017】
例えば、カフカメッセージキューにおけるログファイルを直接的に第1のデータベースに記憶し、第1のデータベースによりソースログファイルを記憶することができる。第1のデータベースは、Hbase(商標)データベースを含んでもよく、Hbaseは、分散型かつカラム指向型の構造化データベースである。ソースログファイルを、システムメモリでないHbaseデータベースに記憶することで、システムの再起動時にメモリにおけるログファイルが紛失することを防止することができる。
【0018】
また、ユーザのアクセスレベル、例えば管理者レベル、保守員レベルおよび一般ユーザレベルを設定することができる。管理者レベルは、第1のデータベースにアクセスしてソースログファイルを閲覧する権限を有する。異常ログ情報が発生した場合、管理者レベルを有するユーザは、第1のデータベースに戻り、その中に記憶されたソースログファイルを閲覧して問題を遡ることができる。
【0019】
さらに、ログファイルは、様々なフィールド、例えばログを作成する時間、物理デバイスアドレス、ネットワークipアドレスなどを含む。特定のフィールドを検索し易くするために、カフカメッセージキューにおけるログファイルの複数のフィールドを抽出し、抽出された複数のフィールドに基づいて、ログファイルを第2のデータベースに記憶するとともに弾性検索エンジンに送信することができる。弾性検索エンジン(ElasticSearch(登録商標))は、カフカメッセージキューにおけるログファイルを受信し、単語分割コントローラにより、対応するログファイルについて単語分割を行って、カフカメッセージキューにおけるログファイルの複数のフィールドを抽出し、かつ各フィールドの重みを計算し、計算された重みと抽出されたフィールドとの両方に基づいて、ログファイルにインデックスを確立し、さらに、確立されたインデックスに基づいてログファイルを検索する。
【0020】
保守員レベルを有するユーザは、第2のデータベースにおけるログファイルを閲覧して、各データソースの動作状態を監視することができる。一般ユーザレベルを有するユーザは、自分の機器や使用するアプリケーションなどに関するログファイルのみを閲覧することができる。
【0021】
いくつかの実施例において、さらに、弾性検索エンジンに身元認証モジュールを設置して、データソースの身元を認証することができる。認証に失敗したデータソース、例えば信用できないデータソースまたは登録されていないデータソースに対して、該データソースからのログファイルを第2のデータベースに記憶しない。
【0022】
ステップS130において、分散処理エンジンによって第2のデータベースに記憶されたログファイルの各フィールドを統計して、異常なログフィールド情報を特定する。
【0023】
いくつかの実施例において、分散処理エンジンは、Flink(商標)を含み、データ並列およびパイプライン方式で各フィールドに対する統計を実行する。Flinkは、オープンソース技術スタックであり、バッチ処理、フロー式計算、グラフ計算、対話型照会、機械学習などの機能を提供することができる。例えば、Flinkは、各フィールドに関連する様々なデータ、例えば1分毎に処理されるログファイル量、各物理デバイスからのログ量などを統計することができる。Flinkは、さらにログファイルの各フィールドを関連付けることができ、例えば、同じフィールドを有するログファイルを統合するなどである。
【0024】
さらに、Flinkは、統計された各フィールドに関連するデータを関連付けることもできる。例えばある物理デバイスからの過去一週間の日平均ログ量と該物理デバイスの当日のログ量とを比較し、又は、例えば前の10分間に処理された1分毎の平均ログ量と最近1分間に処理されたログ量とを比較し、さらに関連や比較されたフィールドに基づいて異常なログフィールド情報を特定する。例えば、ある物理デバイスの過去一週間の日平均ログ量が10000である一方、当日のログ量が100だけであれば、該ログフィールド情報に異常が発生したと判定し、さらに該物理デバイスに対して故障を遡ることができる。また、例えば、前の10分間に処理された1分毎の平均ログ量が23000である一方、最近1分間に処理されたログ量が5000だけであれば、異常が発生したと判定し、さらにソースログファイルを遡って、故障が発生する可能性のある物理デバイス、アプリケーションなどをさらにチェックする。
【0025】
また、Flinkは、関連付けられたデータを遠隔辞書サーバRedis(登録商標)に送信して、遠隔辞書サーバRedisにより異常監視を行うことができる。
【0026】
ソースログファイルとフィールドが抽出されたログファイルとをそれぞれ2つのデータベースに記憶することにより、フィールドが抽出されたログファイルの間に関連付けを確立して異常フィールド情報を特定し、そして、第1のデータベースに戻ってソースログファイルにより異常の原因を遡り、これにより、各種類のアプリケーションからの異なるフォーマットのログファイルに対して、速くてリアルタイムなログ監査を行うことができる。
【0027】
図2は、本開示の他の実施例に係るログ監査方法200のフローチャートである。
図2において、ステップS220~S240は、それぞれ方法100におけるステップS110~S130に対応する。また、ステップS220の前にステップS210をさらに含み、クライアントおよび/または仮想マシンに収集ノードを配置し、収集ノードを利用してログファイルを収集する。
【0028】
いくつかの実施例において、各クライアントおよび/または仮想マシンに軽量型ログコレクタFilebeat(登録商標)を配置することができる。Filebeatは、ローカルファイルのログデータコレクタであり、ログディレクトリまたは特定のログファイルを監視し、かつそれらをカフカメッセージキューに送信することができる。Filebeatを介して収集されたログファイルを、サービス、アプリケーション、ホスト、データセンタなどの毎に欄を分けて配列することができる。さらに、Filebeatが収集したログファイルをカフカメッセージキューに送信し、ログファイルがメッセージキューに到達する時間に基づいて、これらのログファイルをカフカメッセージキューに配列する。
【0029】
ステップS240の後に、ステップS250をさらに含み、異常なログフィールド情報に対して表示および警報を行う。
【0030】
例えば、Hbaseに記憶されたソースログファイルを表示することができ、例えばFilebeatにおいてサービス、アプリケーション、ホスト、データセンタなどの毎に欄を分けて配列する方式に基づいて、各ソースログファイルを表示することができる。そして、第2のデータベースに記憶された、フィールドが抽出されたログファイルを、グラフィカル表示、レポート表示、セキュリティイベント警報などの方式で表示して保守監視を行う。
【0031】
いくつかの実施例において、さらに、弾性検索エンジンにより、特定フィールドのログファイルを検索することができる。例えば、ある物理デバイスの毎週月曜日の午前10:00-11:00間のログ量を検索する。
【0032】
本開示の実施例に係る方法を利用して、ログを収集する必要があるクライアント/仮想マシンにFilebeat収集ノードを配置し、かつ、Filebeat収集ノードにより収集されたログファイルをサービス、アプリケーション、ホスト、データセンターなどの毎に欄を分けて配列することにより、カフカメッセージキューに送信するログファイルを前処理することができる。
【0033】
図3は、本開示の実施例に係るログファイルのプロセス概略図である。
図3に示すように、データソース310からログファイル300を収集し、データソース310は、Kubernetesクラスタ、ホストマシン、容器、アプリケーション、データベースおよびクラウドホストなどを含むことができる。例えば、各データソース310に収集ノード320を配置し、収集ノード320が各データソース310のログファイル300を収集し、収集ノード320に規定された所定のフォーマットに従って配列し、例えばサービス、アプリケーション、ホスト、データセンターなどの毎に欄を分けて配列する。
【0034】
収集ノード320は、収集されたログファイル300をカフカメッセージキュー330に送信し、カフカメッセージキュー330は、ログファイルがカフカメッセージキューに到達する時間に基づいて、ログファイルをカフカメッセージキュー330に配列する。
【0035】
カフカメッセージキュー330において、キューにおけるソースログファイル300’を第1のデータベース340に記憶するとともに、フィールドが抽出されたログファイル300’’を第2のデータベース350に記憶する。
【0036】
また、第2のデータベース350に記憶された、フィールドが抽出されたログファイル300’’を弾性検索エンジン360に送信して、弾性検索エンジン360によって、フィールドが抽出されたログファイル300’’から、所定のフィールドを有するログファイルを検索することができる。例えば、ある物理デバイスからのログファイル、特定の日付のログファイル、あるネットワークアドレスからのログファイルなどである。
【0037】
分散処理エンジン370は、第2のデータベース350に記憶されたログファイル300’’の各フィールドを読み取って、各フィールドに対して統計および関連付けを行うことができる。例えば、ある物理デバイスからの過去一週間の日平均ログ量と該物理デバイスの当日のログ量とを比較し、又は、例えば、前の10分間に処理された1分毎の平均ログ量と最近1分間に処理されたログ量とを比較する。そして、統計および関連付けの結果に基づいて、異常なログフィールド情報を特定する。
【0038】
最後に、第1の表示モジュール380は、第1のデータベース340にアクセスして、そのうちのソースログファイル300’を表示することができ、例えば、収集ノード320に規定された所定のフォーマットに従って配列されたログファイルを表示し、例えばソースログファイルをサービス、アプリケーション、ホスト、データセンターなどの毎に欄を分けて配列する。第2の表示モジュール390は、分散処理エンジン370にアクセスして、関連付けられたログファイルを表示することができる。例えば、グラフィカル表示、レポート表示、セキュリティイベント警報などの方式で表示する。第2の表示モジュール390は、さらに弾性検索エンジン360にアクセスして、フィールドが抽出されたログファイル300’’に対して、入力された検索フィールドに基づいて検索することができる。
【0039】
図4は、本開示の実施形態に係るログ監査装置400の概略図である。
図4に示すように、ログ監査装置400は、送信モジュール410、記憶モジュール420および分散処理エンジン430を含む。
【0040】
送信モジュール410は、収集されたログファイルをカフカメッセージキューに送信して、ログファイルをカフカメッセージキューに配列するために用いられる。いくつかの実施例において、ログファイルは、様々なデータソース、例えばKubernetesクラスタ、ホストマシン、容器、アプリケーション、データベースおよびクラウドホストなどに由来することができる。
【0041】
カフカ(Kafka)メッセージキューは、高スループットの分散配信購読型メッセージシステムであり、ウェブサイトでのユーザの全ての動作フローデータ、例えばユーザがアクセスしたコンテンツ、ユーザが検索したコンテンツなどを処理することができる。カフカメッセージキューは、ログおよびログ集合を処理することで、これらのデータのスループットに対する要求を解決する。いくつかの実施例において、各データソースからログファイルを収集し、かつ、所定のルール、例えばログファイルがカフカメッセージキューに到達する時間、名称、タイプなどに基づいて、これらのログファイルをカフカメッセージキューに配列する。
【0042】
記憶モジュール420は、カフカメッセージキューにおけるログファイルを直接的に第1のデータベースに記憶し、かつカフカメッセージキューにおけるログファイルの複数のフィールドを抽出し、抽出された複数のフィールドに基づいて、ログファイルを第2のデータベースに記憶するとともに弾性検索エンジンに送信するために用いられる。
【0043】
いくつかの実施例において、ソースログファイルへの遡りとログファイルに対する検索、およびログファイルに対する段階的な保護を実現するために、ソースログファイルとフィールドが抽出されたログファイルとをそれぞれ2つのデータベースに記憶する。
【0044】
例えば、カフカメッセージキューにおけるログファイルを直接的に第1のデータベースに記憶し、第1のデータベースによりソースログファイルを記憶することができる。第1のデータベースは、Hbaseデータベースを含んでもよく、Hbaseは、分散型かつカラム指向型の構造化データベースである。ソースログファイルを、システムメモリでないHbaseデータベースに記憶することで、システムの再起動時にメモリにおけるログファイルが紛失することを防止することができる。
【0045】
また、ユーザのアクセスレベル、例えば管理者レベル、保守員レベルおよび一般ユーザレベルを設定することができる。管理者レベルは、第1のデータベースにアクセスしてソースログファイルを閲覧する権限を有する。異常ログ情報が発生した場合、管理者レベルを有するユーザは、第1のデータベースに戻り、その中に記憶されたソースログファイルを閲覧して問題を遡ることができる。
【0046】
さらに、ログファイルは、様々なフィールド、例えばログを作成する時間、物理デバイスアドレス、ネットワークipアドレスなどを含む。特定のフィールドを検索し易くするために、カフカメッセージキューにおけるログファイルの複数のフィールドを抽出し、抽出された複数のフィールドに基づいて、ログファイルを第2のデータベースに記憶するとともに弾性検索エンジンに送信することができる。弾性検索エンジン(ElasticSearch)は、カフカメッセージキューにおけるログファイルを受信し、単語分割コントローラにより、対応するログファイルについて単語分割を行って、カフカメッセージキューにおけるログファイルの複数のフィールドを抽出し、かつ各フィールドの重みを計算し、計算された重みと抽出されたフィールドとの両方に基づいて、ログファイルにインデックスを確立し、さらに、確立されたインデックスに基づいてログファイルを検索する。
【0047】
保守員レベルを有するユーザは、第2のデータベースにおけるログファイルを閲覧して、各データソースの動作状態を監視することができる。一般ユーザレベルを有するユーザは、自分の機器や使用するアプリケーションなどに関するログファイルのみを閲覧することができる。
【0048】
いくつかの実施例において、さらに、弾性検索エンジンに身元認証モジュールを設置して、データソースの身元を認証することができる。認証に失敗したデータソース、例えば信用できないデータソースまたは登録されていないデータソースに対して、該データソースからのログファイルを第2のデータベースに記憶しない。
【0049】
分散処理エンジン430は、第2のデータベースに記憶されたログファイルの各フィールドを統計して、異常なログフィールド情報を特定する。
【0050】
いくつかの実施例において、分散処理エンジン430は、Flinkを含み、データ並列およびパイプライン方式で各フィールドに対する統計を実行する。Flinkは、オープンソース技術スタックであり、バッチ処理、フロー式計算、グラフ計算、対話型照会、機械学習などの機能を提供することができる。例えば、Flinkは、各フィールドに関連する様々なデータ、例えば1分毎に処理されるログファイル量、各物理デバイスからのログ量などを統計することができる。Flinkは、さらにログファイルの各フィールドを関連付けることができ、例えば、同じフィールドを有するログファイルを統合するなどである。
【0051】
さらに、Flinkは、統計された各フィールドに関連するデータを関連付けることもできる。例えばある物理デバイスからの過去一週間の日平均ログ量と該物理デバイスの当日のログ量とを比較し、又は、例えば前の10分間に処理された1分毎の平均ログ量と最近1分間に処理されたログ量とを比較し、さらに関連や比較されたフィールドに基づいて異常なログフィールド情報を特定する。例えば、ある物理デバイスの過去一週間の日平均ログ量が10000である一方、当日のログ量が100だけであれば、該ログフィールド情報に異常が発生したと判定し、さらに該物理デバイスに対して故障を遡ることができる。また、例えば、前の10分間に処理された1分毎の平均ログ量が23000である一方、最近1分間に処理されたログ量が5000だけであれば、異常が発生したと判定し、さらにソースログファイルを遡って、故障が発生する可能性のある物理デバイス、アプリケーションなどをさらにチェックする。
【0052】
また、Flinkは、関連付けたデータを遠隔辞書サーバRedisに送信して、遠隔辞書サーバRedisにより異常監視を行うことができる。
【0053】
ソースログファイルとフィールドが抽出されたログファイルとをそれぞれ2つのデータベースに記憶することにより、フィールドが抽出されたログファイルの間に関連付けを確立して異常フィールド情報を特定し、そして、第1のデータベースに戻ってソースログファイルに基づいて異常の原因を遡ることができ、これにより、各種類のアプリケーションからの異なるフォーマットのログファイルに対して、速くてリアルタイムなログ監査を行うことができる。
【0054】
図5は、本開示の実施例を実施できる例示的な電子機器500のブロック図を示す概略図である。電子機器は、様々な形式のデジタルコンピュータを示すことを意図し、例えば、ラップトップ型コンピュータ、デスクトップコンピュータ、作業台、パーソナル・デジタル・アシスタント、サーバ、ブレードサーバ、大型コンピュータおよび他の適宜なコンピュータがある。電子機器は、さらに様々な形式の移動装置を示してもよく、例えば、パーソナルデジタルアシスタント、携帯電話、スマートフォン、ウェアラブル機器および他の類似の計算装置がある。本明細書に示された部材、それらの接続と関係、および、それらの機能は、例示に過ぎず、本明細書に記述されたおよび/または要求された本開示の実現を限定するものではない。
【0055】
図5に示すように、機器500は、リードオンリーメモリ(ROM)502に記憶されたコンピュータプログラム又は記憶手段508からランダムアクセスメモリ(RAM)503にロードされたコンピュータプログラムに基づいて、様々な適宜な動作および処理を実行できる計算手段501を含む。RAM503において、機器500の操作に必要な様々なプログラムおよびデータをさらに記憶してもよい。計算手段501、ROM502およびRAM503は、バス504を介して相互に接続されている。バス504には、さらに、入力/出力(I/O)インタフェース505が接続されている。
【0056】
機器500における複数の部品は、I/Oインタフェース505に接続されており、例えばキーボード、マウスなどの入力手段506と、例えば様々なタイプのディスプレイ、スピーカなどの出力手段507と、例えば磁気ディスク、光ディスクなどの記憶手段508と、例えばネットワークカード、モデム、無線通信トランシーバなどの通信手段509と、を含む。通信手段509は、機器500がインターネットのようなコンピュータネットワークおよび/または様々な電気通信網を介して他の機器と情報/データをやり取りすることを可能にする。
【0057】
計算手段501は、処理および計算能力を有する様々な汎用および/または専用の処理モジュールであってもよい。計算手段501のいくつかの例示としては、中央処理手段(CPU)、画像処理手段(GPU)、様々な専用の人工知能(AI)計算チップ、様々なデバイス学習モデルアルゴリズムを実行する計算手段、デジタルシグナルプロセッサ(DSP)、任意の適宜なプロセッサ、コントローラ、マイクロコントローラなどが挙げられるが、これらに限られない。計算手段501は、上記の各方法および処理、例えば方法100または200を実行する。例えば、いくつかの実施例において、上記方法は、有形のものとしてデバイス読み取り可能な媒体、例えば記憶手段508に含まれるコンピュータソフトウェアプログラムとして実現される。いくつかの実施例において、コンピュータプログラムの一部又は全部は、ROM502および/または通信手段509を介して機器500にロードおよび/またはインストールされる。コンピュータプログラムがRAM503にロードされかつ計算手段501により実行される場合、上記方法の一つ又は複数のステップを実行することができる。代替的に、他の実施例において、計算手段501は、他の任意の適宜な方式(例えばファームウェアによる方式)により方法を実行するように構成されてもよい。
【0058】
本明細書における上記のシステムおよび技術の様々な実施形態は、デジタル電子回路システム、集積回路システム、フィールド・プログラマブル・ゲート・アレイ(FPGA)、専用集積回路(ASIC)、専用標準製品(ASSP)、システム・オン・チップのシステム(SOC)、負荷プログラマブルロジック機器(CPLD)、コンピュータハードウェア、ファームウェア、ソフトウェアおよび/またはそれらの組合せにおいて実現することができる。これらの各種実施形態は、1つ又は複数のコンピュータプログラムで実行されることを含んでもよく、この1つ又は複数のコンピュータプログラムが、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上に実行および/または解釈されてもよく、このプログラマブルプロセッサは専用又は汎用プログラマブルプロセッサであり、記憶システムと、少なくとも1つの入力装置と、少なくとも1つの出力装置とから、データおよび命令を受信し、データおよび命令をこの記憶システムと、この少なくとも1つの入力装置と、この少なくとも1つの出力装置とに転送してもよい。
【0059】
本開示の方法を実施するためのプログラムコードは、一つ又は複数のプログラミング言語の任意の組合せによって書かれてもよい。これらのプログラムコードは、汎用コンピュータ、専用コンピュータ又は他のプログラマブルデータ処理装置のプロセッサ又はコントローラに提供され、プログラムコードがプロセッサ又はコントローラにより実行される時にフローチャートおよび/またはブロック図に規定された機能・操作が実施されるようにしてもよい。プログラムコードは、完全にデバイスに実行されてもよく、部分的にデバイスに実行されてもよく、独立ソフトウェアパックとして部分的にデバイスに実行されかつ部分的に遠隔デバイスに実行され、或いは完全に遠隔デバイス又はサーバに実行されてもよい。
【0060】
本開示のコンテキストにおいて、デバイス読み取り可能な媒体は、命令実行システム、装置又は機器に使用される或いは命令実行システム、装置又は機器と組合せて使用されるプログラムを含むか記憶する有形の媒体であってもよい。デバイス読み取り可能な媒体は、デバイス読み取り可能な信号媒体又はデバイス読み取り可能な記憶媒体であってもよい。デバイス読み取り可能な媒体は、電子、磁気的、光学的、電磁気的や赤外のもの、又は半導体システム、装置又は機器、或いは上記内容の任意の適宜な組合せを含むが、これらに限られない。デバイス読み取り可能な記憶媒体のより具体的な例示は、1つ又は複数のラインによる電気接続、携帯コンピュータディスク、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、消去可能なプログラマブルリードオンリーメモリ(EPROM又はフラッシュメモリ)、ファイバ、携帯コンパクトディスクリードオンリーメモリ(CD-ROM)、光学的記憶機器、磁気的記憶機器、又は上記内容の任意の適宜な組合せを含む。
【0061】
ユーザとの対話を提供するために、コンピュータでここで記述したシステムおよび技術を実施してもよく、このコンピュータは、ユーザに情報を表示するための表示装置(例えば、CRT(陰極線管)又はLCD(液晶ディスプレイ)モニタ)と、キーボードおよびポインティング装置(例えば、マウス又はトラックボール)とを有し、ユーザは、このキーボードおよびこのポインティング装置によって、入力をコンピュータに提供することができる。他の種類の装置は、ユーザとの対話を提供するためのものであってもよく、例えば、ユーザに提供するフィードバックは、任意の形式のセンサーフィードバック(例えば、視覚フィードバック、聴覚フィードバック、又は触覚フィードバック)であってもよく、任意の形式(声入力、語音入力、又は触覚入力を含む)でユーザからの入力を受信してもよい。
【0062】
ここで記述されたシステムおよび技術は、バックグラウンド部品を含む計算システム(例えば、データサーバとする)、又はミドルウェア部品を含む計算システム(例えば、アプリケーションサーバ)、又はフロントエンド部品を含む計算システム(例えば、グラフィカル・ユーザ・インターフェース又はネットワークブラウザを有するユーザコンピュータ、ユーザはこのグラフィカル・ユーザ・インターフェース又はこのネットワークブラウザを介してここで説明したシステムおよび技術の実施形態と対話することができる)、又はこのようなバックグラウンド部品、ミドルウェア部品、或いはフロントエンド部品の任意の組合せを含む計算システムで実施されてもよい。任意の形式又は媒体のデジタルデータ通信(例えば、通信ネットワーク)を介してシステムの部品を相互に接続してもよい。通信ネットワークの例示は、ローカルエリアネットワーク(LAN)と、広域ネットワーク(WAN)と、インターネットを含む。
【0063】
コンピュータシステムは、クライアントとサーバとを含んでもよい。クライアントとサーバとは、一般的に互いに離れて、且つ通常に通信ネットワークを介して対話する。相応するコンピュータで実行されるとともに、互いにクライアント-サーバの関係を有するコンピュータプログラムによって、クライアントとサーバとの関係を形成する。サーバは、クラウドサーバであってもよく、クラウドコンピューティングサーバ又はクラウドホストとも呼ばれ、クラウドコンピューティングサービスシステムのうちの一つのホスト製品であり、それにより、従来の物理ホストとVPSサービス(「Virtual Private Server」、又は「VPS」と略称する)に存在する管理難度が大きく、サービス拡張性が弱いという欠陥を解決している。サーバは、分散システムのサーバであってもよく、又はブロックチェーンを結合したサーバであってもよい。
【0064】
以上に示した様々な形式のフローを利用して、ステップを並び替え、追加又は削除することができると理解すべきである。例えば、本開示に記載された各ステップは、並行に実行されてもよいし、順に実行されてもよいし、異なる順序で実行されてもよく、本開示が開示した技術案が所望する結果を実現できる限り、本明細書はここで限定しない。
【0065】
上述した具体的な実施形態は、本開示の保護範囲に対する限定を構成しない。当業者は、設計要求や他の要因に応じて、様々な修正、組合、サブ組合および置換を行うことができると理解すべきである。本開示の趣旨および原則の範囲内になされた任意の修正、等価な置換、改進などは、いずれも本開示の保護範囲内に含まれるべきである。