Squid логи
Формат лога
Разберемся с форматом 'по умолчанию'
#logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt
access_log /var/log/squid/access.log squid
Знак % означат что далее следует литерал а не терминальный символ
ts : Seconds since epoch - Количество секунд от 00:00 1970.01.01
tu : subsecond time (milliseconds) - доли секунду
Ss : Squid request status
Статус запроса в squid
Код | Описание |
TCP_HIT | Объект в кэше |
TCP_MISS | Объекта нет в кэше |
TCP_DENIED | Доступ запрещен для этого запроса |
TCP_REFRESH_HIT | Запрошенный объект был в кэше, но устарел. IMS-запрос для этого объекта вернул «304 not modified», т.е. обновления не потребовалось |
TCP_REF_FAIL_HIT | Запрошенный объект был в кэше, но устарел. IMS-запрос завершен неудачно и будет загружен устаревший объект из кэша |
TCP_REFRESH_MISS | Запрошенный объект был в кэше, но устарел. IMS-запрос загрузил в кэш обновленный объект |
TCP_CLIENT_REFRESH_MISS | The client issued a «no-cache» pragma, or some analogous cache control command along with the request. Thus, the cache has to refetch the object |
TCP_IMS_HIT | Клиент использовал IMS-запрос для объекта, который был найден в кэше |
TCP_SWAPFAIL_MISS | Объект в кэше, но доступа к нему нет |
TCP_NEGATIVE_HIT | Запрос для негативно кэшированных объектов типа «404 not found», for which the cache believes to know that it is inaccessible. Also refer to the explainations for negative_ttl in your squid.conf file |
TCP_MEM_HIT | Объект был взят из оперативной памяти |
TCP_OFFLINE_HIT | The requested object was retrieved from the cache during offline mode. The offline mode never validates any object, см. offline_mode в файле squid.conf |
UDP_HIT
UDP_MISS
UDP_DENIED | по аналогии с TCP |
UDP_INVALID | Неверный запрос |
UDP_MISS_NOFETCH | During «-Y» startup, or during frequent failures, a cache in hit only mode will return either UDP_HIT or this code. Neighbours will thus only fetch hits |
NONE | Seen with errors and cachemgr requests |
Hs : HTTP status code - Статус коды HTTP протокола
%<st : передано байт (В ответ, включая HTTP заголовок)
%rm : Request method - метод запроса (POST, GET …)
-
%un : User name
%Sh/%<A :
Sh : Squid hierarchy status
Коды иерархий в Squid
Код | Описание |
DIRECT | Объект был получен напрямую от сервера |
FIREWALL_IP_DIRECT | Squid forwards the request directly to the origin server because the origin server's IP address is inside your firewall |
FIRST_PARENT_MISS | Squid forwards the request to the parent cache with the fastest weighted round trip time |
FIRST_UP_PARENT | Squid forwards the request to the first available parent in your list |
LOCAL_IP_DIRECT | Squid forwards the request directly to the origin server because the origin server's IP address matched your local_ip list |
SIBLING_HIT | Squid forwards the request to a sibling cache that sent us a UDP_HIT reply |
NO_DIRECT_FAIL | Squid cannot forward the request because of firewall restrictions and no parent caches are available |
PARENT_HIT | Squid forwards the request to a parent cache that sent us a UDP_HIT reply |
SINGLE_PARENT | The request is forwarded to the only parent cache appropriate for this request. Also requires that single_parent_bypass be enabled |
SOURCE_FASTEST | Squid forwards the request to the origin server because its source_ping reply arrived first |
PARENT_UDP_HIT_OBJ | Squid received the object in a UDP_HIT_OBJ reply from a parent cache |
SIBLING_UDP_HIT_OBJ | Squid received the object in a UDP_HIT_OBJ reply from a sibling cache |
DEFAULT_PARENT | Squid forwarded the request to a default parent, without sending any ICP queries first |
ROUNDROBIN_PARENT | Squid forwarded the request to the round-robin parent with the lowest use count, without sending any ICP queries first |
CLOSEST_PARENT_MISS | Squid forwarded the request to the the parent whose ICP_MISS reply has the lowest measured RTT to the origin server. This only appears with query_icmp enabled in the configuration file |
CLOSEST_DIRECT | Squid forwarded the request directly to the origin server because Squid measured a lower RTT to the origin than any of its parent caches |
NONE | Squid does not forward the request at all |
NO_PARENT_DIRECT | Объект был получен напрямую с сервера, т.к. нет парента для данного URL |
CLOSEST_PARENT | Выбор парента был основан на нашем собственном измерении RTT |
CACHE_DIGEST_HIT | Сосед был выбран, потому-что cache digest сообщил о хите. Эта опция впоследствии была заменена, чтобы различать parent-ов и sibling-ов |
CD_PARENT_HIT | Парент был выбран, потому-что cache digest предсказал хит |
CD_SIBLING_HIT | Сиблинг был выбран, потому-что cache digest предсказал хит |
NO_CACHE_DIGEST_DIRECT | |
CARP | Сосед был выбран по CARP |
ANY_PARENT | часть src/peer_select.c:hier_strings[] |
INVALID CODE | часть src/peer_select.c:hier_strings[] |
Почти каждому из них может предшествовать 'TIMEOUT_', если 2-х секундное (по умолчанию) ожидание ICP-ответов от всех соседей оканчивается таймаутом. См. также конфигурационную опцию icp_query_timeout
<A : IP адрес запрашиваемого сервера
Создание собственного формата
Первое что хотелось бы сделать - это привычный формат времени
%tl - Local time, по умолчанию получим запись вот такого вида %d/%b/%Y:%H:%M:%S %z
07/Aug/2009:16:06:04 +0400
%tg - GMT time, покажет мировое время
07/Aug/2009:12:06:04 +0000
Модифицируем в %{%Y.%m.%d/%H:%M:%S}tl и получим
2009.08.07/16:26:55
Разделение логов
При необходимости можно легко разделять логи для разных acl
access_log <file> [<logformat name> [acl acl ...]]
Пример разделения логов с локального хоста и из локальной сети
access_log /var/log/squid/access.log mylogformat localhost
access_log /var/log/squid/access_parsing.log mylogformat localnet
Чтобы логировать полый адрес URL
strip_query_terms off
Обсуждение
Спасибо Вам большое!!
Здравствуйте! А не подскажите, можно ли определённые get запросы не логировать?
Сам спросил, сам отвечу. Что не логировать что-то, добавить вот это:
acl exclude url_regex -i regexp
access_log none exclude
где regexp, то что не должно быть в логах, слово или регулярное выражение, можно использовать файл, путь к нему указать в кавычках.