tshark -ek erstellt doppelte Schlüssel, die elasticsearch 6.0 nicht akzeptiert

669
frank

Ich versuche, eine pcap-Datei in elasticsearch einzugeben. Also konvertiere ich zuerst die pcap-Datei in json wie folgt:

tshark -T ek -j "http tcp ip" -x -r file.pcap > file.json 

Dann möchte ich es so in die Elasticsearch laden:

curl -H "Content-Type: application/json" -XPOST 'localhost:9200/_bulk?pretty' --data-binary "@file.json" 

Dies schlägt jedoch mit vielen Fehlern fehl, die besagen, dass der Json doppelte Felder enthält. Ich habe gelesen, dass elasticsearch 6.0 keine doppelten Schlüssel mehr akzeptiert. Ich habe geprüft und meine Json-Datei enthält viele doppelte Schlüssel. Aber ich habe das gelesen

tshark -T ek 

soll sich de-duplizieren und die Option --no-duplicate-keys scheint verschwunden zu sein (meine tshark-Version ist 2.2.6).

Wie kann ich meine PCAP-Daten in die Elasticsearch einbinden?

1

2 Antworten auf die Frage

1
peaceforevery1

Ich hatte das gleiche Problem. Anscheinend behebt die neueste Entwicklungsversion (2.5.1) dies. Wenn Sie mit Windows arbeiten, ist das ganz einfach: Laden Sie einfach das Installationsprogramm von https://www.wireshark.org/download.html herunter und installieren Sie es. Wenn Sie wie ich unter Linux sind, müssen Sie den Quellcode von dort herunterladen und Wireshark aus dem Quellcode erstellen. Dafür habe ich diese Quellen als hilfreich empfunden: https://scottlinux.com/2013/06/07/how-to-install-the-latest-wireshark-von-source-on-debian-or-ubuntu-linux /

https://www.wireshark.org/docs/wsug_html_chunked/ChBuildInstallUnixBuild.html

0
grawity

Geben Sie die Daten an einen anderen JSON-Parser weiter (und sichern Sie ihn anschließend wieder in JSON). Die meisten Parser haben die Option, doppelte Felder in Ruhe zu ignorieren, wobei das erste oder letzte Feld beibehalten wird.

Beispielsweise können die Befehlszeilentools jqoder jshonverwendet werden:

$ echo '{"foo": "111", "bar": "222", "foo": "333"}' | jq . {"foo": "333", "bar": "222"} 
Danke für diesen Hinweis, aber bedeutet das, dass es keine "richtige" Methode gibt, dh die Ausgabe von tshark -T ek ist einfach nicht verwendbar? frank vor 6 Jahren 0