1

Я пытаюсь ввести файл pcap вasticsearch. Поэтому я сначала конвертирую файл pcap в json следующим образом:

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

Затем я хочу загрузить его вasticsearch следующим образом:

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

Но это терпит неудачу со многими ошибками, говоря, что в json есть повторяющиеся поля. Я читал, чтоasticsearch 6.0 больше не принимает дубликаты ключей. Я проверил, и мой файл JSON содержит много дубликатов ключей. Но я прочитал это

tshark -T ek

предполагается, что он сам себя не дублирует, а опция --no-duplicate-keys, похоже, исчезла (у меня версия tshark 2.2.6).

Итак, как мне получить мои данные pcap вasticsearch?

2 ответа2

1

Я была такая же проблема. По-видимому, в новейшей версии для разработчиков (2.5.1) это исправлено. Если вы используете Windows, это очень просто: просто скачайте установщик с https://www.wireshark.org/download.html и установите его. Если вы используете Linux, как я, вам нужно скачать исходный код оттуда и собрать wireshark из исходного кода. Для этого я посчитал эти источники полезными: https://scottlinux.com/2013/06/07/how-to-install-the-latest-wireshark-from-source-on-debian-or-ubuntu-linux/

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

0

Передайте данные в любой другой анализатор JSON (а затем дамп обратно в JSON). Большинство парсеров имеют возможность спокойно игнорировать дубликаты полей, сохраняя первое или последнее поле.

Например, инструменты командной строки jq или jshon могут быть использованы:

$ echo '{"foo": "111", "bar": "222", "foo": "333"}' | jq .
{"foo": "333", "bar": "222"}

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .