ITの窓辺から

三流IT技術者の日常

Squidのアクセスログフォーマットを変更する

ちょっとSplunkを休止してSquidに。Squidのバージョンは以下の通りです。

# /usr/sbin/squid -v
Squid Cache: Version 3.5.20

SquidのログをSplunkの記事でしばらく取り扱っていましたが、Squidのバージョン確認すらしていませんでした。三流IT技術者としては広く浅く色んなことに触らねばならないのです。あ、OSはCentOS7です。

設定ファイル

Squidの設定ファイルパスは通常下記の通りです。

/etc/squid/squid.conf

設定内容は多々あるのですが、今回はSqlunkの流れを汲んでまずはアクセスログフォーマットに触れていきます。アクセスログのファイルパスは以下の通りです。

/var/log/squid/access.log

とりあえず、何も指定をしない場合、生ログの例は下記のようになります。

1529846289.567 37117 192.168.0.51 TAG_NONE/503 0 CONNECT substrate.office.com:443 - HIER_NONE/- -

意味はこんな感じ。

1529846289 : UNIXエポック時間からの経過秒数

. : 固定値

567 : UNIXエポック時間からの経過時間(msec)

37117 : 応答時間(msec)

192.168.0.51 : クライアントのIPアドレス

TAG_NONE : Squid固有の動作ログ

/ : 固定値

503 : クライアントに送信したHTTPステータスコード

0 : クライアントに送信したデータ量(byte)

CONNECT : Squidから対象URLへのHTTPリクエストメソッド

substrate.office.com:443 : クライアントから渡されたアクセスURL

- : ユーザ名

HIER_NONE : このSquidの上位プロキシへのアクセス結果(Squid固有値)

/ : 固定値

- : キャッシュ機能の動作結果

- : MIMEコンテンツタイプ

Squidの書式でログフォーマットを表すと以下のようになります。

logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt

一応オフィシャルサイトのリンクも貼っておきます。

Squid 3.5.19 Configuration File: logformat

初めのlogformat squidはとりあえずお約束と考えて良いです。このフォーマットに従ってもう少し説明すると以下の通りです。(2列目は先程のサンプルログでの値です)

%03tu : 567 : 最小で3桁とし、3桁未満の表記の場合は頭を0で埋める。(007とか)

%6tr : 37117 : 最小で6桁とする。

%03>Hs : 503 : 最小で3桁とする。

%[un : - : MIME応答ヘッダ。

時間表記を変えてみる

変えてみるというより追加です。

logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt %tl

末尾に%tlを追加します。tlはローカル時間を示しデフォルトでは%d/%b/%Y:%H:%M:%S %zというフォーマットです。この設定をsquid.confのどこかに追加します。追加したらSquidのサービスを再起動。

access.logには以下のように記録されるようになりました。

1531842602.668 14937 192.168.0.51 TAG_NONE/500 0 CONNECT www.google.co.jp:443 - HIER_DIRECT/172.217.25.227 - 18/Jul/2018:00:50:02 +0900

このように簡単にログフォーマットの設定ができます。

今後数回HTTPプロキシの話題について書いていこうと思います。