[Filebeat] Postgres module


(Youba Yt ) #1

Bonjour à tous,

Je suis débutant sur Elastic Stack, après l'installation et l'utilisation de quelques dashboards j'ai voulu intégrer quelques modules.

Avec Filebeat mon problème est que je récupère des logs postgresql (en suivant ce qui est proposé dans kibana) et ensuite j'importe mon dashboard (filebeat setup) je récupère bien les logs mais impossible de les afficher.. Voici le message "d'erreur" : Provided Grok expressions do not match field value

merci à tous


(Gabriel Tessier) #2

Bonjour,

Juste au cas ou si t'as pas déjà trouvé une solution, y'a un cas qui semble similaire ici avec une date mal formatée :


(Youba Yt ) #3

Merci pour ton aide! Je n'ai toujours pas de solutions, il y a bien un problème de date.
Mon @Timestamp de mon json n'est pas bon, après modification et ajout de "Europe/Paris" en Timezone, l'heure change mais ne match toujours pas car il est une heure de moins que le fichier..


(Gabriel Tessier) #4

Un problème a la fois. Ton poste initial été a propos d'une erreur Grok?
Juste pour confirmer ce problème est résolue ?
Si tu peux mettre ta solution ça peux aider d'autres personnes :grinning:

Si ton problème initial est résolu maintenant t'as un problème de timezone (de ce que je comprends de ta nouvelle question).
La modification de Timezone a été faite dans Kibana ?

Tu peux interroger directement ton index pour comprendre si l'heure dans ton index est correct si c'est le cas c'est un problème d'affichage et donc faut effectivement chercher dans la configuration de Kibana.


(Youba Yt ) #6

Alors, mon problème du début est toujours présent mais suppose que le problème viens peux être de la Timezone ? Je vous joins le screen d'une requête par Filebeat.

Ce que je récupère dans mon dashboard mais qui n'est pas affiché :

Le json associé, on remarque que dans "message" l'heure est bonne, mais celle ligne viens directement de mes logs avec la bonne timezone. Parcontre je sais pas si c'est normal mais plus bas le @timestamp n'est pas bon, normal ou pas du tout? Sinon comment le modifier?


(Gabriel Tessier) #7

Je pense qu'il faut commencer par corriger l'erreur grok pour formater correctement la date.
Si tu utilises Logstatsh tu peux regarder ici y'a une discussion sur comment debugger Grok:

Si c'est avec ingest (i.e sans Logstatsh) j'avais eu un problème de date avec le plugin nginx mais j'ai pas mes notes sous la main, je peux recherche comment j'ai fait pour debugger.


(Youba Yt ) #8

Je vais essayé de me mettre à logstash, je voulais éviter car je suis une bille en dev. :sweat_smile:

ça marche merci de ton aide


(Youba Yt ) #9

J'utilise ingest, étant donné que je sais pas utiliser logstash


(Gabriel Tessier) #10

En faite je pensais avoir trouvé le graal pour debugger avec ingest mais j'avais juste suivi la doc :sweat_smile:

Pas besoin de logstash ingest est suffisant (du moins pour formater la date) , faut juste que tu GET ton pipeline pour postgres et tu utilise simulate avec un doc qui contienne tes données, tu changes dans tous les sens le pipline jusqu'a ce que ça passe. :grinning:
La doc est suffisamment claire et avec la dernière version t'as beaucoup plus de processors.

Désolé de pas aider plus.
la doc pour debugger
https://www.elastic.co/guide/en/elasticsearch/reference/current/simulate-pipeline-api.html
la liste des processors
https://www.elastic.co/guide/en/elasticsearch/reference/current/ingest-processors.html


(Youba Yt ) #11

J'ai du mal à comprendre, en gros je GET mon pipeline (GET _ingest/pipeline), mais je vois pas trop comment exécuter le simulate et à quoi il sert? c'est simplement pour tester non? en gros je fais la simulate avec mes conditions derrière ?


(Gabriel Tessier) #12

le get ingest pipeline doit te retourner le pipeline pour postgres un truc du genre filebeat-1.2.3-postgres-abc avec une définition des filtres

{
"description": "Blablabla.",
"processors": [
{
"grok": {
.....

Tu fais une requete simulate avec la définition et un document comme explique dans la doc.

Ca devrait te renvoyer le même message que ton premier post

Provided Grok expressions do not match field value

A partir de la et avec l'aide des processors tu devrais pouvoir debuger et adapater a ton format de donnees une fois que ton simulate te retourne une réponse satisfaisante tu update ton pipeline.

J’espère que j'ai été claire dans mes expliquements... :face_with_raised_eyebrow:


(Youba Yt ) #13

Merci de ton aide je vais essayer ça, je te redis demain :slight_smile:


(Youba Yt ) #14

J'arrive bien avec le GET, je récupère bien les filtres, par contre pour le document je suis perdu.
Screen de mes commandes :

Ou dois-je mettre le "doc" ? Sous quel format ? Car quand je rentre le chemin (/var/..etc ) une erreur apparait.

Merci de ton aide


(Gabriel Tessier) #15

Si tu suis la doc tu devrai avoir ce format:

POST _ingest/pipeline/_simulate
{
  "pipeline" : {
    // pipeline definition here
  },
  "docs" : [
    { "_source": {/** first document **/} },
    { "_source": {/** second document **/} },
    // ...
  ]
}

D'ailleurs d’après ta capture d’écran l'erreur te dis qu'il manque la propriété docs, tu rajoutes ton doc comme ci-dessus.

Si t'avais copié un contenu au lieu de mettre une capture d’écran j'aurai pu copier coller et formater un exemple...

Pour ta commande utilise:
POST _ingest/pipeline/_simulate
au lieu de POST _ingest/pipeline/filebeat-6.6......

Je ne sais pas quel définition de pipeline va être prise en compte... bref vaut mieux être bête et discipliné et suivre la syntaxe de la doc.

Désolé si je ne suis pas assez claire j'ai du omettre des phases et c'est pas évident quand on débute, hésite pas a redemander.
Si tu copie du code ça sera plus facile pour t'aider que les captures d’écran.