Journal FlowG sort en version v0.10.0 avec beaucoup de nouveautés

Posté par  (site web personnel) . Licence CC By‑SA.
13
11
sept.
2024

Bonjour Nal!

Il y a presque un mois, je te présentais FlowG, une solution de traitement de journaux (systèmes).

Depuis, beaucoup de choses ont évoluées, le développement est très actif malgré le fait que je sois (pour l'instant ?) le seul développeur.

Liens

Les nouveautés

⚡ La question des performances

C'est LA question que les gens ont a l'esprit quand on parle de journalisation. Combien de données je peux lui faire ingurgiter ?

Un très bête test, qui envoie un million de message, sur ma machine personnelle, montre que la solution est capable de recevoir en moyenne 2000 messages par seconde. Test faussé par le fait que plusieurs autres gros programmes tournent sur ma machine, et également faussé par les I/O désastreuses du système de fichiers de Windows.

J'ai commencé à monter une petite infrastructure avec Saashup (l'entreprise de mes collègues à $emploi_actuel) pour faire des tests de performances plus sérieux, avec usage CPU/RAM en bonus.

Un petit soucis de performance de l'affichage a été corrigé. En gros, je générais naïvement côté serveur une <table> avec les journaux. Sauf qu'après plusieurs dizaines de milliers de messages, l'onglet Chrome arrivait à court de mémoire. La solution fut de générer cette table dans un <template> et d'utiliser la bibliothèque Virtual Scroller pour n'afficher que les messages visibles (et ainsi sauvegarder la précieuse mémoire vive de votre ordinateur).

🔒 Contre l'insécurité

La première version que je vous avais présenté était "open bar". C'est pourquoi le premier gros changement fut l'introduction d'un système d'authentification et d'ACL pour restreindre l'accès à la solution, et permettre à l'Administrateur Système de configurer différents profils d'utilisateur.

NB: A partir de la v0.10.0, l'image Docker abandonne ses droits "root" pour tourner en tant qu'utilisateur normal.

💄 I'm sexy and I know it

On passe de :

capture d'écran v0.1.0

à :

capture d'écran v0.9.0

Avec l'ajout du "Glisser / Déposer" qui est franchement plus ergonomique.

🗃️ Amélioration du modèle de données

Dans la première version, on indexait absolument tout les champs d'un "Stream". Très pratique quand on a des champs comme timestamp ou message qui changent très souvent. C'est la solution parfaite pour remplir votre disque et pourrir les performances.

C'est désormais corrigé. Avec l'ajout en plus de paramètre de "rétention" basé sur :

  • le temps
  • l'espace disque

On peut ainsi mieux contrôler ce qu'on stocke dans la solution.

🧩 Réutiliser des pipelines

C'est un changement presque anodin, mais pourtant bien puissant. On introduit un nouveau type de "noeud" permettant de transmettre un log à une autre pipeline. On évite ainsi les pipelines gigantesques.

🔗 L'interopérabilité

Enfin, la v0.10.0 ! Ici on ajoute le concept "d'Alerting". Rien de vraiment révolutionnaire, on offre ici la possibilité d'envoyer le log via requête HTTP POST à une "webhook". Cela permet d'utiliser un service tiers comme Zapier pour ensuite envoyer des courriers électroniques, ou d'autres services.

On notera aussi dans cette nouvelle version une mise à jour de VRL qui intègre la fonction parse_influxdb, permettant d'interpréter les journaux de InfluxDB.

L'intéropérabilité, c'est ce sur quoi je vais me concentrer à partir de maintenant…

✅ La "roadmap"

Au programme des futures versions :

  • serveur Syslog pour que l'administrateur système puisse rediriger ses logs via UDP
  • serveur Graylog pour recevoir des messages au format GELF
  • endpoint API compatible avec Splunk

L'idée ? Faciliter la migration, faciliter l'intégration dans votre infrastructure, bref : vous faciliter la vie.

Conclusion

Comme vous avez pu le lire, pas mal de changements ont eu lieu, et pas mal de changements sont encore à venir.

Tout retour d'expérience est bienvenue. Et si vous souhaitez installer et tester FlowG dans votre infrastructure, n'hésitez pas à me contacter directement, je me ferais un plaisir de vous accompagner. Si votre entreprise le veut bien, on peut même faire ça sous contrat avec du support à la clé ;) Cela aiderait à financer le projet pour s'assurer qu'il reste maintenu.

A propos de ça d'ailleurs, le projet est actuellement sous licence MIT, j'ai parlé plus haut de vouloir offrir du service autour du logiciel (support, migration, audit, …), mais je tiens à ce qu'il reste libre. J'ai toujours été "anti GPL", mais je pense que si je laisse le logiciel sous une licence trop permissive, je ne pourrais pas garantir que ce dernier reste "Open Source". Donc je vous invite a me convaincre de choisir la bonne licence Copyleft.

  • # Licence

    Posté par  (site web personnel) . Évalué à 7. Dernière modification le 11 septembre 2024 à 08:20.

    « J'ai toujours été "anti GPL", mais je pense que si je laisse le logiciel sous une licence trop permissive, je ne pourrais pas garantir que ce dernier reste "Open Source". Donc je vous invite a me convaincre de choisir la bonne licence Copyleft. »

    Si la GPL ne convient pas et qu'il faille garantir que le logiciel reste sous Copyleft, L'AGPL semble faite pour vous :-) ! De surcroît, ce sont les mêmes initiales qu'anti GPL ; que demander de plus ? Un déplacement d'espace et hop.

    Je sais :
    --------->[]

    « IRAFURORBREVISESTANIMUMREGEQUINISIPARETIMPERAT » — Odes — Horace

    • [^] # Re: Licence

      Posté par  (site web personnel) . Évalué à 7.

      Ce qui montre bien que la GPL est la meilleure licence copyleft à choisir par défaut. :)

      Adhérer à l'April, ça vous tente ?

  • # Alerting

    Posté par  . Évalué à 1.

    Bonjour

    j'ai bien envie de tester ce nouvel outil. A ce propos, vers quel autre gestionnaire d'alertes puis-je me tourner? Je ne connais pas ce segment de logiciels…

    Cordialement

    • [^] # Re: Alerting

      Posté par  (site web personnel) . Évalué à 2.

      Pour mon test, j'ai utilisé Zapier pour créer une Webhook et transmettre les messages sur un Slack. Zapier te permettra également d'envoyer des mails, d'ouvrir des tickets Jira, etc… C'est un outil assez complet.

      A $emploi_actuel on compte utiliser les webhook de AWX pour déclencher l'exécution de job Ansible lors de la réception de certains types de logs.

      En fait, comme derrière c'est une simple requête HTTP POST, tu fais ce que tu veux.

      Ce que je vois beaucoup au boulot, c'est du Prometheus+AlertManager, du Grafana + Grafana Alerting, du Splunk ou Datadog. On a aussi du SNMP. Et les notifications de tout ces systèmes sont ensuite envoyées par mail aux équipes concernées.

      https://link-society.com - https://kubirds.com - https://github.com/link-society/flowg

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.