2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Squidのアクセスログに記録される情報をカスタマイズする

Posted at

環境

  • 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
  1. エポック秒.ミリ秒
  2. レスポンスタイム(単位はミリ秒)
  3. 接続元IP
  4. Squidリクエストステータス/HTTPステータスコード
  5. リクエストサイズ
  6. リクエストメソッド
  7. リクエストURL
  8. %エンコードされたuser name
  9. Squid階層ステータス/接続先IP
  10. MIMEタイプ

別の定義済みlogformatに変更する

いくつかのlogformatは既に定義済みのようなので、試しにcombinedに変更してみます。squid.conf に下記の行を追加します。

squid.conf
...
access_log daemon:/var/log/squid/access.log combined

squid : access_log configuration directive

~$ sudo systemctl restart squid
access.log
::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埋め
squid.conf
...
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
access.log
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

参考資料

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?