Das Logging ist ein wesentlicher Bestandteil der Verwaltung und Überwachung von Squid-Proxys. Es ermöglicht Administratoren, Anfragen zu überwachen, Fehler zu diagnostizieren und die Leistung des Proxys zu analysieren. In diesem Kapitel werden die wichtigsten Direktiven, Log-Dateien und das Log-Format im Detail beschrieben.
access_log [options] logfile formataccess_log /var/log/squid/access.log squidcache_log /var/log/squid/cache.loglogformat name format-stringlogformat myformat %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %>Hs %<st %Ss:%Shcache_log.debug_options section,leveldebug_options ALL,1emulate_httpd_log on|offemulate_httpd_log onaccess.log: Protokolliert alle Anfragen, die von Squid verarbeitet werden. Enthält Informationen wie Zeitstempel, Quell-IP, Ziel-URL und Ergebnis.
cache.log: Enthält ausführliche Informationen über die Aktivitäten des Squid-Proxys, einschließlich Fehler, Warnungen und Debug-Informationen.
store.log: Protokolliert Informationen über die Speicherung von Objekten im Cache.
swap.state: Eine Binärdatei, die den aktuellen Status des Cache-Verzeichnisses speichert.
Das Standard-Log-Format von Squid in der access.log
verwendet Felder, die detaillierte Informationen über jede Anfrage
bereitstellen. Hier ist eine Beschreibung der Standardfelder:
| Feld | Bedeutung |
|---|---|
| Zeitstempel | Gibt die Uhrzeit und das Datum der Anfrage an. |
| Antwortzeit | Die Zeit (in Millisekunden), die Squid benötigt hat, um die Anfrage zu verarbeiten. |
| Client-IP | Die IP-Adresse des Clients, der die Anfrage gesendet hat. |
| Cache-Status | Der Status des Caches (z.B. TCP_HIT,
TCP_MISS). |
| HTTP-Methode | Die HTTP-Methode der Anfrage (z.B. GET, POST). |
| URL | Die vollständige URL der angeforderten Ressource. |
| Größe | Die Größe der Antwort (in Bytes). |
| HTTP-Status | Der HTTP-Statuscode der Antwort (z.B. 200, 404). |
| Hierarchie-Status | Gibt die Quelle der Antwort an (z.B. DIRECT,
CACHED). |
| Hostname | Der Hostname des Zielservers oder -clients. |
1622204413.300 213 192.168.1.100 TCP_MISS/200 1245 GET http://example.com/page.html - DIRECT/93.184.216.34 text/html
In diesem Beispiel zeigt der Eintrag eine Anfrage von der IP
192.168.1.100, die nicht aus dem Cache
(TCP_MISS) bedient wurde und einen HTTP-Statuscode von
200 hatte.
| Status-Code | Beschreibung |
|---|---|
| TCP_HIT | Die Anfrage wurde aus dem Cache beantwortet. |
| TCP_MEM_HIT | Die Anfrage wurde aus dem Speicher-Cache beantwortet. |
| TCP_DISK_HIT | Die Anfrage wurde aus dem Festplatten-Cache beantwortet. |
| TCP_MISS | Die Anfrage konnte nicht im Cache gefunden werden und wurde vom Ursprungserver bezogen. |
| TCP_REFRESH_HIT | Der Cache-Eintrag wurde erfolgreich überprüft und aktualisiert. |
| TCP_REFRESH_MISS | Der Cache-Eintrag wurde überprüft, war jedoch ungültig und musste vom Server aktualisiert werden. |
| TCP_REFRESH_FAIL | Die Überprüfung des Cache-Eintrags schlug fehl, die Anfrage konnte nicht aktualisiert werden. |
| TCP_CLIENT_REFRESH_MISS | Der Client hat explizit eine Aktualisierung des Cache-Eintrags angefordert, der veraltet war. |
| TCP_DENIED | Die Anfrage wurde durch eine Access-Control-Liste blockiert. |
| TCP_REDIRECT | Die Anfrage wurde umgeleitet (z. B. durch eine Redirector-Anwendung). |
| NONE | Kein Cache-Zustand, z.B. wenn eine direkte Anfrage gestellt wurde. |
| UDP_HIT | Eine ICP-Anfrage (Internet Cache Protocol) wurde aus dem Cache beantwortet. |
| UDP_MISS | Eine ICP-Anfrage konnte nicht im Cache gefunden werden und wird an den Ursprung weitergeleitet. |
| UDP_DENIED | Eine ICP-Anfrage wurde durch eine Access-Control-Liste blockiert. |
| UDP_INVALID | Eine ungültige ICP-Anfrage wurde empfangen. |
| ERR_INVALID_REQ | Eine ungültige oder fehlerhafte Anfrage wurde empfangen. |