Adicionando UUID ao log Nginx

2

Eu preciso ter um identificador exclusivo em cada linha de log do Nginx. Existe uma maneira fácil de adicionar isso?

Obrigado!

    
por ajmurmann 23.02.2011 / 23:09

3 respostas

3

Se você pode montar um UUID de variáveis nginx , você pode usar log_format para adicioná-lo ao registro.

Uma maneira comum de fazer isso é adicionar um cabeçalho HTTP com o UUID e capturá-lo no nginx (ele expõe todos os cabeçalhos como $http_<header_name> variables) para adicionar ao formato de log personalizado.

    
por 24.02.2011 / 00:16
2
A variável

$connection contém o identificador de conexão. Não é globalmente único, eu acho que vai começar a partir de 0 após o reinício do Nginx. Mas deve ser único entre as reinicializações.

    
por 24.02.2011 / 16:39
0

Atualize para o nginx > = 1.11, que suporta a variável $request_id .

Ou para versões mais antigas, você pode usar o módulo Perl para gerar o UUID, na seção http de nginx.conf (ou conf.d/uuid.conf ):

perl_require "Data/UUID.pm";
perl_set $request_id 'sub {
   my $ug = new Data::UUID;
   return $ug->create_str();
}';

No Debian você precisará do nginx-extra package (script Perl no nginx) e libossp-uuid-perl :

sudo apt install nginx-extra libossp-uuid-perl

Em seguida, você pode anexar $request_id para registrar ou configurar o cabeçalho HTTP:

proxy_set_header Request-Id $request_id
    
por 11.05.2017 / 12:44

Tags