Transformation des plugins de log pour améliorer l'observabilité
Yong Qian
February 24, 2023
Aujourd'hui, les journaux sont cruciaux dans les passerelles API, en particulier pour la détection des pannes et le dépannage, permettant de réduire les coûts d'exploitation et de maintenance. Les journaux des passerelles API ont également une grande valeur pour la collecte de données. Pour améliorer l'observabilité et la stabilité du système, la passerelle API open source Apache APISIX prend en charge de nombreux plugins de journalisation, tels que
elasticsearch-logger
,kafka-logger
,loggly
eterror-log-logger
.
La valeur des journaux de passerelle
À l'ère numérique, avec la croissance rapide des entreprises, les architectures logicielles deviennent de plus en plus complexes, rendant la détection et le diagnostic des pannes beaucoup plus difficiles. Cela souligne à nouveau l'importance de l'observabilité des logiciels.
Les journaux sont l'un des trois piliers de l'observabilité. Ils fournissent aux administrateurs système et aux développeurs des informations sur l'état de fonctionnement d'un système, ce qui facilite l'identification et la résolution rapides des problèmes.
De plus, les journaux peuvent servir à d'autres fins, telles que l'exploration de données, l'audit et la surveillance de la sécurité, aidant à maintenir la conformité et la sécurité du système.
Une passerelle API connecte l'application au monde extérieur, permettant aux organisations de mieux gérer et surveiller les appels API, y compris la fonction critique d'enregistrement des journaux d'appels API.
Nous analyserons la valeur des journaux de passerelle API sous deux angles dans les sections suivantes.
La valeur pour l'exploitation et la maintenance
Que ce soit pour l'exploitation et la maintenance traditionnelle des systèmes ou pour l'ingénierie de la fiabilité des sites (SRE) moderne, la découverte et la correction des pannes sont toujours la priorité absolue pour garantir la stabilité du système. En effet, chaque seconde d'indisponibilité peut causer des pertes commerciales importantes et nuire à l'expérience utilisateur pour toute grande entreprise en ligne.
La passerelle API est en première ligne de l'ensemble du système et peut jouer un rôle de "sentinelle". Nous pouvons extraire une multitude de données critiques de ses journaux d'accès, ce qui est crucial pour le système d'exploitation et de maintenance :
- Analyser les codes d'état en amont et en aval pour surveiller la disponibilité du site web et des services en amont spécifiques.
- Utiliser les journaux d'accès pour surveiller le trafic du site web et détecter rapidement des attaques comme les DDoS.
- Analyser les tendances du trafic pour fournir une référence pour la montée ou la descente en puissance des systèmes métier.
- Suivre les temps de traitement des requêtes pour générer des rapports de performance au niveau des interfaces, servant de référence pour optimiser les performances des systèmes métier.
Les pratiques ci-dessus sont largement adoptées dans l'industrie et mises en œuvre dans les systèmes d'exploitation et de maintenance de nombreuses entreprises.
La valeur métier
Par rapport à la valeur opérationnelle largement reconnue, la valeur métier des journaux de passerelle est souvent négligée.
Par exemple, dans l'analyse du comportement des utilisateurs, l'encodage est la méthode la plus courante pour collecter des données via le suivi d'événements dans les programmes. Cependant, pour une API bien conçue, les journaux de passerelle peuvent naturellement répondre à ces besoins. Ainsi, nous pouvons faire beaucoup de choses comme :
- Analyser l'IP du client pour déterminer la distribution géographique du trafic.
- Analyser le HTTP Referer pour comprendre la source d'accès des utilisateurs à chaque page.
- Nous pouvons directement obtenir des indicateurs métier critiques pour les statistiques agrégées des API clés. Par exemple, en comptant les appels réussis des API pour l'inscription des utilisateurs et la passation de commandes, nous pouvons obtenir le nombre de nouveaux utilisateurs et de commandes sur une période donnée.
Bien sûr, les journaux de passerelle sont moins flexibles que le suivi d'événements et ne peuvent pas répondre aux besoins de collecte de données personnalisés ; ils ont suffisamment de valeur métier pour répondre aux besoins de base d'exploration de données.
Apache APISIX est une passerelle API cloud-native dynamique, en temps réel et haute performance, offrant des fonctions riches de gestion du trafic telles que l'équilibrage de charge, l'amont dynamique, la publication canari, la coupure de circuit, l'authentification et l'observabilité.
Nombre de ses capacités sont fournies via des plugins, y compris des dizaines de plugins de journalisation. Ce qui suit utilisera le plugin de journalisation typique dans APISIX comme exemple pour expliquer comment intégrer les journaux de passerelle avec un système d'analyse de journaux pour débloquer plus de valeur.
Introduction aux plugins de journalisation typiques d'APISIX
elasticsearch-logger
Elastic Search est un moteur de recherche et d'analyse distribué open source utilisé pour traiter de grandes quantités de données et est très réputé dans l'analyse des journaux. Son tableau de bord de données complémentaire Kibana peut facilement personnaliser divers graphiques statistiques pour répondre aux besoins de l'organisation en matière d'analyse visuelle.
Dans les applications pratiques, puisque la plupart des journaux logiciels traditionnels sont enregistrés dans des fichiers locaux, un projet de l'écosystème Elastic Search appelé Filebeat
est utilisé pour surveiller les fichiers de journaux sur les machines locales et envoyer les journaux incrémentiels au serveur Elastic Search.
Cependant, le plugin elasticsearch-logger fourni par APISIX peut directement envoyer les journaux d'accès d'APISIX au serveur Elastic Search, ce qui présente plusieurs avantages :
- Le déploiement du composant Filebeat n'est pas nécessaire, ce qui réduit la chaîne de traitement et les ressources de calcul.
- Les journaux ne sont pas stockés sur disque, donc il n'y a pas besoin de s'inquiéter de l'utilisation de l'espace disque. Cependant, les journaux d'accès peuvent être très volumineux, et si la rotation des fichiers n'est pas gérée correctement, cela peut rapidement remplir le disque de la machine et provoquer une panne. De plus, l'interaction avec le disque peut également réduire les performances de la passerelle.
kafka-logger
Les journaux d'accès de la passerelle ont une caractéristique marquante : le volume des données de journaux est proportionnel au volume des requêtes métier : plus il y a de requêtes, plus il y a de journaux.
Les entreprises en ligne présentent généralement des modèles périodiques dans le volume de requêtes. Par exemple, les plateformes de livraison de nourriture ont tendance à connaître un trafic élevé pendant les repas, tandis que les sites de vidéo connaissent des pics pendant les heures après le travail.
Cela représente un défi important pour les systèmes de stockage des journaux, et garantir que le système peut fonctionner correctement pendant les pics de trafic est une compétence cruciale pour chaque administrateur ElasticSearch.
Une file d'attente de messages est le meilleur outil pour équilibrer le trafic. Introduire une file d'attente de messages entre la passerelle et le système de stockage pour fournir un tampon de journaux réduira considérablement la pression sur le système de stockage pendant les périodes de pic de trafic.
À cette fin, APISIX fournit kafka-logger, qui envoie les journaux d'accès aux serveurs Kafka, évitant ainsi un impact direct sur le stockage des journaux.
loggly
Ces dernières années, le concept de SaaS (Software as a Service) est devenu progressivement populaire, apprécié par de nombreuses petites et moyennes entreprises pour son faible seuil d'entrée et son modèle de tarification à l'usage. Dans le domaine de l'analyse des journaux, de nombreux produits SaaS ont émergé, et loggly est devenu un leader avec ses sources de journaux riches et ses capacités d'analyse.
Dans ce contexte, la communauté active d'APISIX a développé des plugins prêts à l'emploi pour Loggly, qui ne nécessitent que la configuration des informations d'identification pour envoyer directement les journaux d'accès d'APISIX au service Loggly, ce qui est très pratique à utiliser.
Comme le plugin Loggly, APISIX fournit également google-cloud-logging, sls-logger et tencent-cloud-cls, qui peuvent facilement s'intégrer aux services de journaux des principaux fournisseurs de cloud.
error-log-logger
Les plugins présentés ci-dessus sont tous utilisés pour collecter les journaux d'accès. Cependant, il existe un autre type de journal dans APISIX, à savoir le journal d'erreurs (error.log
), qui est crucial pour diagnostiquer les dysfonctionnements de la passerelle.
Par conséquent, APISIX fournit le plugin error-log-logger pour envoyer les journaux d'erreurs à un serveur distant pour stockage et analyse. En pratique, la configuration du niveau de journalisation d'APISIX peut être utilisée pour imprimer plus de journaux de débogage ou d'information, qui contiennent des journaux plus détaillés sur l'état de fonctionnement de la passerelle. En utilisant ces journaux, nous pourrions localiser la plupart des problèmes.
Résumé
Les journaux de passerelle contiennent une énorme valeur, et nous pouvons voir à travers les nombreux plugins de journalisation dans le projet Apache APISIX que les utilisateurs professionnels de la communauté reconnaissent la valeur des journaux de passerelle. De plus, ces plugins réduisent encore le coût de mise en place d'un système de journalisation pour les nouveaux utilisateurs.
En outre, APISIX dispose de deux autres types de plugins d'observabilité : metrics
et tracing
. Combinés avec les plugins de journalisation, ils renforceront encore l'observabilité de la passerelle et aideront à construire la stabilité du système.