11 collecteurs de journaux Open Source pour la journalisation centralisée

Classé dans : Articles | 0

la différence entre les produits médiocres et les grands produits est la journalisation. Apprenez pourquoi il en est ainsi, et comment lier tout cela ensemble.

tout comme la sécurité, la journalisation est un autre élément clé des applications web (ou des applications en général) qui est mis à l’écart en raison de vieilles habitudes et de l’incapacité de voir à l’avenir. Ce que beaucoup considèrent comme des rames inutiles de bande numérique sont des outils puissants pour regarder à l’intérieur de vos applications, corriger les erreurs, améliorer les zones faibles et ravir les clients.,

avant de passer à la journalisation centralisée, examinons d’abord pourquoi la journalisation est si importante.

deux types (niveaux) de journalisation

Les ordinateurs sont des systèmes déterministes, sauf quand ils ne le sont pas.

en tant que développeur professionnel, j’ai rencontré de nombreux cas où le comportement observé de l’application a dérouté tout le monde pendant des jours, mais la clé était toujours dans les journaux. Chaque logiciel que nous exécutons produit (ou du moins devrait générer) des journaux, qui nous disent ce qu’il traversait lorsque la situation problématique s’est produite.,

maintenant, la journalisation, telle que je la vois, est de deux types: les journaux générés automatiquement et les journaux générés par le programmeur. Veuillez noter que ce n’est pas une différenciation de manuel, et me citer sur cette terminologie vous posera des problèmes. 😉

l’image ci-dessus montre ce que l’on peut appeler un journal généré automatiquement.

dans ce cas spécifique, il s’agit d’un système WordPress enregistrant une condition inattendue (un avis) lors de l’exécution de code PHP., Des journaux comme ceux — ci sont générés tout le temps sans relâche-par des outils de base de données comme MySQL, des serveurs web comme Apache, des langages et des environnements de programmation, des appareils mobiles et même des systèmes d’exploitation.

ceux-ci contiennent rarement beaucoup de valeur, et les programmeurs ne prennent même pas la peine de les examiner, sauf quand quelque chose ne va pas. Dans de tels moments, ils creusent profondément dans les journaux, essayant de comprendre ce qui a mal tourné.

Mais les journaux générés automatiquement ne peuvent aider que beaucoup., Si plusieurs personnes ont un accès administrateur à un site, par exemple, et que l’une d’elles supprime une information essentielle, il est impossible de détecter le coupable à l’aide de journaux générés automatiquement. Du point de vue des systèmes liés ensemble comme l’application, il était juste un autre jour dans le travail — quelqu’un a eu l’autorité nécessaire pour exécuter une tâche, et donc le système réalisé.

ce qui est nécessaire ici est une couche supplémentaire de journalisation explicite et étendue qui crée des pistes pour le côté humain des choses., Ce sont ce que j’appelle des journaux générés par des programmeurs, et ils forment l’épine dorsale d’industries sensibles comme la banque. Voici un exemple de ce à quoi un tel schéma de journalisation pourrait ressembler:

Source: joomlatools.com

la journalisation est power

donc, étant donné ces deux types de journaux dans un système, voici comment vous pouvez les exploiter et augmenter l’impact.

rester en avance sur le client

« Customer delight” est devenu un gadget marketing inutile, mais grâce à la journalisation, il peut être rendu très réel., Je connais des produits numériques qui surveillent leurs journaux comme un faucon, et dès qu’un client casse quelque chose sur la page, il peut appeler le client et lui proposer de l’aide.

pensez-y-quelques secondes après avoir reçu une vilaine erreur, vous recevez un appel de la société qui dit: « Hé, je comprends que vous essayiez d’ajouter cet article au panier, mais il a continué à mourir. Est-ce que je peux ajouter cette fois et terminer la commande pour vous? »

client ravi? Vous pariez!,

moral et productivité de l’équipe

Comme je l’ai déjà dit, lorsque les bogues ne sont pas suivis pendant longtemps, les développeurs de votre équipe sont frustrés et perdent de plus en plus de temps à courir après leurs queues. Et voici la chose avec le débogage-cela nécessite un esprit frais et curieux dès le début. Si un WTF pensait autant que pénètre dans votre cerveau, tout le processus va pour un tirage au sort.

