2017-08-04 2 views
0

Ich verwende Logstash, um JSON-Inhalt zu empfangen und dann in Protokolldateien zu schreiben. Ich habe die Grundkonfiguration gehen.Fügen Sie Ruby-Code in logstash config "output" Abschnitt

Allerdings möchte ich einige Ruby-Verarbeitungslogik unter "Ausgabe" Abschnitt der Konfigurationsdatei hinzufügen, so dass ich eingehende Inhalte in verschiedenen Dateien basierend auf der Stunde des Tages, an dem sie ankommen, ablegen kann.

Kann mir jemand auf irgendein Beispiel verweisen, wo der Abschnitt "Ausgabe" in der Konfigurationsdatei Ruby-Verarbeitungslogik hat? Ich finde keine Beispiele zum Schreiben einer solchen Logik in den Abschnitt "Ausgabe".

dank

Antwort

0

Der einzige Ruby-Code, der in einem rubin Filter im Filter Abschnitt verwendet werden kann. Im Allgemeinen bedeutet dies, dass Sie alle Ihre Logik im Filterbereich ausführen müssen und dann bedingte Ausgaben im Ausgabebereich vornehmen müssen.

Im Ausgabebereich können Sie die Ereigniswerte verwenden, die Sie im Filterbereich festgelegt haben. Sie können also herausfinden, wo Sie im Filterbereich etwas ausgeben wollen, und dann einfach den Dateinamen im Ereignis übergeben.

Wenn Sie sich Sorgen machen, dass die Werte für das Ereignis angezeigt werden, können Sie [@metadata] [whatever_here] verwenden, damit die Werte nicht im Ereignis angezeigt werden. Weitere Informationen finden Sie unter https://www.elastic.co/blog/logstash-metadata.

Sie können if/then/else im Ausgabeabschnitt verwenden, um bedingt auf einem Wert im Ereignis (oder Ereignismetadaten) unterschiedliche Ausgaben zu verwenden. Zusammen mit der %{[@metadata][value]} Syntax sollten Sie in der Lage sein, jede Ausgabe, die Sie benötigen, mit geeigneten Werten zu konstruieren.

+0

danke, ich kann jetzt bekommen, was ich will. Danke für deine Tipps –

Verwandte Themen