
私たちは皆、access.log
ファイルがSquidのアクセス情報を記録していることを知っています。
1286536351.746 41762 192.168.1.17 TCP_MISS/200 5340945 GET http://v15.lscache3.c.youtube.com/videoplayback? - DIRECT/122.160.120.150 video/x-flv
1286536351.746 41762 192.168.1.18 TCP_MISS/200 5340945 GET http://v15.lscache3.c.youtube.com/videoplayback? - DIRECT/122.160.120.150 video/x-flv
また、Squidがこのファイルを使用して/etc/resolv.conf
処理中のDNSサーバーを決定することを知っているので、SquidにローカルDNSサーバーを処理させるには、ファイルにローカルDNSサーバーを入力します/etc/resolv.conf
。
ローカルDNSサーバーに次のレコードがある場合(リバースゾーン(1.168.192.in-addr.arpa)):
$TTL 60 ; 1 minute
17 PTR Mark.
18 PTR Mike.
リバースルックアップを実行し(ログファイルにIPアドレス名を要求する)、名前をレコードに追加するようにSquidを設定できますaccess.log
。たとえば、次のようになります。
次のような記録を作りたいです。
1286536351.746 41762 192.168.1.17 ......
次のようになります。
1286536351.746 41762 192.168.1.17 Mark ......
この目標をどのように達成できますか?
私が望むものを取得するために、と%>a
同じSquidログ形式を使用できますか?%>A
答え1
1 つの方法は、ファイルでこのディレクティブを使用して、squid.conf
ログファイルに IP の代わりに FQDN を表示することです。
log_fqdn on
源泉:http://www.squid-cache.org/Doc/config/log_fqdn/
ただし、これは<IP> <Name>
あなたの質問に表示される形式を無視します。この目的のために、ディレクティブのドキュメントを見ると、次のlogformat
基本形式がリストされています。
logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt
logformat common %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh
logformat combined %>a %[ui %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h" %Ss:%Sh
logformat referrer %ts.%03tu %>a %{Referer}>h %ru
logformat useragent %>a [%tl] "%{User-Agent}>h"
これらのオプションはパラメータとしてリストされており、それを使用して独自の形式を構築できます。
>a Client source IP address
>A Client FQDN
だから、これを一緒に使って欲しいフォーマットを得ることができることを願っています。