環境
- Ubuntu 24.04 LTS (WSL)
- Squid 6.6
デフォルトのログを読み解く
デフォルトのsquid.confの設定で出力されるアクセスログは以下のようになります。
1719738851.889 642 ::1 TCP_MISS/200 23771 GET http://www.squid-cache.org/Doc/config/ - HIER_DIRECT/104.130.201.120 text/html
アクセスログに記録する情報はlogformatで定義することができ、デフォルトの場合は squid
という既定のフォーマットになるようです。
The default formats available (which do not need re-defining) are:
logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt
logformat common %>a - %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Sh
logformat combined %>a - %[un [%tl] "%rm %ru HTTP/%rv" %>Hs %h" "%{User-Agent}>h" %Ss:%Sh
logformat referrer %ts.%03tu %>a %{Referer}>h %ru
logformat useragent %>a [%tl] "%{User-Agent}>h"
squid : logformat configuration directive
logformat squidの内容
squidの定義は以下のようになっています。
logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %m
実際のログと突き合わせてみます。
1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|
1719738851.889 | 642 | ::1 | TCP_MISS/200 | 23771 |
%ts.%03tu | %6tr | %>a | %Ss/%03>Hs | %<st |
6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|
GET | http://www.squid-cache.org/Doc/config/ | - | HIER_DIRECT/104.130.201.120 | text/html |
%rm | %ru | %[un | %Sh/%<a | %mt |
- エポック秒.ミリ秒
- レスポンスタイム(単位はミリ秒)
- 接続元IP
- Squidリクエストステータス/HTTPステータスコード
- リクエストサイズ
- リクエストメソッド
- リクエストURL
- %エンコードされたuser name
- Squid階層ステータス/接続先IP
- MIMEタイプ
別の定義済みlogformatに変更する
いくつかのlogformatは既に定義済みのようなので、試しにcombinedに変更してみます。squid.conf
に下記の行を追加します。
...
access_log daemon:/var/log/squid/access.log combined
squid : access_log configuration directive
~$ sudo systemctl restart squid
::1 - - [30/Jun/2024:18:03:11 +0900] "GET http://www.squid-cache.org/Doc/config/ HTTP/1.1" 200 23771 "http://www.squid-cache.org/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0" TCP_MISS:HIER_DIRECT
アクセスログの形式が変わり、User Agent等が表示されるようになりました。
独自のlogformatに変更する
「squid」をベースに、時刻を人間に読みやすい形式に変更したいと思います。localtimeという名前のlogformatを定義し、access_logで指定します。
-
%6
は桁指定で6桁 -
%03
は桁指定3桁かつ3桁未満の場合は先頭を0埋め
...
logformat localtime %{%Y-%m-%d %H:%M:%S}tl.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %[un %Sh/%<a %mt
access_log daemon:/var/log/squid/access.log localtime
~$ sudo systemctl restart squid
2024-06-30 18:42:23.396 775 ::1 TCP_MISS/200 23771 GET http://www.squid-cache.org/Doc/config/ - HIER_DIRECT/104.130.201.120 text/html