Logs de acesso
Política de atualização
Quando uma nova informação for adicionada, ela será incluída no final do log. Essa mudança será indicada pelo campo vendor, com um incremento na versão (Ex. v5.0 -> v5.1). Podemos adicionar novos campos a qualquer momento, portanto, não espere que a linha termine no último campo (por exemplo, tratar logs com regex utilizando caractere $ no fim da linha).
Informações disponíveis
Os logs de acesso são os logs gerados para cada requisição direcionada ao seu domínio. Segue a lista de todas informações incluídas nesses logs:
| Identificador | Descrição |
|---|---|
| $remote_address | Endereço de IP que enviou a requisicão |
| $remote_user | Usuário usado na autenticação HTTP simples |
| $time_local | Horário em que a requisição foi finalizada |
| $request | Campo contendo método, URI e versão HTTP da requisição |
| $status | Status code da resposta |
| $body_bytes_sent | Quantidade de bytes enviados no corpo da resposta |
| $http_referer | Cabeçalho Referer da requisição |
| $http_user_agent | Cabeçalho User-Agent da requisição |
| $request_length | Quantidade de bytes enviados na requisição |
| $bytes_sent | Quantidade de bytes enviados na resposta |
| $request_time | Duração da requisição em segundos |
| $sent_http_content_type | Cabeçalho Content-Type enviado na resposta |
| $sent_http_content_length | Cabeçalho Content-Length enviado na resposta |
| $connection | Identificador da conexão da requisição |
| $connection_requests | Quantidade de requisições enviadas em uma conexão |
| $host | Cabeçalho Host da requisição |
| $realhost | Domínio cadastrado na GoCache |
| $gzip | Taxa de compressão GZIP da resposta |
| $cache_status | Estado do cache da resposta |
| $http_x_forwarded_for | Cabeçalho X-Forwarded-For da requisição |
| $backend | Endereço de IP do backend (hospedagem) no qual a requisição será encaminhada |
| $device | Dispositivo que encaminhou a requisição: bot, mobile, desktop ou na |
| $cache_key | Chave de cache da requisição |
| $request_id | ID da requisição |
| $asn | Sistema autônomo do IP que originou a requisição |
| $geoip_continent_code | Código do continente de onde se originou a requisição |
| $geoip_country_code | Código do país de onde se originou a requisição no formato ISO 3166 Alfa 2 |
| $geoip_state_name | Nome do estado/província de onde se originou a requisição |
| $geoip_city_name | Nome da cidade de onde se originou a requisição |
| $waf_status | Estado do WAF à requisição |
| $waf_level | Nível do WAF à requisição |
| $waf_mode | Ação do WAF configurada à requisição |
| $cipher | Cifra SSL usado no handshake SSL da requisição |
| $consumer_id | Identificador do usuário realizando a requisição |
| $vendor | Indicação que o log é da GoCache, junto da versão do log |
| $jwt_payload | Payload do token JWT encaminhado na requisição |
Versões do log
Observação
Cada log é enviado em somente uma linha. Esta documentação adiciona quebras de linhas para facilitar a leitura das informações.
V4 (JSON)
Nesta versão, as informações são enviadas em formato JSON. Nos logs de acesso, todos os valores do JSON são strings. Segue o formato do log:
{
"date": "$time_local",
"ip": "$remote_address",
"remote_user": "$remote_user",
"request": "$request",
"status": "$status",
"body_bytes_sent": "$body_bytes_sent",
"referer": "$http_referer",
"user_agent": "$http_user_agent",
"request_length": "$request_length",
"bytes_sent": "$bytes_sent",
"request_time": "$request_time",
"content_type": "$sent_http_content_type",
"content_length": "$sent_http_content_length",
"conn": "$connection",
"conn_req": "$connection_requests",
"host": "$host",
"realhost": "$realhost",
"gzip_ratio": "$gzip_ratio",
"cache_status": "$cache_status",
"x-forwarded-for": "$http_x_forwarded_for",
"backend": "$backend",
"device": "$device",
"cache_key": "$cache_key",
"request_id": "$request_id",
"as": "$asn",
"geoip": {
"continent": "$geoip_continent_code",
"country": "$geoip_country_code",
"state": "$geoip_state_name",
"city": "$geoip_city_name"
},
"waf_info": {
"status": "$waf_status",
"level": "$waf_level",
"mode": "$waf_mode"
},
"cipher": "$cipher",
"consumer_id": "$consumer_id",
"vendor": "$vendor",
"jwt_payload": "$jwt_payload"
}
V5 (Combined)
Nesta versão, as informações são enviadas em texto plano, sem seguir uma formatação estruturada. Segue o formato do log:
$remote_address "$remote_user" [$time_local] "$request" $status $body_bytes_sent
"$http_referer" "$http_user_agent" $request_length $bytes_sent $request_time
"$sent_http_content_type" "$sent_http_content_length" conn=$connection
conn_req=$connection_requests host="$host" [$realhost] gzip_=$gzip_ratio
cache_status="$cache_status" ff="$http_x_forwarded_for" backend=$backend device=$device
cache_key="$cache_key" request_id=$request_id as="$asn"
geoip="$geoip_continent_code/$geoip_country_code/$geoip_state_name/$geoip_city_name"
waf="$waf_status,$waf_level,$waf_mode" cipher="$cipher" consumer_id="$consumer_id" vendor="$vendor" jwt_payload="$jwt_payload"
V6 (CSV)
Nesta versão, as informações são enviadas em formato de CSV, separadas por vírgulas e aspas. Segue o formato do log:
"$remote_address","$time_local","$request","$status","$body_bytes_sent","$http_referer",
"$http_user_agent","$request_length","$bytes_sent","$request_time",
"$sent_http_content_type","$sent_http_content_length","$host","$realhost","$gzip_ratio",
"$cache_status","$http_x_forwarded_for","$backend","$device","$cache_key","$request_id",
"$asn","$geoip_continent_code/$geoip_country_code/$geoip_state_name/$geoip_city_name",
"$waf_status/$waf_level/$waf_mode","$cipher","$consumer_id","$vendor","$jwt_payload"