見出し画像

TWLogAIANのインデックス作成のための設定

TWLogAIANはログファイルを読み込んで全文検索エンジンのインデックスを作成をします。インデックス作成するための設定について説明します。

インデックス作成

の図の赤枠の部分です。

インデックス作成の流れ

ログを読み込んだら行単位で意味のなる情報を抽出してインデックスに登録します。例えば、

114.119.136.254 - - [03/Apr/2022:00:39:21 +0900] "GET /wiki/index.php?title=Must_Know_Mlm_Concepts_For_Accomplishment&action=history HTTP/1.1" 404 1417 "-" "Mozilla/5.0 (Linux; Android 7.0;) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; PetalBot;+https://webmaster.petalsearch.com/site/petalbot)"

のようなApacheのアクセスログの場合、クライアントのIPアドレス、時刻、リクエスト、パスなどの情報があります。この行をまとめて全文検索エンジンに登録することもできますが、各項目を抽出してインデックスの項目(フィールド)として登録したほうが検索する時に役に立ちます。検索が早くなるととか集計しやすいとかです。この例をApache(Combined)のタイプとして処理すると

抽出項目

のような項目を抽出します。この例ではログに書かれている内容から取得したものとクライアントのIPからDNSでホスト名を調べたり、位置情報を調べたりして項目を追加しています。
TWLogAIANはログ分析ツールなので、最低タイムスタンプは抽出します。世の中で使われているログの形式に関しては組み込んであります。カスタム設定で自分で抽出項目を選ぶこともできます。リクエストがあれば組み込みます。

インデックス作成設定

設定画面は

インデックス作成設定

のような感じです。ログの種類にカスタム設定を選択して全ての項目を表示した状態です。
ログを読み込む場所については

に書きました。

タイムゾーン不明はUTC

ログのタイムスタンプにはタイムゾーンが含まれていないものが多いので、タイムゾーンが不明の場合はローカルタイムとして扱うことにしています。
でも、それが嫌な人のためにUTCにする設定をつけておきました。

フィルター

ログを読み込む時に読み込む行を制限するための設定です。正規表現で指定できます。大量のログの中から分析したいログだけ読み出してインデックスを作成するためのものです。対象のログの量を減らしたほうが読み込みや検索の時間を少なくできます。インデックスのサイズも小さくできます。
アクセスログの例では、

POST

と設定すれば、POSTリクエストだけ読み込むことができます。

ログの種類

読み込むログの種類を指定します。情報の抽出方法をTWLogAIANが知っているログの種類は

ログの種類

のような感じです。これから増えるかもしれません。
syslogだけでも古いBSD形式やタイムスタンプにタイムゾーンや秒以下の桁に対応した新しいIETF形式があります。自分で細かく設定したい時は、カスタムを選択します。

ログのサンプル

ログの種類がわからない時に、この欄にサンプルのログをコピペして右端のチェックボタンをクリックすると自動で判別してくれます。

ログの種類を自動判別

のような感じです。判別できないときは「分かりません」と表示されます。あまり役にたたないかもしれません。

ホスト名を調べる

ログの中にあるIPアドレスの項目からDNSでホスト名を調べて項目を追加します。カスタム設定の場合は、”ホスト名解決項目”にホスト名を調べたい項目の変数名を記載します。Apacheのアクセスログなどの組み込みのログタイプの場合は、項目を自動で設定します。

位置情報を調べる

ログの中にあるIPアドレスの項目からGeoIPデータベースで位置情報を調べて項目を追加します。カスタム設定の場合は、”IP位置情報項目”に位置情報を調べたい項目の変数名を記載します。Apacheのアクセスログなどの組み込みのログタイプの場合は、項目を自動で設定します。位置情報のデータベースは、

で説明したファイルです。ダウンロードの方法は変わっているかもしれません。
このファイルを設定の下の方にあるIP位置情報データベースに設定してください。

ベンダー名を調べる

ログの中にあるMACアドレスからベンダー名を調べて項目を追加します。
MACアドレスを調べる項目名を"MACアドレス項目"に指定します。
MACアドレスとベンダー名の関係はTWLogAIANに組み込んであります。

タイムスタンプ項目

タイムスタンプとして使う項目の変数名を指定します。空欄の場合は一番左側にあるタイムスタンプぽい文字列を自動でタイムスタンプとして取得します。

ホスト名解決項目

IPアドレスからホスト名を解決する項目の変数名を指定します。カンマ区切りで複数指定できます。

IP位置情報項目

IPアドレスから位置情報を取得する項目の変数名を指定します。カンマ区切りで複数指定できます。

MACアドレス項目

ベンダー名を調べるMACアドレスの項目の変数名を指定します。カンマ区切りで複数指定できます。

インデックスをメモリ上に作成

全文検索エンジンBlugeのインデックスをメモリ上に作成します。読み込んだログもメモリ上に保存します。プログラムを終了すると消えてしまいます。
大量のログを読み込みと当然メモリ不足になると思います。
チェックしない場合は、インデックスを作業フォルダーに作成します。

IP位置情報データベース

GeoIPのデータベースファイルを指定します。


開発のための諸経費(機材、Appleの開発者、サーバー運用)に利用します。 ソフトウェアのマニュアルをnoteの記事で提供しています。 サポートによりnoteの運営にも貢献できるのでよろしくお願います。