Nginx HTTP server tem uma facilidade de Registo fenomenal que é altamente personalizável. Neste artigo, vamos explicar como configurar seus próprios formatos de acesso e logs de erro para Nginx no Linux.
O objetivo deste guia é ajudar você a entender como os logs são gerados, de modo a configurar os formatos de log para fins de depuração, de resolução de problemas ou análise do que se desenrola dentro de seu servidor web, bem como aplicações web (tais como pedidos de rastreamento).,
Read Also: 4 Good Open Source Log Monitoring and Management Tools for Linux
Este artigo é feito de três secções que o irão elucidar sobre a configuração dos registos de acesso/erro e como activar o registo condicional na Nginx.
configurar os registos de acesso na Nginx
na Nginx, todos os pedidos dos clientes para o servidor são recorados no registo de acesso num formato especificado, usando o módulo ngx_ http_ log_ Module.
o ficheiro de registo por omissão é log / access.,log (normalmente /var/log/nginx/access_ log em sistemas Linux) e o formato padrão para logar é normalmente o formato combinado ou principal (isto pode variar de uma distribuição para outra).
a diretiva access_log (aplicável no http, servidor, localização, se em localização e limite exceto contexto) é usada para definir o arquivo de log e a diretiva log_format (aplicável apenas no contexto http) é usada para definir o formato de log. O formato de log é descrito por variáveis comuns, e variáveis que geraram apenas no momento em que um log é escrito.,
a sintaxe para configurar um formato de registo é:
log_format format_name 'set_of_variables_to_define_format';
e a sintaxe para configurar o registo de acesso é:
o seguinte é um excerto do ficheiro de configuração predefinido de Nginx /etc/nginx/nginx.conf em CentOS 7.
Este formato de log contém o seguinte registo.
o seguinte é outro formato de registro útil que usamos para rastrear pedidos para nossas aplicações web usando algumas das variáveis padrão, ele mais importante tem o ID DO pedido e logs dados de localização do cliente (país, código do país, região e cidade).,
pode usá-lo assim:
access_log /var/log/nginx/access.log custom;
isto irá produzir uma entrada de log que aparece desta forma.
Você pode especificar vários logs usando as diretivas access_ log no mesmo nível, aqui estamos usando mais de um arquivo de log no contexto http.
os seguintes são exemplos de configurações de Registo mais avançadas, que são úteis para os formatos de registo que contêm variáveis relacionadas com a compressão e para a criação de ficheiros de Registo comprimidos:
access_log /var/log/nginx/custom_log custom buffer 32k;access_log /path/to/log.gz compression gzip flush=5m;
configurar registos de erros em Nginx
No caso de Nginx ter quaisquer falhas, ele regista informações sobre elas no registo de erros. Estas questões caem sob diferentes níveis de gravidade: depuração, informação, aviso, aviso, erro (Este é o nível padrão e funciona globalmente), crit, alerta ou emerg.
o ficheiro de registo por omissão é log / error.,log, mas é normalmente localizado em/var/log/ nginx / em distribuições Linux. A diretiva error_log é usada para especificar o arquivo de log, e pode ser usado no principal, http, mail, fluxo, servidor, contexto de localização (nessa ordem).
Você também deve notar que: Configurações
- no contexto principal são sempre herdadas por níveis mais baixos na ordem acima.
- e configurações nos níveis inferiores sobrepõem as configurações herdadas dos níveis mais elevados.,
Você pode configurar o log de erro usando a seguinte sintaxe:
error_log /path/to/log_file log_level;
Por exemplo:
error_log /var/log/nginx/error_log warn;
Isto irá instruir o Nginx para registo de todas as mensagens do tipo avisar e mais grave o nível de log de crítico, alerta e emerg mensagens.
no próximo exemplo, as mensagens de crit, alerta e emerg serão registradas.
error_log /var/www/example1.com/log/error_log crit;
considere a configuração abaixo, aqui, definimos o registo de erros em diferentes níveis (no contexto http e servidor)., Em caso de erro, a mensagem é escrita em apenas um registro de erro, o mais próximo do nível onde o erro apareceu.
Se você usar mais de uma diretriz error_log como na configuração abaixo (mesmo nível), as mensagens são escritas em todos os logs especificados.
configurar o registo condicional no Nginx
em alguns casos, podemos querer que o Nginx execute o registo condicional das mensagens., Nem todas as mensagens têm que ser registradas pela Nginx, portanto podemos ignorar entradas de log insignificantes ou menos importantes de nossos registros de Acesso para instâncias particulares.
Podemos usar o módulo ngx_ http_map_module que cria variáveis cujos valores dependem de valores de outras variáveis. Os parâmetros dentro de um bloco de mapa (que deve existir apenas no conteúdo http) especificam um mapeamento entre os valores fonte e resultante.
para este tipo de configuração, um pedido não será registrado se a condição for avaliada para "0”
ou uma cadeia vazia., Este exemplo exclui os pedidos com os códigos de estado HTTP 2xx e 3xx.
http{map $status $condition {~^ 0; default 1;}server{access_log /path/to/access.log custom if=$condition;}}
Aqui está outro exemplo útil para depurar uma aplicação web em uma fase de desenvolvimento. Isto irá ignorar todas as mensagens e apenas registar a informação de depuração.
pode obter mais informações, incluindo o registo no syslog aqui.é tudo por agora! Neste guia, nós explicamos como configurar o formato de registro personalizado para os logs de acesso e erro no Nginx., Use o formulário de feedback abaixo para fazer perguntas ou compartilhar seus pensamentos sobre este artigo.