Insertion des données
Dans cet exercice nous allons insérer des logs aux formats JSON dans elasticSearch pour pouvoir les exploiter avec Kibana par la suite.
Il est très important de configurer le bon type de données lorsque l'on ajoute des donnée à une base elasticsearch. En effet, les chaînes de caractères sont analysées par la suite mot par mot en coupant les phrases sur les espaces et en enlevant la ponctuation. À chaque mot correspondra un pourcentage d'apparition utilisé pour tirer les données selon leur pertinence.
Pattern des logs
Le schéma pour l'ensemble de données de logs a des douzaines de champs différents, mais les notables utilisés dans cette contribution sont :
{
"machine.os": String,
"response": String,
"geo.coordinates": "geo_point"
"@timestamp": "date"
}
Question
Créer un index logstash-2015.05.18 avec son mapping dans elasticsearch avec Sense, la donné machine.os ne doit pas être analysée.
geo.coordinates est de type "geo_point" qui est complexe est nécessite d’apparaître dans la définition de l'index.
pour indiquer qu'un champ ne doit pas être analysé, la syntaxe est :
"champ":{
"type":"type_du_champ", "index" : "not_analyzed"
}
geo et machine comportent plusieurs sous champs, la structure est la suivante pour les définir :
"objet": {
"properties": {
"champ": {
"type": "type_du_champ"
}
}
}
PUT /logstash-2015.05.18
{
"mappings": {
"log": {
"properties": {
"geo": {
"properties": {
"coordinates": {
"type": "geo_point"
}
}
},
"machine":{
"properties": {
"os":{
"type":"string", "index" : "not_analyzed"
}
}
}
}
}
}
}