Localisation des logs

Bonjour, je suis un petit nouveau sur ELK, et en tant que stagiaire je dois expliquer a mon maitre de stage le fonctionnement d'ELK.

Mais il y a une chose que je ne comprend pas où son stocké les logs indexer par Logstash ?

Et est il possible de trier l'indexation pour ne pas indexer tous les logs ayant une severity inutile ?

En vous remerciant d'avance de votre aide

Je ne suis pas un expert dans le sujet car je n'utilise que la partie Elasticsearch (et légèrement Kibana).

Mais il me semble que par défaut, ELK doit générer un index / jour dans elasticsearch contenant les logs de la journée (c'est configurable pour la période je pense).

Au niveau du tri lors de l'indexation des logs, oui, côté Logstash, il est possible de rajouter des conditions pour ignorer une donnée si elle ne correspond pas. Peut-être que dans ce cas de figure basique il y a même plus simple pour ignorer les lignes de logs inintéressantes.

Après, on peut également filtrer dans Kibana pour ignorer les niveaux que l'on ne souhaite pas traiter mais tout de même les avoir tous dans l'index.

je te remercie j'ai trouvé les index (ils sont dans /var/log/elasticsearch pour mon cas)

Et pour la configuration de Logstash, tout ce fait dans le filter ? où autre part.

Car indexer des logs "Mr X s'est connecté" ne m'importe rien et m'est inutile, c'est donc pour cela que je veux les filtrer

Cela me surprend que les logs indexés via logstash soient dans /var/log/elasticsearch. Normalement ce dossier devrait servir à stocker les logs d'exécutions d'elasticsearch (dans /var/log/apache2 par exemple, on aura le log du serveur apache seulement). Les indexes en eux même sont stockés dans un autre dossier je pense.

Dans les filters de logstash tu peux régler pour ignorer un niveau à partir du quel tu envoies réellement à ES mais je n'ai jamais eu à l'utiliser car en production, on configure nos programmes pour ne pas sortir les logs d'un certain niveau si l'on n'est pas intéressé par ces derniers. Du coup, logstash ne recoit que des logs que l'on voudra indexer.

Si tu veux vraiment filtrer, j'ai trouvé ce plugin logstash qui vu l'exemple au début semble correspondre à ce que tu veux faire : https://www.elastic.co/guide/en/logstash/5.0/plugins-filters-drop.html

PS : En fonction de la version d'elasticsearch / logstash / kibana que tu utilises, je te conseille de l'appeler "Stack Elastic" avec éventuellement en précision : "Anciennement ELK". C'est le nouveau nom officiel et cela témoigne que tu es à jour sur la techno :wink:

1 Like

Tu as entièrement raison j'ai dit cela hier mais en revérifiant ce matin, c'est bien les logs d'exécutions d'elasticsearch qui y sont stocké.

Sur kibana, dans mes logs du 01/02 il y a marqué : _index: logstash-2017.02.01

Et lorsque je fait un locate de ceux-ci ils me disent qu'ils sont dans :

/var/lib/elasticsearch/ElasticSearch/nodes/0/indices/logstash-2017.02.01/3/index/

Mais ensuite il y a des fichiers qui sont cryptés que dois je faire ?

Pourquoi veux-tu aller voir sur le disque dur des fichiers internes à elasticsearch?

Bien enfaite, je dois faire un POC (preuve de concept) à mon maître de stage sur ELK, et s'il me demande "où son stocké les logs ?"

Je veux pouvoir lui répondre

Merci, j'ai suivi ton lien et je ne recois plus les log ayant une severity "INFO"

Tu lui répondras: sur le disque local des noeuds elasticsearch.

Il n'y a donc pas un moyen de pouvoir les afficher ?

De lire directement les fichiers ? Je ne pense pas. La structure des fichiers est définie par ES et tu ne pourras pas les exploiter.

Je pense que le plus intéressant a été dis par David. Les fichiers de l'index sont répartis sur les disques locaux de chaque serveurs possédant un noeud de cet index. Le path que tu as trouvé me semble cohérent si tu veux le mentionner mais il ne sera pas exploitable tel quel. Pour information, si besoin, on peut changer dans la config d'ES le dossier où seront stockés les fichiers (au lieu de "/var/lib/elasticsearch") il me semble.

Si tu voulais le path pour en faire des backup, il ne faut pas procéder ainsi mais utiliser l'API dédiée (https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html)

Je vous remercie d'avoir répondu à mes deux questions :slight_smile:

Si j'ai besoin d'aide je vous redemanderai sans hésitation

1 Like

Pour afficher le contenu des logs que tu as indexés, il faut faire une recherche (un appel Http REST). Genre:

GET mon_index_des_logs/_search

Tu "verras" du coup tes logs.

Je te remercie de ta réponse, au moins je pourrais apporter une réponse à la question "où sont les logs ?"

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