このブログを検索

2011年4月22日金曜日

[Apache]Combined Log Formatの分間アクセス数を整形表示する

Apacheのログ形式がcombinedの場合で、分間アクセス数を整形表示します。
niceはつけてもつけなくても。
なお、この例ではリクエストドメインでの判定もしたいのでHostリクエストヘッダを追加しています。
$ nice -n 19 zcat /usr/local/apache/logs/access_log.Apr.16.gz | egrep 'soft|ez-soft|j-soft|w-soft|mytown' | cut -d' ' -f4 | cut -d: -f1-3 | sed -e "s/^\[//g" | sort | uniq -c
      8 16/Apr/2011:02:05
      7 16/Apr/2011:02:06

sortが必要なのは次の理由から。
高負荷時は、各リクエストの出力順番がズレる可能性があるためです。
・Combined Log Formatの時刻(%t)は、リクエストを受け取った時刻
・ログ出力されるのは、レスポンスを返したタイミング

長期間を調べる時は、10分ごとで。
$ nice -n 19 zcat /usr/local/apache/logs/access_log.Apr.15.gz | tail -5000 | egrep 'soft|ez-soft|j-soft|w-soft|mytown' | cut -d' ' -f4 | cut -d: -f1-3 | sed -e "s/.$//g" | sed -e "s/^\[//g" | sort | uniq -c
   2959 14/Apr/2011:13:2
   1889 14/Apr/2011:13:3

2011年4月3日日曜日

[MySQL]Maatkitを使ってサイズの大きいテーブルを探す

Maatkitで好きなコマンドの1つ、mk-find。
findコマンド互換のオプションなのでわかりやすい。

例えば、サイズが500K以上のテーブルを探す。
$ mk-find --tablesize +500k -hsssdbmra1 -ucheck --ask-pass
実行例は、次の通り。
Enter password: 
`area001i`.`t01_area_item_hist1`
`area001i`.`t01_area_temp_prev1`
`area001i`.`t01_area_user1`
`area001i`.`t01_area_user_item1`
`area001i`.`t01_area_user_stage1`