2017-07-14 1 views
0

J'ai lu à propos de l'engagement de filebeat au moins une fois et ce que j'ai compris, c'est que jusqu'à ce que l'accusé de réception ne soit pas reçu par filebeat, cette ligne sera renvoyée (en cas de redémarrage de filebeat). Supposons maintenant, Dans ma solution, j'utilise Filebeat, Logstash, et un autre composant que logstash utilise pour le filtrage. Et après le filtrage, le logstash envoie la ligne à elasticsearch.Lorsque Logstash envoie ACK à la source d'entrée

Maintenant, voici ci-dessous les points de contrôle où l'on peut les données de perte:

  1. Filebeat a l'arrêt, sans recevoir de ack logstash - Dans ce cas, nous savons que la ligne sera envoyé à nouveau par filebeat.
  2. Supposons que Filebeat a envoyé une ligne, et que logstash lui applique un filtrage avec le composant externe, puis quand il essaie d'envoyer à elasticsearch et que logstash/elasticsearch s'est écrasé, nous perdrons ces données.

Ma question est:

Fondamentalement logstash traite les données dans l'ordre ci-dessous:

INPUT --> FILTER --> OUTPUT 

Je veux savoir à quelle étape le logstash envoie ACK à filebeat. Je veux essentiellement comprendre comment les ACKS sont envoyés et quand. J'ai essayé de le rechercher sur les sites officiels de google et ELK mais je n'ai pas obtenu l'information dans les détails.

Quelqu'un peut-il m'aider à comprendre ces détails? merci d'avance.

Répondre

1

L'entrée ACK s'activera si elle envoie les événements dans la file d'attente interne pour les agents de pipeline. C'est à ce moment que le thread d'entrée du plugin considère que l'événement est terminé.

Ce qui se passe avec les travailleurs des pipelines dépend. Si vous avez des files d'attente persistantes configurées et activées, ces tâches seront à nouveau récupérées une fois que logstash redémarrera et qu'aucune donnée ne sera perdue (si c'est le cas, c'est un bug). Si vous n'avez pas de files d'attente persistantes, ces données seront perdues.