Squidのログ出力をapacheに似せてフォーマットする。
squidの標準出力形式は特に時間表記が分かりにくく、また、apacheの方がサポートツールが豊富にあると考えられるため、とりあえず、squidの出力形式をapacheに似せるようにした。
少し古い記事だが、この記事のソースコードをコピペしてsquidのログ出力を見たところ、
この記事の言うapacheの出力形式と一致した。
一か所だけ異なる点がある。それは出力の5番目の部分で、例えば、アクセスされたファイルに関する情報の表示の部分の手前の部分が、squidのログ出力だと"CONNECT"になっているのに対して、apacheのログ出力だと"GET"になっている点である。また、この部分にリクエストURLが含まれているが、先頭にhttps://等が表示されていない。
上記のような相違点を抱えるもののとりあえず得られたログ出力access.log をapacheのログ解析を行うpythonモジュールapache_log_parser使ってデータをきれいな形にできるか試してみた。その結果、何とこのままでうまくいってしまった!
以上のことから、squidのアクセスログ出力からapache_log_parserを用いていとも簡単にデータを整えることができることが分かった。
今後は、得られたデータから「誰が(ipアドレス)」「何を(リクエストURL)」「いつ(時刻)」「どのくらいの時間(滞在時間の計算手法に基づく)」アクセスしたかに関する情報を取得する方向で実装を進めていきます。それが終ったら、リアルタイム解析を目指して解析プログラムを定期的に動かすように設定しようと考えています。
0コメント