プロキシサーバーとして広く利用されている Squid は、インターネットとの境界に配置されることも多く、Webアクセスを記録・分析するためにアクセスログが取得されていることが多いかと思います。
この記事では、Squidのアクセスログの確認方法と、ログの読み方、ログのカスタマイズについて解説します。
1.アクセスログの保存場所
Squidのアクセスログは、デフォルトの設定であれば以下のパスに保存されています。
/var/log/squid/access.log
ただし、ログファイルの場所は、squid.conf
内の access_log
ディレクティブで指定されているため、バージョンや設定により異なる場合もあります。
2.アクセスログの確認方法
以下のコマンドでアクセスログを確認できます。
# ログの末尾をリアルタイムで確認
sudo tail -f /var/log/squid/access.log
# ログ全体を確認
sudo less /var/log/squid/access.log
tail -f
はリアルタイムでログを監視する際に便利で、障害対応や不正アクセスの調査時など、即時性が求められる場面で利用することが多いです。
2-1.ログの構造と読み方
Squidのアクセスログは、以下のような形式で記録されています。
1719738851.889 642 1.1.1.1 TCP_MISS/200 23771 GET http://www.example.com/ - HIER_DIRECT/104.130.201.120 text/html
2-1-1.ログの読み方
ログの各項目の読み方は以下の通りです。
項目 | 内容 |
---|---|
1719738851.889 | リクエストのタイムスタンプ(UNIX時間) |
642 | リクエスト処理にかかった時間(ミリ秒) |
1.1.1.1 | クライアントのIPアドレス |
TCP_MISS/200 | キャッシュのヒット状況とHTTPステータスコード |
23771 | 転送されたバイト数 |
GET | HTTPメソッド |
http://www.example.com/ | リクエストされたURL |
– | ユーザー名(認証が有効な場合) |
HIER_DIRECT/104.130.201.120 | リクエストの転送先と階層コード |
text/html | コンテンツタイプ |
3.ログフォーマットのカスタマイズ
Squidでは、logformat
ディレクティブを使ってログの出力形式を変更することができます。
以下のように squid.conf
に設定追加することで、Apacheの「combined」形式に近いログを出力できます。
# 設定変更(viコマンドを利用)
sudo vi /etc/squid/squid.conf
ーー以下設定を末尾に追記(もしくはlogformat、access_logの設定値に置き換え)ーー
logformat combined %>a - %ui [%tl] "%rm %ru HTTP/%rv" %>Hs %<st "%{Referer}>h" "%{User-Agent}>h"
access_log /var/log/squid/access.log combined
ーーーーーー
この設定を追加すると、クライアントIP、ユーザー名、タイムスタンプ、HTTPメソッド、URL、ステータスコード、転送バイト数、Referer、User-Agent などが記録されます。
3-1.カスタマイズログの出力例
以下は、上記のフォーマットでカスタマイズしたログの出力例です。
192.168.1.100 - - [21/Oct/2025:16:20:01 +0900] "CONNECT www.google.com:443 HTTP/1.1" 200 7923 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0" TCP_TUNNEL:HIER_DIRECT
このログから、以下の情報が読み取れます。
- クライアントIP:
192.168.1.100
- リクエスト日時:
21/Oct/2025:16:20:01 +0900
- リクエスト内容:
CONNECT www.google.com:443 HTTP/1.1
- ステータスコード:
200
- 転送バイト数:
7923
- リファラー:
-
- ユーザーエージェント:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36 Edg/141.0.0.0
ログフォーマットをカスタマイズすることで、より詳細なアクセス情報を取得でき、ログ解析が容易になります。
4.まとめ
Squidのアクセスログは、ネットワーク管理やセキュリティ対策において非常に重要な情報源です。
ログの保存場所やログ確認コマンドを知っておくだけで、トラブル対応や利用状況の把握がスムーズになります。
また、ログフォーマットをカスタマイズすることでログの可読性が増し、トラブル対応や調査に役に立ちます。