|
AIデモ
AI(人工知能)のデモとして、Apacheログファイルの分析を行うエキスパートシステムを
公開します。
エキスパートシステム
エキスパートシステム(ES)とは1980年代に台頭してきたAIの一分野で、
医療や機械の故障診断、商品の在庫管理やマーケティングなど
専門家の知識を必要とする幅広い領域に応用されました。
その構築方法は、専門家の知識を文書化し、宣言的知識と
手続的知識にまとめ、エキスパートシステム構築ツールで
記述する、というものです。
知識の表現を身近な例で言うと、料理のレシピが分かりやすいでしょう。
宣言的知識というのは、玉ねぎ50グラム、挽き肉150グラムなどの
対象物の性質や量に関するものです。手続的知識というのは、
みじん切りにした玉ネギを大さじ1の油で透明になるまで良く炒める、
という操作に関するものです。
エキスパートシステム構築ツール
ES構築ツールはこの両方の知識を表現できる機能を持ち、
その核として推論エンジンと呼ばれる機構を備えています。
推論エンジンは膨大な知識の中から適当なものを一つづつ
選び出し、適用し、選択する知識がなくなるまでこれを繰り返します。
推論の方法はいくつかありますが、このデモは if-then 型の
ルールを使った前向き推論 (forward chaining) で書かれています。
これは三段論法のようにある状況から結論に至るまで
次々にルールを適用して行くものです。
逆に、故障診断などで使われるのは、後向き推論 (backward chaining) と
呼ばれ、症状からその原因を遡り絞って行くものです。
多くの場合、たとえば故障診断などはその典型ですが、
ESはユーザと対話型に推論を進めて行きます。
そのために、バッチ処理が主体だった汎用機の経理システムなどに
比べて高度なユーザインタフェースを必要としました。
この新しい方向性が、現在では当たり前になったウィンドウ
システムを発展させる遠因ともなりました。
Apacheログファイル分析ツール - logana -
loganaはApacheログファイルを分析するデモ用エキスパートシステムです。
以下にその説明を記します。
1. 目的
HTTPサーバーに対する攻撃や動作不良を調べるために使用します。
loganaはApacheのログファイルを読んで内容をフィルターにかけて
表示したり、ある時間内に同じ内容のログが多量に
発生しているか調べて報告します。前者は動作不良などの
分析に、後者はDOS攻撃が疑われる場合に有効です。
2. 構成
全体は、次の3つの部分に分かれます。
2.1) 知識ベース
CLIPSで書かれた分析用知識ベース(宣言的知識と手続的知識の集合)です。
CLIPSはNASAが開発し無料で公開しているエキスパートシステム構築ツールです。
このデモシステムは、ファクト(宣言的知識)とルール(手続的知識)を
それぞれ10ほど持っています。
2.2) 前処理
ApacheのログファイルをCLIPSのファクトに変換します。このツールは
PERLで書かれています。loganaを起動する前に、予めこのツールで
ログファイルを変換しておきます。
2.3) UI
ユーザインタフェースはPHPで書かれています。ユーザの入力をCLIPS
のファクトに変換し、CLIPSを起動し、分析結果を表示します。
3. 機能概要
3.1) フィルターモード
ログ内のメッセージを、notice、warn、errorなどの緊急度を判断して
指定されたものを選択または排除して表示します。
3.2) アタックモード
指定の時間内(分単位)に指定の回数同じメッセージが繰り返し現れるか
判断して結果を表示します。
使用方法
1) Apacheログ
始めにApacheのログファイルをCLIPSのファクトに変換します。このデモ
ではすでに変換済みのものが用意してあります。
2) 起動
Webアプリとして作られているので、URLを指定して起動します。
このデモは下記のリンクから使用できます。
3) 操作
3.1) モードの選択
フィルターモードとアタックモード、いずれかをラジオボタンで選択します。
3.2) 日付範囲の指定
対象とするログのタイムスタンプの開始と終了をyyyy/mm/ddの形式で入れます。
このデモで使用するログは2006年2月から3月にかけてのものです。
3.3) 緊急度の指定
対象とするログの緊急度をラジオボタンで選択します。
3.4) 指定モジュールの入力
ログの発生元モジュールを入力します。複数指定する場合は空白で区切ります。
発生元の記録がないログを対象にする場合は no と入力します。
3.5) 除外モジュールの入力
対象から除外するログのモジュールを入力します。同じモジュールが指定と
除外の両方に現れる場合は除外されたものとします。
3.6) 時間と回数の指定
アタックモードの時に有効です。同じメッセージが時間内に何回現れるかを
指定します。1分間に100回というような指定になります。
3.7) 分析
上記の指定が済んだらこのボタンをクリックして分析を行います。結果は
下のスペースに表示されます。
2種類の情報が表示されます。指定を元に作成したCLIPSの起動用プログラムと
分析結果です。条件に合うログがない場合は分析結果の代わりにその旨が
表示されます。
3.8) 終了
このボタンをクリックするとデモを終了します。
3.9) 知識ベース表示
CLIPSで書かれたプログラムを表示します。
CLIPSサイト
CLIPSの公式サイトのURLは次の通りです。
|