Projet d’Inventaire, Monitoring et scheduler [Elastics Stack]

Bonjour,
J'avais ouvert un précédent topic qui a été fermé pour inactivité de ma part.
Désolé, nous avons eut un autre projet plus urgent jusqu’à la semaine dernière qui a mis celui-ci en "pause".

Nous avons approfondi nos recherches, notamment sur Elastic Stack et effectivement avec des beats (Metrics et 1 ou 2 autres) cela nous semble très bien pour le monitoring/inventaire. Par contre nous devrons quand même développer notre tasks scheduler.
Nous avons pensé à une architecture mais nous ne somme pas sûr de sa faisabilité à cause de quelques points sombres:

Kibana

Permet-il seulement de visualiser les données ? Ou aussi d'en insérer ? Par exemple depuis un formulaire pour que nous puissions gérer nos scripts (nom, upload de fichier, ...) ?

Logstash

Permet-il de filtrer/transformer seulement des logs venants de Filebeat ? Ou n'importe quelle données JSON entrantes ? (transformer signifie bien "changer le format" ?)
Si j'ai bien compris : il ne peut pas recevoir de requêtes pour chercher des données dans Elastic ?

Authentification

On souhaite mettre en place un token du style JWT, autant pour les Beats que notre Agent.
J'ai cru comprendre que les Beats peuvent seulement envoyer de la données, pas aller chercher un token sur une URL. En revanche nous pouvons diriger leur Output vers une URL que l'on souhaite avec ce plugin ?

Ce qu'on a pensé

Quoi qu'il arrive notre agent aura besoin d'un mini-serveur interne. Il fera son job (faire tourner les scripts) et récupérer le token pour s'authentifier.
Nous pensions donc diriger l'output des Beats sur celui-ci.
Par exemple sur 'http://localhost:unPort/Beats/{NomDuBeat}'
L'agent aura juste à transmettre les datas des Beats dans une requête POST en définissant les headers (token, etc.)

Ce qui nous donnerai une archi comme ça :

Petit schéma

  • L'interface Web en bas sera utilsée seulement si Kibana ne nous permet pas de gérer nos scripts. Cela veut dire que nous aurions deux interfaces : Kibana pour voir le l'inventaire et le monitoring, la notre pour créer/modifier les scripts.
  • Si Logstash ne peut pas gérer (filtrer, transformer, ...) les données entrantes de nos scripts, l'Agent API les redirigera sur l'API2
  • L'API2 se charger de récupérer les scripts dans Elasticsearch et les envoyer

Puis-je avoir des avis ?
On pense qu'il est possible de faire plus simple... ?

Merci d'avance ! :slight_smile:

Bonjour,

Je pense que le plus simple c'est de prendre une demi-journée et de tester avec filebeat et metricbeat et d'envoyer les données brut dans elasticsearch (voir si ingest est suffisant pour faire les transformations nécessaires).
Je pense que cette demi-journée enlèvera pas mal de points sombre.
Si ingest n'est pas suffisant ajouter Logstash.

Je ne vois pas trop le besoin de développer un Agent (Scripts Fetch et add Token), Agent API (DMZ), si beats et ingest suffisent. Ca pourra simplifier les choses.
Après j'ai qu'une vue partielle du problème.

Concernant l'interface web pour la gestion de scripts j'avais pensé à conseiller de développer un plugin Kibana, pour avoir tout intégré, mais n'ayant aucune expérience avec Kibana je ne sais pas si c'est la meilleur idée.

Si c'est des petites modifs vous pouvez tout faire (CRUD) à partir de dev tools.

Restera le plus dur, développer le scheduler.

Juste un avis personnel et j'avais le besoin je le ferai comme ça, utiliser au maximum les batteries incluses dans elastic et faire le moins de code possible.

Si je suis pas trop hors sujet les projets suivant parlent de la même chose (pour la partie inventaire).