Como replicar dados de / dev / log on para vários receptores rsyslog

1

Eu quero executar várias instâncias de rsyslogd (em namespaces de rede diferentes [ netns ]). rsyslogd/dev/log e, uma vez que um processo lê, o soquete é drenado e outra instância não tem nada para ler! Existe alguma maneira de fazer uma (digamos, mestre ) instância de rsyslogd para replicar syslog mensagens para outro local ( escravo ) rsyslogd instâncias? Se isso puder ser feito de qualquer outra forma, os ponteiros / sugestões serão bem-vindos. Como rsyslogd não suporta Linux netns , parece que a única maneira de enviar out syslog messages em namespaces diferentes - é executar várias instâncias de rsyslogd .

    
por vyom 30.03.2017 / 18:47

1 resposta

2

Você deve ser capaz de usar qualquer um dos vários módulos de saída do rsyslog para fazer isso. Por exemplo (roubado e modificado de rsyslog.conf(5) ) no seu mestre:

*.*  :omrelp:192.168.0.2:2514
*.*  :omrelp:192.168.0.3:2514
*.*  :omrelp:192.168.0.4:2514

Teria o mestre enviar todas as entradas do syslog para o rsyslog em execução nesses três endereços IP, que precisam ser configurados como:

 $ModLoad imrelp
 $InputRELPServerRun 2514

(Observe que *.* é um seletor de log normal, portanto, você pode limitar as mensagens encaminhadas, por exemplo, local0.* :omrelp:192.168.0.4:2514 encaminhará somente os logs enviados para a facilidade local0 ).

PS: O que você está fazendo é um pouco estranho. Normalmente as pessoas querem centralizar logs. Dependendo de por que você está fazendo isso, você pode realmente querer um dos outros módulos de saída (por exemplo, talvez você queira enviar seus logs para um banco de dados SQL em que os programas em todos os diferentes namespaces podem se conectar e consultar). >

PPS: Existem outras maneiras de lidar com isso também - quais sockets o rsyslog lê e grava são totalmente configuráveis. Há documentação bastante extensa em seu site e, claro, provavelmente em /usr/share/doc em seu sistema como bem.

    
por 30.03.2017 / 19:17