et qu’est-ce qui rend le débogage difficile? D’après mon expérience, le manque de journalisation ou le manque de connaissance de la journalisation., Pour commencer, vous ne réalisez peut-être pas que votre base de données préférée n’est qu’un autre logiciel qui génère des journaux, ou vous ne vous connectez pas beaucoup dans votre application (voir les journaux générés par le programmeur ci-dessus).

je me souviens particulièrement d’un cas où l’application ne répondait pas, et personne ne savait pourquoi. Quelques jours plus tard, le coupable était la limite d’e/s de disque atteinte en raison d’un trafic excessif. Parce que n’a pris la peine de regarder là-bas, personne ne pouvait comprendre pourquoi.,

pistes D’Audit

que se passe-t-il si, deux ans plus tard, votre client dit que toutes ces commandes n’ont pas été passées par lui, mais par un pirate informatique?

quel argument aurait pour recevoir ou rejeter leur demande? Si vous avez une connexion étendue (adresse IP, date et heure, carte de crédit, etc.), alors vous serez en mesure d’analyser tout cela et de prendre une décision. Bon ou mauvais, il aura au moins une base objective, plutôt que de ressembler à un tir dans l’obscurité.

Source: signature-lit.,com

la même chose est vraie si vous êtes soumis à une lentille réglementaire ou si vous devez subir un audit tiers dans le cadre d’un nouveau projet important. Ne pas avoir un système de journalisation robuste vous montrera sous un mauvais jour.

l’Amélioration des systèmes existants

Comment faites-vous pour améliorer le système actuel?

devriez-vous simplement y jeter plus de threads de RAM et de CPU? Que faire si votre application est lente malgré suffisamment de ressources? Où est le goulot d’étranglement? Le plus souvent, la journalisation est la réponse.,

par exemple, tous les principaux systèmes de base de données ont une fonctionnalité pour enregistrer les requêtes lentes.

Source: speedawarenessmonth.com

Si vous visitez régulièrement le journal des requêtes lentes, vous apprendrez à connaître les opérations et à prendre le plus de temps, et ainsi découvrir des zones petites mais importantes qui nécessitent du travail. Souvent, un petit changement comme celui-ci fonctionne mieux que de doubler la capacité matérielle.

on ne compte pas combien de façons un bon système de journalisation vous aide., Le meilleur argument est peut-être qu’il s’agit d’une activité automatisée qui, une fois configurée, n’a pas besoin de surveillance et vous sauvera de la ruine un jour.

avec cela à l’écart, regardons quelques-uns des étonnants collecteurs de journaux Open Source (outils de journalisation unifiés) là-bas. Juste au cas où vous vous poseriez la question, nous avons couvert les outils de journalisation commerciaux basés sur le cloud dans un article précédent.

Graylog

Graylog est l’un des principaux noms de l’industrie en ce qui concerne les capacités de journalisation et de visualisation de niveau industriel., Il est également unique en ce sens qu’il analyse vos journaux collectés à la recherche de signes de vulnérabilités de sécurité et vous avertit instantanément.bien que Graylog soit un système de journalisation centralisé, il offre la flexibilité dont vous avez besoin, vous permettant de personnaliser les alertes, les tableaux de bord, etc.

Greylog est open-source, mais il existe un plan d’entreprise si vos besoins sont complexes.

avec des clients comme SAP, Cisco et LinkedIn sur sa liste, Graylog est un outil auquel vous pouvez faire confiance les yeux fermés.,

Logstash

Si vous êtes un fan ou un utilisateur de la pile Elastic, Logstash vaut la peine d’être vérifié (la pile ELK est déjà une chose, au cas où vous ne le sauriez pas). Comme les autres outils de journalisation de cette liste, Logstash est entièrement open-source, vous permettant la liberté de déployer et d’utiliser comme vous le souhaitez.

Mais ne soyez pas induit en erreur: Logstash est un vaisseau mère avec des capacités dépassant de loin tout outil de journalisation humble. Il est capable de collecter de grandes quantités de données à partir de plusieurs plates-formes, vous permet de définir et d’exécuter vos propres pipelines de données, de donner un sens aux vidages de journaux non structurés, etc.,

