HTTPD アクセスログの日本語化
Nginx, Apache ヱブサーバーのアクセスログを見ると、日本語URLはエンコードされていて読めない。
そこで、デコードして表示させる。
ログのファイル名が ssl_access.log だとすると、
tail -f ssl_access.log| perl -ne 'use URI::Escape; print uri_unescape($_);' tail -f access.log | php -R 'echo urldecode($argn)."\n";'
で、日本語URlが読める状態で出力される。
ロボットからのアクセスを除外して表示するには、次のようにする。
tail -f access.log | egrep -v 'Google|bot|Spider' | php -R 'echo urldecode($argn)."\n";' tail -f access.log | egrep -v 'Google|bot|Spider' | perl -ne 'use URI::Escape; print uri_unescape($_);'
Logwatch も日本語化
Logwatch でNginxのログも解析対象にする。
Logwatch の出力結果をデコードして見やすくするには、
cronfile に、
9 0 * * * /usr/sbin/logwatch | perl -ne 'use URI::Escape; print uri_unescape($_);'
と記述し、
crontab cronfile
とやると、夜中の0時9分にLogwatch のレポートメールがroot 宛に届く。
うまくいったら、 /etc/cron.daily/0logwatch
は削除可能。