Squidのアクセスログフォーマットを変更する
ちょっとSplunkを休止してSquidに。Squidのバージョンは以下の通りです。
# /usr/sbin/squid -v
Squid Cache: Version 3.5.20
SquidのログをSplunkの記事でしばらく取り扱っていましたが、Squidのバージョン確認すらしていませんでした。三流IT技術者としては広く浅く色んなことに触らねばならないのです。あ、OSはCentOS7です。
設定ファイル
Squidの設定ファイルパスは通常下記の通りです。
設定内容は多々あるのですが、今回はSqlunkの流れを汲んでまずはアクセスログフォーマットに触れていきます。アクセスログのファイルパスは以下の通りです。
とりあえず、何も指定をしない場合、生ログの例は下記のようになります。
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プロキシの話題について書いていこうと思います。