Importer et indexer un document JSON en plusieurs documents


(Rym Guerbi Michaut) #1

Bonjour à tous,

Après moults tentatives et un bon coup de pouce, j'ai enfin réussi à importer et indexer un document en JSON sur Elasticsearch.

Le problème est qu'il a importé 36000 lignes dans un seul document. Et Kibana ne semble pas apprécier. Quand je tente de créer un index pattern, il me sort cette erreur:
"Payload content length greater than maximum allowed: 1048576"

Je pense qu'il vaudrait mieux diviser ce document sur le critère "_source" (qui a un effectif de 96). J'obtiendrais donc 96 documents dans mon index.

Problème: Je n'arrive pas à trouver le bon paramétrage pour le faire. Est-ce possible? et si oui, comment et où le faire?

NB: Pour l'import j'ai utilisé Logstash avec HTTP Poller en input et Elasticsearch en output.

En vous remerciant par avance.


(David Pilato) #2

Cela semble vouloir dire que ce que tu as reçu en entrée de Logstash via le HTTP Poller est un seul évènement de 96 je-ne-sais-quoi.

Ca ressemble à quoi ce que tu as en entrée ?


(Rym Guerbi Michaut) #3

C'est exactement ça.

Ca ressemble à un document JSON importé à partir d'une URL. Sa structure :

  "hits": [
                {
                    "_index": "json_10meilleurs_logs",
                    "_type": "logs",
                    "_id": "AWAxmwQu-DI0q0-iRw7m",
                    "_score": 1,
                    "_source": {
                        "source1": {
                            "1": { -
                                      -
                                      -
                                      -
                                        }
                            "2": { -
                                      -
                                      -
                                      -

                                        }
                                   .
                                   .

                             "6": { -
                                      -
                                      -
                                      -



                                        },

                 "source2": {
                            "1": { -
                                      -
                                      -
                                      -



                                        }
                            "2": { -
                                      -
                                      -
                                      -



                                        }
                                   .
                                   .
                             "6": { -
                                      -
                                      -
                                      -



                                    },

et dans "-source', il y a 96 entrées qui ont chacune des valeurs contenants +60 lignes chacune pour un total de 291 lignes pour chaque entrée de source.


(David Pilato) #4

Please format your code using </> icon as explained in this guide. It will make your post more readable.

Or use markdown style like:

```
CODE
```

Je pense qu'il te faut ça: https://www.elastic.co/guide/en/logstash/current/plugins-filters-split.html


(Rym Guerbi Michaut) #5

Merci @dadoonet, j'ai passé l'après-midi sur ce problème. Après le passage en revue des paramètres de l'input plugin HTTP Poller, J'avais passé en revue tous les filtres de Logstash et j'ai dû passer à coté de celui-ci.

Merci encore pour ton aide et bonne journée

PS: j'ai mis en forme mon code :slight_smile: merci pour l'info


(system) closed #6

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.