Como depurar o syslog-ng não registrando logs UDP

1

Estou tentando fazer com que um cliente faça o login em um servidor syslog-ng. No entanto, tanto quanto eu posso dizer, o syslog-ng não está registrando que recebeu a mensagem e não registrou no arquivo.

NOTA: Todos os comandos foram executados como root

Este é o meu syslog-ng.conf

options {
        flush_lines (0);
        time_reopen (10);
        log_fifo_size (1000);
        long_hostnames (off);
        use_dns (no);
        use_fqdn (no);
        create_dirs (no);
        keep_hostname (yes);
};

source s_net {
        udp(port(514));
};

destination d_net {
        file("/var/log/test.log");
};

Estas são as permissões das mensagens e do arquivo test.log (eu sei que as mensagens estão sendo gravadas pelo syslog-ng).

ls -lah test.log messages
-rw-------. 1 root root 73K Sep  4 10:19 messages
-rw-r--r--. 1 root root   0 Sep  4 10:28 test.log

Para testar a conectividade, executo o seguinte teste. No servidor com o syslog-ng, eu corro os seguintes comandos:

service syslog-ng stop 
syslog-ng -dv (debug verbose mode)
nc -ul 514 (listen to udp packets on port 514)

No cliente, executo os seguintes comandos

nc -u IP_OF_SERVER 514
Hello World (Hit Enter)

No servidor, vejo que recebi a mensagem do udp:

[root@rhel6-64 syslog-ng]# nc -ul 514
Hello World 

Mas não vejo nada na saída do syslog-ng:

[root@rhel6-64 syslog-ng]# syslog-ng -dv
Trying to open module; module='syslogformat', filename='/lib64/syslog-ng/libsyslogformat.so'
Trying to open module; module='basicfuncs', filename='/lib64/syslog-ng/libbasicfuncs.so'
Trying to open module; module='afsocket', filename='/lib64/syslog-ng/libafsocket.so'
Trying to open module; module='affile', filename='/lib64/syslog-ng/libaffile.so'
Trying to open module; module='afprog', filename='/lib64/syslog-ng/libafprog.so'
Trying to open module; module='afuser', filename='/lib64/syslog-ng/libafuser.so'
Trying to open module; module='dbparser', filename='/lib64/syslog-ng/libdbparser.so'
Trying to open module; module='csvparser', filename='/lib64/syslog-ng/libcsvparser.so'
Plugin module not found in 'module-path'; module-path='/lib64/syslog-ng', module='afsql'
Running application hooks; hook='1'
Running application hooks; hook='3'
syslog-ng starting up; version='3.2.5'

Note que "syslog-ng iniciando; versão = '3.2.5'" é a última coisa que vejo.

Neste estágio, não tenho certeza qual é o problema e gostaria que alguém explicasse meu problema, ou como depurar ainda mais esse problema.

    
por Jason Zhu 04.09.2013 / 16:43

1 resposta

3

O problema é que eu não li as man pages o suficiente. Quando eu definia uma fonte e um destino, eu não definia um link entre eles (eu tinha assumido que, uma vez que ambos tinham _net após os s e d, eles automaticamente ligavam um ao outro). Em vez disso, eu precisava da seguinte linha para ser adicionada ao syslog-ng.conf

log { source(s_net); destination(d_net); }

Para resumir, meu problema é que não conectei os dois nós de extremidade e a solução é especificar a conexão entre os nós de extremidade usando o bloco de log.

    
por 05.09.2013 / 17:59