Le développement de Graylog a débuté en 2010 et ressemblait à ceci en version 0.9.x :
Aujourd’hui, Graylog est disponible en version 2.0 et ressemble plutôt à cela :
L’équipe en charge du développement a su améliorer l’outil au fur et à mesure en écoutant les besoins de la communauté des utilisateurs. Cette nouvelle mouture en version 2.0 apporte de nombreuses nouveautés. Voyons les améliorations disponibles :
Elasticsearch 2.0
Le stockage des logs est assurés par Elasticsearch qui était jusqu’à présent en version 1.x. Pour tirer profit des dernières nouveautés d’Elasticsearch 2, il vous faudra mettre à jour votre cluster. Une documentation (en anglais) est disponible pour l’upgrade.
Le serveur et l’interface Web ne font plus qu’un
Actuellement, il fallait installer la brique serveur ET la brique interface web. Désormais, l’ensemble des fonctionnalités sont disponible dans un seul package ce qui offre plusieurs avantages :
- une installation plus simple à réaliser
- une réécriture complète de l’interface web en react.js qui a permis d’enlever des limitations/bugs qui existaient dans la précédente version
- la possibilité d’étendre les fonctionnalités de l’interface web grâce aux plugins
Tail -f et messages du contexte
Deux nouveautés étaient très demandées : la première correspondant à l’équivalent de la commande shell « tail -f » pour avoir un rafraîchissement automatique de la page afin d’avoir les derniers messages. La deuxième permet d’afficher les messages qui entourent un log précis : cela permet d’en savoir plus sur le contexte dans lequel se trouve le log en question.
GeoIP et Map Widget
Grosse nouveauté là aussi, il est possible dans cette nouvelle version de mapper automatiquement une adresse ipv4 ou ipv6 avec une position géographique (latitude, longitude). Cela se fait en configurant le plugin « GeoIP resolver » (installé de base). Pour cela, il vous faudra :
- télécharger la base de données sur le serveur dans le dossier de votre choix. Base de données que vous pouvez trouver ici.
- activer et configurer le plugin GeoIP resolver en spécifiant le chemin sur disque e la base de données
- et c’est tout 🙂
Pipeline de messages
Le pipeline de messages est une grosse nouveauté qui permet de configurer depuis l’IHM le routage des messages. Il est possible de configurer des règles pour masquer certains champs comme des numéros de CB, de blacklister certains messages, de router selon vos propres règles les messages dans des streams, …
L’objectif est de simplifier les différents outils qui existaient actuellement à différents endroits comme les extracteurs, les règles drools, les règles pour les streams, …
C’est une partie qui est encore jeune et qui devrait évoluer dans le bon sens dans les prochaines mises à jour. Cette nouvelle fonctionnalité mérite un article complet.
Graylog Entreprise
Il est intéressant de noter également que cette version 2.0 marque également le lancement du premier plugin commercial : un plugin d’archivage. Rassurez-vous, Graylog est et reste open-source et la société derrière Graylog compte bien continuer à ajouter des fonctionnalités au fur et à mesure. Mais pour répondre au besoin des grandes entreprises, certains plugins plus poussés pourront être payant. Actuellement, la partie Entreprise est facturée USD $1,500 par an et par instance de graylog-server.
Pour finir, vous retrouverez les liens de téléchargement sur cette page.
Vous pouvez également tester très rapidement cette nouvelle version avec Docker :
$ docker run --name some-mongo -d mongo
$ docker run --name some-elasticsearch -d elasticsearch elasticsearch -Des.cluster.name="graylog"
$ docker run --link some-mongo:mongo --link some-elasticsearch:elasticsearch -d graylog2/server
Bonjour,
Merci pour ce billet très intéressant, il y a cependant une petite coquille sur les commandes docker. Il faut utiliser –name pour spécifier le nom du container et –link pour le lien dans la dernière commande :
$ docker run –name some-mongo -d mongo
$ docker run –name some-elasticsearch -d elasticsearch elasticsearch -Des.cluster.name= »graylog »
$ docker run –link some-mongo:mongo –link some-elasticsearch:elasticsearch -d graylog2/server
++
Fabien.
Bonjour Fabien,
Merci pour cette remarque, certains tirets ont en effet disparu. A noter qu’il y a désormais un docker-compose pour tester encore plus facilement 🙂 cf : https://gist.github.com/sebclick/e556d4be1ad89310d4f0adf458ef9eb2
Yep, beaucoup plus pratique avec le docker-compose 🙂
Petite dernière remarque :
Sur la commande docker avec elasticsearch il faut bien spécifier que l’on prend la version 2 (graylog ne fonctionne pas avec une version 5).
++
Bonjour,
Serait-il possible d’avoir un lien vers un tutoriel complet pour l’installation et la configuration de Graylog2 svp ?
Et que me conseillez-vous pour envoyer les logs d’une machine Windows vers le serveur Graylog ? (J’ai trouvé NxLog mais je ne connais pas)
Merci beaucoup,
Cordialement,
Sébastien
Bonsoir Sébastien,
Tu trouveras les informations pour l’installation sur la doc officielle (en anglais) à cette adresse (version 2.2 actuellement) : http://docs.graylog.org/en/2.2/pages/installation.html
Pour l’envoi des logs depuis une machine Windows, il y a en effet NxLog qui est très souvent utilisé. C’est notamment ce qui est utilisé dans l’académie de Rennes : cf http://asiqaaw.cluster031.hosting.ovh.net/2015/05/graylog-au-rectorat-dacademie-de-rennes/