gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

最近めっきりOrc使い webalizer編

Orcちがうawkだってばさって突っ込みを希望しつつざらりと。
…うん久しぶりに感覚戻ってきたってかやぱし便利だわ編。


元ネタ。
apacheSSLなログをwebalizerで解析したいなぁとか思ったのですが。
あっさりさらりんと

No valid records found!

といって怒られてしまいます。
今までのログを捨てつつ「ちゃんと処理をする」のなら、readmeに書いてあるとおり。httpd.conf(の中にあるssl設定ファイル。最近は extra/httpd-ssl.conf とかで外に切り出す事も多いですねぇ)のLogの設定を

LogFormat "%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-agent}i\""

とすべきなのでしょうが。


「ンなこというたかてすでに運用してるんぢゃい」
という方。
えとですねぇ一言で片付けると「ンじゃフォーマットかえちまえばいいぢゃん」となるわけです。
パンがなければケーキです本当はブリオッシュです。
ってな用途用のawk
元が

"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

というデフォルトの状態の時を想定しています。

gawk '
{
  #print $0;
  # IP
  print $3 " - - " $1 " " $2 " " $6 " " $7 " " $8 " 200 " $9 " ";

}

はいシンプルw
ログファイルを適当にcatしてこの子に食わせて上げてください。
とりあえず「webalizerがギリギリわがままを言わない」程度になんとかなります(「refererとかuser-agentとか足りねぇよ」的エラーメッセージはドン無視こいてください)。


追記
…素直にSSLログ食わせるやり方ないもんすかねぇ?


追記
本当はmergelogで整理したかったのですが。

abort due to a problem with ログファイル名:

とかって怒られてしまいました orz
どうしたものやら。


追記
webalizerで失敗したときは、とりあえず
webalizer.hist
webalizer.current
の2ファイルと、あとは
OutputDir
で設定されているディレクトリを一式でりると再チャレンジできます。


追記
で、結局こんなスクリプトをcronに渡してます。

cat SSLのログ | /どこか/ssl_log_format.awk | /どこよ?/webalizer -c /そこか!!/webalizer.conf


いぢょ。
ただのmemoぢゃんとか言うなw