Logging | Nginx
Índice:
- Configurando o log de acesso
- Configurando o log de erros
- Local dos arquivos de log
- Lendo e compreendendo os arquivos de log do Nginx
- Conclusão
O Nginx é um servidor HTTP e de proxy reverso de código aberto e alto desempenho, responsável por lidar com a carga de alguns dos maiores sites da Internet. Ao gerenciar servidores da Web NGINX, uma das tarefas mais frequentes que você executa é a verificação dos arquivos de log.
Saber configurar e ler os logs é muito útil ao solucionar problemas de servidor ou aplicativo, pois eles fornecem informações detalhadas sobre depuração.
O Nginx grava registros de seus eventos em dois tipos de logs: logs de acesso e logs de erro. Os logs de acesso gravam informações sobre solicitações do cliente e os logs de erros gravam informações sobre os problemas do servidor e do aplicativo.
Este artigo descreve como configurar e ler os logs de acesso e erro do Nginx.
Configurando o log de acesso
Sempre que uma solicitação do cliente é processada, o Nginx gera um novo evento no log de acesso. Cada registro de evento contém um registro de data e hora e inclui várias informações sobre o cliente e o recurso solicitado. Os logs de acesso podem mostrar a localização dos visitantes, a página que eles visitam, quanto tempo eles gastam na página e muito mais.
A diretiva
log_format
permite definir o formato das mensagens registradas. A diretiva
access_log
ativa e define o local do arquivo de log e o formato usado.
A sintaxe mais básica da diretiva
access_log
é a seguinte:
access_log log_file log_format;
Onde
log_file
é o caminho completo para o arquivo de log e
log_format
é o formato usado pelo arquivo de log.
O log de acesso pode ser ativado no bloco de diretivas
http
,
server
ou
location
.
Por padrão, o log de acesso é ativado globalmente na diretiva
http
dentro do arquivo de configuração principal do Nginx.
http {… access_log /var/log/nginx/access.log;… }
Para melhor manutenção, é recomendável definir um arquivo de log de acesso separado para cada bloco do servidor. A diretiva
access_log
configurada na diretiva do
server
substitui a diretiva configurada na diretiva
http
(nível superior).
http {… access_log /var/log/nginx/access.log;… server { server_name domain.com access_log /var/log/nginx/domain.access.log;… } }
Se nenhum formato de log for especificado, o Nginx utilizará o formato combinado predefinido, semelhante a este:
log_format combined '$remote_addr - $remote_user ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"';
Para alterar o formato do registro, substitua a configuração padrão ou defina uma nova. Por exemplo, para definir um novo formato de log chamado main, que estenderá o formato combinado com o valor que mostra o cabeçalho
X-Forwarded-For
adicione a seguinte definição na diretiva
http
ou
server
:
log_format custom '$remote_addr - $remote_user "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
Para usar o novo formato, especifique seu nome após o arquivo de log, como mostrado abaixo:
access_log /var/log/nginx/access.log custom;
Enquanto o log de acesso fornece informações muito úteis. ocupa espaço em disco e pode afetar o desempenho do servidor. Se seu servidor estiver com poucos recursos e você tiver um site ocupado, convém desativar o log de acesso. Para fazer isso, defina o valor da diretiva
access_log
como
off
:
Configurando o log de erros
O Nginx grava mensagens sobre o aplicativo e os erros gerais do servidor no arquivo de log de erros. Se você estiver enfrentando erros em seu aplicativo Web, o log de erros é o primeiro local a ser iniciado para solucionar problemas.
A diretiva
error_log
habilita e define o local e o nível de gravidade do log de erros. Ele assume o seguinte formato e pode ser definido em um bloco
http
,
server
ou
location
:
error_log log_file log_level
O parâmetro
log_level
define o nível de log. Abaixo estão os níveis listados por gravidade (de baixo para alto):
-
debug- Depurando mensagens.info- Mensagens informativas.notice- Avisos.warn- avisos.error- Erros ao processar uma solicitação.crit- Questões críticas. Requer uma ação imediata.alert- Alertas. A ação deve ser tomada imediatamente.emerg- situação de emergência. O sistema está em um estado inutilizável.
Cada nível de log inclui os níveis mais altos. Por exemplo, se você definir o nível de log como
warn
, o Nginx também registrará as mensagens de
error
,
crit
,
alert
e
emerg
.
Quando o parâmetro
log_level
não é especificado, o padrão é
error
.
Por padrão, a diretiva
error_log
é definida na diretiva
http
dentro do arquivo nginx.conf principal:
http {… error_log /var/log/nginx/error.log;… }
Assim como nos logs de acesso, é recomendável definir um arquivo de log de erros separado para cada bloco do servidor, que substitui a configuração herdada dos níveis mais altos.
Por exemplo, para definir o log de erros do domínio.com para
warn
você usaria:
http {… error_log /var/log/nginx/error.log;… server { server_name domain.com error_log /var/log/nginx/domain.error.log warn;… } }
Sempre que você modifica o arquivo de configuração, é necessário reiniciar o serviço Nginx para que as alterações tenham efeito.
Local dos arquivos de log
Por padrão, na maioria das distribuições Linux, como Ubuntu, CentOS e Debian, os logs de acesso e erro estão localizados no diretório
/var/log/nginx
.
Lendo e compreendendo os arquivos de log do Nginx
Você pode abrir e analisar os arquivos de log usando comandos padrão como
cat
,
less
,
grep
,
cut
,
awk
e assim por diante.
Aqui está um exemplo de registro do arquivo de log de acesso que usa o formato de log Nginx combinado padrão:
192.168.33.1 - - "GET / HTTP/1.1" 200 396 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36"
Vamos detalhar o que cada campo do registro significa:
-
$remote_addr-192.168.33.1- O endereço IP do cliente que está fazendo a solicitação.$remote_user--- Usuário autenticado HTTP. Quando o nome do usuário não está definido, este campo mostra-. -- Hora do servidor local."$request"-"GET /- O tipo, caminho e protocolo da solicitação.$status-200- O código de resposta do servidor.$body_bytes_sent-396- O tamanho da resposta do servidor em bytes."$http_referer"-"-"- O URL da referência."$http_user_agent"-Mozilla/5.0…- O agente do usuário do cliente (navegador da web).
Use o comando
tail
para assistir o arquivo de log em tempo real:
Conclusão
Os arquivos de log fornecem informações úteis sobre problemas do servidor e como os visitantes interagem com seu site.
O Nginx permite configurar os registros de acesso e erro de acordo com suas necessidades.
nginxGanho de Acesso a Fibra por Cabo para Acesso em Banda Larga
Pela primeira vez, o acesso em banda larga por fibra está se expandindo mais rápido que o cabo: 4,2 milhões comparado a 2,5 milhões……
Acesso negado, Erro ao excluir problema de arquivo ou pasta no Windows
Este tutorial mostrará como corrigir Acesso negado, Erro ao excluir arquivo ou Mensagens de erro de pasta que você pode receber ao excluir arquivos ou pastas no Windows 8 | 7.
Configurando um proxy reverso nginx
Este artigo descreve as etapas necessárias para configurar o Nginx como um proxy reverso. Um proxy reverso é um serviço que recebe uma solicitação do cliente, envia a solicitação para um ou mais servidores com proxy, busca a resposta e entrega a resposta do servidor ao cliente.







