気まぐれSE日記

地方でエンジニアしてます

squidのログを分ける

squidでエラーなどでアクセス拒否されたログと通常のアクセスログを分けたい場合、


squid.confにこんな風に書く(※squid3.3の場合)

# aclを定義してblockedログと access_logにログを分ける場合
acl blocked_status http_status 500- 400-403
access_log daemon:/var/log/squid/blocked.log common blocked_status
access_log daemon:/var/log/squid/access.log common !blocked_status


squidのバージョンにより、記述が変わるようですので注意願います。


aclの書き方はいろいろ有りますので応用次第で特定のIPアドレスからのアクセスは別ファイルに出力させる、
または出力させないといった制御が可能と思います。


追記:
上記の設定だと、下記のようにcache.logに警告がたくさん出てしまいます。http_statusで acl書くことがマズイのかもしれません。

2015/02/02 10:18:22 kid1| ACL::checklistMatches WARNING: 'blocked_status' ACL is used but there is no HTTP reply -- not matching.

ググると、http_reply_access deny aclで警告を黙らせられることが書いてありましたが、今のところはうまく出来てません。