bien sûr, la seule limitation est que cela fonctionne uniquement avec la suite de produits Elastic, mais si vous commencez et cherchez à évoluer bientôt, Logstash est la voie à suivre!

Fluentd

parmi les outils de journalisation centralisés qui fonctionnent comme une couche intermédiaire pour l’ingestion de données, Flutend est un premier parmi equals. Avec une excellente bibliothèque de plugins, Fluentd est capable de capturer des données de pratiquement n’importe quel système de production, de les pétrir dans la structure souhaitée, de construire un pipeline personnalisé et de les alimenter sur votre plate-forme d’analyse préférée, que ce soit MongoDB ou Elasticsearch.,

Fluentd est construit sur Ruby, est entièrement open source et est largement populaire en raison de sa flexibilité et de sa modularité.

avec de grandes entreprises comme Microsoft, Atlassian et Twilio utilisant la plate-forme, Fluentd n’a rien à prouver. If

Flume

Si des ensembles de données vraiment, vraiment volumineux sont votre défi, et que vous voulez éventuellement tout alimenter en quelque chose comme Hadoop, Flume est l’un des meilleurs choix. C’est un projet open source” pur », dans le sens où il est maintenu par notre bien-aimée Fondation Apache, ce qui signifie qu’il n’y a pas de plan d’entreprise.,

cela peut ou non être ce que vous recherchez exactement. 🙂

Source: beyondcoder.com

écrit en Java (ce qui continue de m’étonner en matière de technologie révolutionnaire), le code source de Flume est entièrement ouvert. Flume est le meilleur pour vous si vous recherchez une plate-forme d’ingestion de données distribuée et tolérante aux pannes pour les objets lourds.,

Octopussy

je lui donne zéro sur dix pour la dénomination des produits, mais Octopussy peut être un bon choix si vos besoins sont simples, et vous vous demandez ce que toute l’agitation liée aux pipelines, l’ingestion, l’agrégation, etc. est tout au sujet.

À mon avis, Octopussy couvre les besoins de la plupart des produits (estimé stats sont inutiles, mais si je devais deviner, je dirais qu’il prend en charge 80% des cas d’utilisation dans le monde réel).

Octopussy n’a pas du tout une excellente interface utilisateur (voir ici), mais cela compense en ce qui concerne la vitesse et le manque de ballonnement., La source est disponible sur GitHub, comme prévu, et je pense que cela vaut le coup d’oeil sérieux.

Rsyslog

Rsyslog est un système rapide pour le traitement des journaux.

c’est un utilitaire pour les systèmes d’exploitation de type Unix. En termes techniques, il s’agit d’un routeur de messages avec des entrées et des sorties chargeables dynamiquement et hautement configurables.

Il peut prendre l’entrée de plusieurs sources de données, la transformer et envoyer la sortie à plusieurs destinations. Avec Rsyslog, vous pouvez envoyer 1 million de messages par seconde sur des destinations locales.,

Rsyslog fournit également un agent Windows qui fonctionne très étroitement avec L’agent Linux Rsyslog. Il est utilisé pour l’intégration entre les deux environnements. Cet agent windows est utilisé pour transférer les journaux d’événements de windows et de setup file monitor service.

Voici d’autres fonctionnalités offertes par Rsyslog:

  • configurations flexibles
  • offre des capacités multi-threading
  • protection contre la manipulation de fichiers journaux à l’aide de signatures de journaux et de cryptage.,
  • prend en charge les plates-formes Big Data
  • fournit des capacités de filtrage basées sur le contenu

LOGalyze

LOGalyze était un produit commercial récemment rendu open source. Bien que je ne puisse pas le projet sur GitHub, ils font un installateur Windows et tout le code source téléchargeable.

Si vous avez l’intention d’une communauté, vous pouvez trouver les détails d’une liste de diffusion ici.

LOGalyze est une offre relativement flexible et puissante qui fonctionnera bien pour les déploiements mono-système qui cherchent à combiner la journalisation à partir de sources connues comme Postfix, Apache, etc.,, et produire la sortie dans des formats CSV, PDF, HTML ou similaires. Oui, il ne fait pas tout, mais comme c’était un produit commercial à un moment donné, il le fait plutôt bien.

