Filas do Rsyslog e impactos no desempenho

1

Tendo recentemente tido uma falha de rede que causou uma série de outras questões em cascata, estive mergulhando em nosso rsyslog.conf para tentar identificar oportunidades para uma implantação mais estável.

Temos todos os nossos servidores de aplicativos executando o rsyslog, encaminhando pelo tcp para alguns servidores de agregação. Ontem, quando um desses servidores estava quase inacessível devido à alta perda de pacotes, o restante do ambiente foi interrompido. Acho que descobri algumas configurações que não fazem sentido.

Aqui está a configuração do nosso cliente:

# modules
$ModLoad imuxsock # provides support for local system logging
$ModLoad imklog   # provides kernel logging support (previously done by rklogd)

$KLogPath /proc/kmsg

# global app configs
$FileOwner syslog
$FileGroup adm
$FileCreateMode 0644
$DirCreateMode 0755
$Umask 0022
$PrivDropToUser syslog
$PrivDropToGroup syslog
$PreserveFQDN on

# queue configs
$MainMsgQueueType LinkedList
$MainMsgQueueSize 50000
$ActionQueueType Direct

$MainMsgQueueDiscardMark 300000
$MainMsgQueueDiscardSeverity 4

$MainMsgQueueFileName mainmsgqueue
$MainMsgQueueMaxFileSize 200m
$MainMsgQueueLowWaterMark 10000
$MainMsgQueueHighWaterMark 40000

$MainMsgQueueTimeoutEnqueue 1
$ActionQueueTimeoutEnqueue 1

# Log locally.
authpriv.*                  /var/log/auth.log
*.*;auth,authpriv.none      -/var/log/syslog

# Send all components to remote log servers
*.* @@<server 1 IP>
& @@<server 2 IP>

Minhas perguntas são:

A) Nos servidores clientes, o que acontecerá com mensagens com uma fila "Direta" enviando TCP para um servidor inacessível (mas não totalmente)? A fila do MainMsg iniciará o backup instantaneamente, se a fila de ações não puder enviar logs?

B) Qual é o tamanho total máximo da fila (memória e disco) para uma fila "assistida por disco" que tem um "QueueSize" de 50000 e nenhum "QueueMaxDiskSpace" definido? É ilimitado, isto é, a diretriz "QueueSize" só se aplica à porção em memória?

C) A diretriz "QueueDiscardMark" se aplica ao total de mensagens enfileiradas (memória e disco) ou apenas à parte na memória?

    
por righdforsa 23.08.2014 / 01:37

1 resposta

3

Recebemos mais ajuda nos fóruns do rsyslog e postamos aqui para ajudar qualquer pessoa no futuro.

Tópico do fórum do Rsyslog: [ link

Respostas: 1.) Os alvos do rsyslog são processados sequencialmente, portanto, se o "servidor A" estiver com perda de pacotes, isso retardará a entrega para o restante dos alvos. Isso pode ser mitigado nas versões atuais do rsyslog, definindo "filas de ação" adicionais, que paralelizam a saída.

2.) O "QueueSize" para uma fila assistida por disco só se aplica à parte na memória. A fila de discos será ilimitada, a menos que você especifique "QueueMaxDiskSpace"

3.) Não obtive uma resposta conclusiva se a marca de mensagem de descarte seria aplicada às partes de memória e disco de uma fila assistida por disco. A lógica sugeriria que funciona em todas as novas mensagens recebidas, independentemente de onde estejam armazenadas, mas isso é apenas um palpite.

    
por 28.10.2014 / 23:24

Tags