J'ai installé elasticsearch et Kibana pour l'indexation de nos journaux d'application (d'erreur). Le problème est que Kibana n’affiche aucune donnée dans l’onglet "Découvrir".
Situation actuelle
http://elasticserver.com:9200/applogs/_search?q=*
renvoie de nombreux résultats (voir ci-dessous la présentation d'un seul enregistrement trouvé).applogs
exposé par Elasticsearchapplogs
Des idées??
Voici comment Kibana voit l'index applogs
:
L'objet de résultat de requête de recherche élastique ressemble à ceci:
{
_index: "applogs",
_type: "1",
_id: "AUxv8uxX6xaLDVAP5Zud",
_score: 1,
_source: {
appUid: "esb.Idman_v4.getPerson",
level: "trace",
message: "WS stopwatch is at 111ms.",
detail: "",
url: "",
user: "bla bla bla",
additionalInfo: "some more info",
timestamp: "2015-03-31T15:08:49"
}
},
..et ce que je vois dans l'onglet découvrir:
Pour les personnes qui ont un problème comme ceci:
Changer le cadre temporel dans le coin supérieur droit.
Par défaut, il affiche data uniquement pour les 15 dernières minutes .
Je voulais mettre cela comme un commentaire, mais malheureusement, je ne suis pas en mesure de donner mon repo déficient pour le faire. Ainsi, comme @Ngeunpo l'a suggéré, voici comment ajouter un champ de temps à un index tout en le créant:. Si vous ne l'avez pas fait lors de la création de votre index, je vous suggère de le supprimer et de le recréer. Le nom d'index logstash- * dans le gif est analogue à votre index applogs. Dans ce cas, le champ @ horodatage est ajouté en tant que champ heure. Laissez-moi savoir si cela fonctionne.
EDIT: Image reproduite avec courtoisie: This Guide d'installation merveilleux d'ELK
Kibana ne comprend pas le champ timestamp, si son format est incorrect .Timestamp, que vous avez sélectionné en cliquant sur Nom du champ temporel lorsque Configurer un modèle d’index, doit être:
"timestamp":"2015-08-05 07:40:20.123"
alors vous devriez mettre à jour votre mapping d'index comme ceci:
curl -XPUT 'http://localhost:9200/applogs/1/_mapping' -d'
{
"1": {
"timestamp": {
"enabled": true,
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss.SSS",
"store": true
}
}
}'
Voir cette question et réponse
METTRE À JOUR
Si vous utilisez ES 2.X, vous pouvez définir le "format"
sur "Epoch_millis"
comme suit:
curl -XPUT 'http://localhost:9200/applogs/1/_mapping' -d'
{
"1": {
"timestamp": {
"type": "date",
"format": "Epoch_millis",
"store": true,
"doc_values": true
}
}
}'
image exemple pour ELK créant un index ou un motif
Essayez ceci: décochez la case "Index contenant les événements temporels" Puis indiquez votre nom d'index, puis cochez "Découvrir" pour savoir s'il contient des données ou non.
J'ai eu le même problème et cela a fonctionné pour moi:
Je suis sûr que les problèmes liés à Time-Series peuvent également être un problème, mais si aucun champ n'apparaît réellement dans l'onglet Découvrir, vous risquez d'avoir le même problème que celui du journaliste d'origine et de ce que j'avais.
J'avais probablement le même problème - je vois des données dans le tableau de bord mais 0 résultats dans Discover. Aller dans Gestion> Modèle d'index> Bouton Actualiser la liste des dossiers (un bouton avec une icône d'actualisation uniquement) m'a résolu le problème.
J'avais le même problème et le commentaire de @ tAn- m'a aidé à le résoudre. Changer le champ de date en @timestamp a fait l'affaire. Merci!
La prochaine étape devrait être de trouver ce qui n'allait pas avec le champ de date personnalisé my.
Non pertinent pour OP, mais si votre instance Kibana se bloque lorsque vous essayez de la faire reconnaître votre index (sous Paramètres> Indices), voir https://github.com/elastic/kibana/issues/6419 qui a corrigé le problème pour moi aussi.
J'ai aussi vécu la même erreur. Cela est principalement dû au format de l'heure. Fondamentalement, assurez-vous que vous avez un laps de temps valide pour vos données (filtre en haut à droite). Quoi qu'il en soit, dans mon cas, j'ai utilisé le format d’heure Epoch pour l’horodatage, mais cela n’a pas fonctionné. J'ai donc changé pour Epoch_millisec à la place et cela a fonctionné comme un charme.
En résumé, assurez-vous que Kibana peut comprendre votre format de date et heure. C'est obligatoire Epoch_millisec par défaut, pas seulement Epoch.
J'ai eu le même problème, mais maintenant ça marche très bien ... Le problème était avec l'horodatage. En fait, j'ai téléchargé le fichier dans elasticsearch
à l'aide de logstash
, de sorte qu'il génère automatiquement un champ @timestamp. Kibana
compare la plage de temps avec ce @ horodatage, c'est-à-dire quand l'événement réel s'est produit. Même si je désélectionne l'option "Index contient des événements temporels" dans la page d'ajout d'un nouveau modèle d'index, kibana
prendra automatiquement en compte le champ @timestamp.So bascule avec la période sur kibana
en fonction du champ @timestamp travaillé pour moi . Vous pouvez également vérifier en ajoutant un motif d'index sans horodatage et désélectionnez "Index contient les événements en fonction du temps "option.Voir ce qui se passe .. maintenant, il n'y aura plus d'option de sélection de la période dans kibana
page de découverte et vous obtiendrez probablement le résultat dans la page de découverte . Ce sont toutes mes observations, je ne suis pas sûr, cela la solution s'adapte à votre cas ..vous pouvez essayer .. J'utilise ES 1.5x, logstash 1.5.1 et kibana 4.1.0
J'avais le même problème. Ainsi, comme le montre l'une des solutions ci-dessus, je suis allé dans les paramètres, j'ai supprimé l'index précédent et créé un nouvel index avec @timestamp.
Mais cela n'a pas résolu le problème. J'ai donc examiné la question et constaté qu'après un déploiement, rien n'entrait à Kibana.
Alors, je suis entré dans le serveur et j'ai vu que les index étaient corrompus. SO Je viens d'arrêter logstash et elasticsearch sur l'instance/le serveur et de redémarrer le service. Et voilà, il a redémarré le service et kibana était de retour.
POURQUOI DID IL ARRIVE?
Quelqu'un a peut-être arrêté le serveur brusquement, ce qui a corrompu les index.
Dans ma situation, tout fonctionnait auparavant et je ne pouvais pas voir les dernières données à partir du 1er février (en fait, je le pourrais si je regardais en arrière un mois). Il se trouve que le format de mappage de mon champ temporel personnalisé était incorrect. Mon format de mappage était YYYY-MM-DD'T'HH:mm:ss.SSSZ
. Le problème était que DD
est interprété comme le jour de l'année et que je voulais le jour du mois qui est dd
. Le changement de mappage et la réindexation ont résolu le problème.