3 votes

Échec du transfert de rsyslog

J'ai un serveur centralisé rsyslog A qui reçoit un tas de journaux via TCP depuis les serveurs X, Y, Z. Il stocke ensuite les fichiers sur le disque mais les transmet également au serveur logstash B (sur une autre machine). Pour le relais vers le serveur logstash B, j'utilise TCP comme suit :

$template logstash_json,"{\"@timestamp\":\"%timestamp:::date-rfc3339,jsonf:@timestamp%\",\"@source_host\":\"%source:::jsonf:@source_host%\",\"@source\":\"syslog://%fromhost-ip:::json%\",\"@message\":\"%timestamp% %app-name%:%msg:::json%\",\"@fields\":{\"facility\":\"%syslogfacility-text:::jsonf:facility%\",\"severity\":\"%syslogseverity-text:::jsonf:severity%\",\"program\":\"%app-name:::jsonf:program%\",\"pid\":\"%procid:::jsonf:processid%\"}}"

$WorkDirectory /var/cache/rsyslog # default location for work (spool) files - make sure it's created
$ActionQueueType LinkedList   # use asynchronous processing
$ActionQueueFileName srvrfwd  # set file name, also enables disk mode
$ActionResumeRetryCount -1    # infinite retries on insert failure
$ActionQueueSaveOnShutdown on # save in-memory data if rsyslog shuts down

# Ship logs over TCP to logstash
*.*                                             @@server_B:2514;logstash_json

Chaque fois que mon serveur logstash est en panne ou inaccessible, après un certain temps, le rsyslog centralisé sur le serveur A ne répond plus et, par conséquent, mes serveurs X, Y, Z commencent à geler ou à avoir des charges élevées inattendues lorsque les services essaient d'écrire dans le syslog.

Comment puis-je configurer rsyslog (côté serveur et/ou côté client) pour qu'il soit plus robuste à ce point de défaillance ?

Question secondaire : à chaque fois que le serveur logstash est redémarré, rsyslog ne lit pas les logs stockés dans /var/cache/rsyslog, quelqu'un sait comment configurer cela ?

3voto

Martin M. Points 6418

Vous devez configurer la mise en file d'attente dans rsyslog, une discussion pertinente est ici :

http://help.papertrailapp.com/discussions/problems/1983-ubuntu-network-hang-up-on-failures-to-reach-papertrail

Il s'agit de la partie pertinente de la réponse -- je suppose que vous consulterez les directives dans la documentation actuelle avant s :

En ajoutant le texte suivant juste avant *.* @@logs.papertrailapp.com et redémarrer rsyslog devrait faire l'affaire :

$ActionResumeInterval 10
$ActionQueueSize 100000
$ActionQueueDiscardMark 97500
ActionQueueHighWaterMark 80000
Type de file d'attente d'action (ActionQueueType LinkedList)
ActionQueueFileName papertrailqueue
$ActionQueueCheckpointInterval 100
$ActionQueueMaxDiskSpace 2g
$ActionResumeRetryCount -1
$ActionQueueSaveOnShutdown le
$ActionQueueTimeoutEnqueue 10
ActionQueueDiscardSeverity 0

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X