nginx envia log para servidor syslog remoto

2

Gostaria de enviar o log de% de nginx para um servidor syslog-ng remoto. Eu instalei syslog-ng em cada lado (servidor-cliente).

Client: 10.10.10.2
Server: 10.10.10.1

Alguns arquivos de log (mensagens, syslog, mail.log) são enviados com êxito ao servidor pelo cliente, mas não pelo nginx log. Configuração do servidor:

source s_net {
   tcp(ip(0.0.0.0) port(1999)
   tls( key_file("/etc/syslog-ng/key.d/privkey.pem")
        cert_file("/etc/syslog-ng/cert.d/cacert.pem")
        peer_verify(optional-untrusted)) ); };

destination d_net_nginx_access { file("/mnt/syslog_storage/HOSTS/$HOST
/nginx.access.log"); };

filter f_nginx_access { program("nginx") };

log { source(s_net); filter(f_nginx_access); destination(d_net_nginx_access); };

Configuração do cliente:

source s_src {
       system();
       internal();
};

destination tls_log {
tcp("10.10.10.1" port(1999)
tls( ca_dir("/etc/syslog-ng/ca.d")) );};

destination d_nginx_access { file("/var/log/nginx/nginx.access.log"); };

filter f_nginx { program("nginx"); };

log { source(s_src); filter(f_nginx); destination(d_nginx_access); };

# All messages send to a remote site
#
log { source(s_src); destination(tls_log); };

O que estou perdendo aqui?

    
por user218547 19.09.2014 / 11:51

1 resposta

2

Essa funcionalidade já foi reservada para a variante comercial do nginx, mas desde então foi incluída na versão do sistema operacional. Você pode usar o módulo nginx ngx_http_log_module para isso.

Aqui está um link para a documentação do módulo, explicando a configuração e configuração: link

Uso

Syntax:
access_log path [format [buffer=size [flush=time]] [if=condition]];
access_log path format gzip[=level] [buffer=size] [flush=time] [if=condition];
access_log syslog:server=address[,parameter=value] [format [if=condition]];
access_log off;

Default:    
access_log logs/access.log combined;
Context:    http, server, location, if in location, limit_except

O terceiro formulário é o que você deseja usar:

access_log syslog:server=address[,parameter=value] [format [if=condition]];

Inclua o endereço IP do servidor remoto onde o Syslog está sendo executado.

    
por 19.09.2014 / 12:56