LogPacker

Quand il s’agit de choisir un outil pour le travail, j’ai deux critères: il doit être porté, et il doit être soutenu par une active modèle d’affaires. Le problème avec les logiciels open source, en général, est que quelques mois / années plus tard, les chances de stagnation ou de décès sont élevées. Il n’y a aucun compte du nombre d’outils de journalisation lancés avec enthousiasme, seulement pour être trouvé maintenant dans le cimetière GitHub.,

mesuré par ce critère, LogPacker est un favori pour moi.

comme vous pouvez le voir sur la capture d’écran, LogPacker est tout au sujet des journaux, et rien d’autre. Leur poussée est définitivement vers leurs offres cloud, mais vous êtes plus que bienvenu pour le télécharger et l’installer sur vos serveurs (page GitHub ici).

le Clustering et l’agrégation sont disponibles pour ceux qui souhaitent l’utiliser à une échelle non triviale, et les plans d’entreprise sont disponibles pour ceux qui souhaitent travailler avec L’API ou qui ont besoin de déploiements plus importants., Une version rafraîchissante et minimaliste (concentrée, mais pas pauvre en fonctionnalités) de la gestion de la journalisation, à mon avis!

Logwatch

je suis sûr qu’il y a parmi nous ceux qui ne veulent pas que toute la cérémonie soit associée à un système de journalisation « unifié” et « centralisé”. Leur activité provient de serveurs uniques, et ils recherchent quelque chose de rapide et efficace pour regarder leurs fichiers journaux. Eh bien, dites bonjour à Logwatch.

Une fois installé, LogWatch peut analyser les journaux de votre système et créer un rapport du type souhaité., C’est un logiciel un peu daté (lire « fiable”), cependant, et a été écrit en Perl. Vous aurez donc besoin de Perl 5.6 + sur votre serveur pour l’exécuter. Je n’ai pas de captures d’écran à partager car c’est un processus purement en ligne de commande et démonisé.

Si vous êtes un accro à la CLI et que vous aimez la façon de faire à l’ancienne, vous adorerez Logwatch!

Syslog-ng

L’outil Syslog-ng a été développé pour traiter les fichiers de données Syslog (un protocole client-serveur établi pour la journalisation du système) en temps réel., Au fil du temps, cependant, il a pris en charge d’autres formats de données: non structuré, SQL et NoSQL. Le fonctionnement du protocole Syslog est à peu près résumé dans l’illustration suivante.

syslog-ng est un outil de collecte et de classification des journaux fiable et de qualité de production, écrit en C et qui est un nom établi dans l’industrie depuis longtemps. La meilleure partie est son extensibilité, vous permettant d’écrire des plugins en C, Python, Java, Lua ou Perl.

lnav

abréviation de (Log Navigator), lnav est un outil de terminal pur qui fonctionne sur une seule machine, un seul répertoire., C’est pour ceux qui ont leur journalisation unifiée dans un seul répertoire ou qui veulent filtrer et afficher les journaux en temps réel à partir d’une seule source.

Si vous pensiez que lnav n’était rien de plus glorifié tailf |grep vous auriez tort. Il y a plusieurs fonctionnalités qui vous feront tomber amoureux: vue de séries chronologiques, jolie impression (pour JSON et d’autres formats), sources de journaux à code couleur, filtres puissants, capacité à comprendre plusieurs protocoles de journalisation, et plus encore.,

c’est juste que parfois vous voulez une couche de journalisation zéro tracas, zéro configuration, peut-être temporaire, et lnav correspond parfaitement à la facture!

Conclusion

Et là vous l’avez!

c’était une liste difficile à compiler, pour être Franc, car la journalisation n’est pas aussi populaire que, disons, la gestion de contenu, et tout mindshare semble avoir été saisi par trois ou quatre outils. Pourtant, les besoins de chacun sont différents, et j’ai essayé de les couvrir largement.

de la ligne de commande stupide, des outils sans configuration aux mastodontes de données à part entière, tout est là! Ai-je raté quelque chose? Bien sûr, je l’ai fait!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *