Logtail est un agent de collecte de journaux fourni par Simple Log Service. Il collecte les journaux depuis des instances ECS Alibaba Cloud, des centres de données sur site et des serveurs cloud tiers, en offrant une collecte en temps réel, une tolérance aux pannes intégrée et une gestion centralisée via la console.
Processus de collecte
Surveillance des journaux
Après avoir installé Logtail sur vos serveurs et créé une configuration Logtail dans la console Simple Log Service, la configuration est distribuée aux serveurs en temps réel. Logtail surveille ensuite les fichiers journaux en analysant les répertoires selon le chemin d'accès configuré et la profondeur maximale de surveillance des répertoires.
Les fichiers journaux qui n'ont pas été mis à jour après l'application d'une configuration Logtail sont considérés comme historiques et ne sont pas collectés. Les fichiers mis à jour sont lus et envoyés à Simple Log Service. Pour plus d'informations sur la collecte des fichiers journaux historiques, consultez la rubrique Importer des journaux historiques à partir de fichiers journaux.
Logtail enregistre des écouteurs d'événements qui interrogent les répertoires de journaux à intervalles réguliers pour assurer une collecte rapide. Sous Linux, Inotify surveille les répertoires et interroge les fichiers journaux.
Lecture des journaux
Lorsque Logtail détecte des fichiers journaux mis à jour, il lit les données contenues dans ces fichiers.
-
Lors de la première lecture, Logtail lit par défaut jusqu'à 1 024 Ko.
Si le fichier est inférieur à 1 024 Ko, Logtail lit depuis le début.
Si le fichier dépasse 1 024 Ko, Logtail lit les derniers 1 024 Ko.
RemarqueLa taille de lecture initiale est configurable.
Console : modifiez le paramètre First Collection Size dans la page de configuration Logtail. Consultez la section Paramètres avancés.
API : modifiez le paramètre tail_size_kb dans la configuration Logtail. Consultez la section avancé.
Si un fichier journal a déjà été lu, Logtail reprend la lecture à partir du dernier point de contrôle.
Logtail lit jusqu'à 512 Ko par opération de lecture. Chaque entrée de journal ne doit pas dépasser 512 Ko.
Redémarrez Logtail après avoir modifié l'heure système du serveur. Sinon, les horodatages des journaux seront incorrects et certains journaux risquent d'être ignorés.
Traitement des journaux
Logtail divise chaque journal en lignes, analyse le contenu et définit le champ temporel.
-
Division d'un journal en plusieurs lignes
Logtail fractionne les journaux en plusieurs lignes selon une expression régulière de première ligne que vous spécifiez. Sans expression régulière, chaque ligne est traitée comme un journal distinct.
-
Analyse des journaux
Logtail analyse chaque journal selon le mode de collecte spécifié dans la configuration Logtail.
RemarqueLes expressions régulières complexes peuvent entraîner une utilisation élevée du processeur. Utilisez des expressions efficaces pour minimiser la consommation de ressources.
Si Logtail échoue à analyser un journal, il gère l'échec selon le paramètre Drop Failed to Parse Logs.
Si l'option Drop Failed to Parse Logs est activée, Logtail ignore le journal et signale une erreur.
Si l'option Drop Failed to Parse Logs est désactivée, Logtail télécharge le journal avec la clé raw_log et la valeur définie sur le contenu du journal.
-
Configuration du champ temporel d'un journal
Si vous ne configurez pas le champ temporel, l'heure du journal correspond par défaut à l'heure d'analyse.
-
Si vous configurez le champ temporel, le traitement dépend de la différence de temps :
Dans un délai de 12 heures : l'heure du journal est extraite des champs analysés.
Au-delà de 12 heures : le journal est ignoré et une erreur est signalée.
Filtrage des journaux
Après le traitement, Logtail filtre les journaux selon les conditions spécifiées.
Si aucune condition n'est définie dans Filter Configuration, les journaux ne sont pas filtrés.
-
Si des conditions sont définies dans Filter Configuration, les champs de chaque journal sont évalués.
Seuls les journaux correspondant aux conditions de filtrage sont collectés.
Agrégation des journaux
Pour réduire le nombre de requêtes réseau, Logtail met en cache les journaux traités et filtrés, puis les envoie par lots lorsque l'un des seuils suivants est atteint :
La durée d'agrégation dépasse 3 secondes.
Le nombre de journaux agrégés dépasse 4 000.
La taille totale des journaux agrégés dépasse 512 Ko.
Envoi des journaux
Logtail envoie les journaux agrégés à Simple Log Service. En cas d'échec, Logtail effectue une nouvelle tentative ou abandonne le paquet selon le code de statut HTTP.
|
Code de statut HTTP |
Description |
Comportement de Logtail |
|
401 |
Le compte ne dispose pas des autorisations de collecte de données. Accordez les autorisations requises. Pour plus d'informations, consultez la rubrique Configurer l'assistant d'autorisation. |
Abandonne le paquet de journaux. |
|
404 |
Le projet ou le Logstore spécifié dans la configuration Logtail n'existe pas. |
Abandonne le paquet de journaux. |
|
403 |
Le quota de shard est épuisé. |
Nouvelle tentative après 3 secondes. |
|
500 |
Une exception serveur s'est produite. |
Nouvelle tentative après 3 secondes. |
Pour ajuster le taux de transmission des données et le nombre maximal de connexions simultanées, modifiez les paramètres max_bytes_per_sec et send_request_concurrency dans le fichier de configuration de démarrage de Logtail. Pour plus d'informations, consultez la rubrique Configurer les paramètres de démarrage de Logtail.
Avantages
Collecte non intrusive basée sur les fichiers. Aucune modification de code n'est requise et la collecte n'affecte pas les performances des applications.
Collecte de journaux texte, binaires, HTTP et de conteneurs.
Collecte de journaux depuis des clusters de conteneurs tels que Docker et Kubernetes.
Gestion automatique des exceptions de collecte. En cas de panne réseau ou serveur, Logtail effectue des nouvelles tentatives et met les données en cache localement.
Gestion centralisée via Simple Log Service. Installez Logtail, créez un groupe de machines et une configuration, et la collecte démarre automatiquement.
Protection des ressources intégrée. Simple Log Service applique des limites strictes en matière de processeur, de mémoire et de réseau pour empêcher Logtail d'affecter les autres services exécutés sur le serveur.
Processus de configuration
-
Créez un groupe de machines basé sur IP address-based ou sur custom identifier-based pour un Simple Log Service project.
-
Créez une configuration Logtail.
Utilisez la console Simple Log Service pour collecter des journaux texte ou collecter des journaux de conteneurs.
Une fois la configuration terminée, Logtail collecte les journaux de vos serveurs et les envoie vers le Logstore spécifié. Consultez les journaux via la console Simple Log Service, l'API, le SDK ou la CLI.
Termes
-
Groupe de machines : Groupe composé d'un ou plusieurs serveurs collectant le même type de journaux. Lorsqu'une configuration Logtail est appliquée, Simple Log Service collecte les journaux de tous les serveurs du groupe.
Définissez les groupes de machines par adresse IP ou par identifiant personnalisé. Gérez-les dans la console Simple Log Service. Consultez la rubrique Vue d'ensemble.
-
Logtail : Agent de collecte de journaux fourni par Simple Log Service, s'exécutant sur chaque serveur à partir duquel les journaux sont collectés.
Linux : Logtail est installé dans le répertoire /usr/local/ilogtail et exécute deux processus (collecteur et démon) dont le nom commence par ilogtail. Les journaux opérationnels sont stockés dans /usr/local/ilogtail/ilogtail.LOG. Pour plus d'informations, consultez la rubrique Installer Logtail sur un serveur Linux.
-
Windows :
-
Logtail (32 bits)
Windows 32 bits : C:\Program Files\Alibaba\Logtail.
-
Windows 64 bits : C:\Program Files (x86)\Alibaba\Logtail.
RemarqueSous Windows 64 bits, les applications 32 bits sont stockées dans un répertoire x86 distinct pour des raisons de compatibilité.
-
Logtail (64 bits)
Logtail 64 bits est pris en charge uniquement sur Windows 64 bits. Répertoire d'installation : C:\Program Files\Alibaba\Logtail.
Pour vérifier l'état de Logtail, accédez à . Pour la version V1.0.0.0 ou ultérieure, vérifiez le service LogtailDaemon. Pour la version V0.x.x.x, vérifiez le service LogtailWorker. Les journaux opérationnels se trouvent dans le fichier
ilogtail.LOGsitué dans le répertoire d'installation. Pour plus d'informations, consultez la rubrique Installer Logtail sur un serveur Windows. -
Configurations Logtail : Politiques définissant la manière dont Logtail collecte et analyse les journaux. Chaque configuration spécifie la source de données, le mode de collecte et le Logstore cible.
Fonctionnalités de base
|
Fonctionnalité |
Description |
|
Collecte de journaux en temps réel |
Logtail surveille les fichiers journaux et lit les journaux incrémentiels en temps réel. Les journaux atteignent généralement Simple Log Service dans un délai de 3 secondes après leur génération. Pour plus d'informations, consultez la section Processus de collecte. Remarque
Logtail ne collecte pas les journaux historiques. Les journaux lus 12 heures ou plus après leur génération sont ignorés. Pour plus d'informations sur la collecte des fichiers journaux historiques, consultez la rubrique Importer des journaux historiques à partir de fichiers journaux. |
|
Rotation automatique des journaux |
Les applications font tourner les fichiers journaux par taille ou par date, en renommant les fichiers d'origine (par exemple, app.LOG.1, app.LOG.2) et en créant de nouveaux fichiers pour app.LOG. Spécifiez le fichier cible pour la collecte, tel que app.LOG. Logtail surveille automatiquement la rotation et garantit qu'aucun journal n'est perdu. |
|
Prise en charge de plusieurs sources de données |
Logtail collecte les journaux texte, les journaux système, les journaux HTTP et les journaux binaires MySQL. Pour plus d'informations, consultez la rubrique Collecte de données. |
|
Compatibilité avec un agent de collecte open source |
Logtail ingère les données provenant de collecteurs open source tels que Logstash et Beats. Pour plus d'informations, consultez la rubrique Collecte de données. |
|
Gestion automatique des exceptions de collecte |
En cas d'échec de transmission (erreurs Simple Log Service, erreurs réseau ou épuisement du quota), Logtail effectue automatiquement de nouvelles tentatives. Si la nouvelle tentative échoue, les données sont mises en cache localement et renvoyées après 3 secondes. Pour plus d'informations, consultez la rubrique Outil de diagnostic en libre-service de Logtail. |
|
Configuration de collecte flexible |
Les configurations Logtail permettent une collecte flexible. Spécifiez les répertoires et les fichiers à l'aide d'une correspondance exacte ou avec des caractères génériques, configurez le mode de collecte et utilisez des expressions régulières pour l'extraction des champs. Simple Log Service requiert un horodatage précis pour chaque journal. Logtail prend en charge les formats d'heure personnalisés pour extraire les horodatages de divers formats de journaux. |
|
Synchronisation automatique des configurations Logtail |
Après avoir créé ou mis à jour une configuration Logtail dans la console, Logtail l'applique généralement dans un délai de 3 minutes. Aucun journal n'est perdu pendant les mises à jour. |
|
Surveillance de l'état |
Logtail surveille en temps réel l'utilisation du processeur et de la mémoire pour éviter une surconsommation de ressources. Si les limites de ressources sont dépassées, Logtail redémarre automatiquement. Si les limites de bande passante sont dépassées, une limitation du débit est déclenchée. Pour plus d'informations, consultez la rubrique Fichier de configuration de démarrage (ilogtail_config.json). |
|
Transmission de données signées |
Logtail obtient un jeton privé auprès de Simple Log Service via un canal de confiance et signe tous les paquets de journaux sortants pour empêcher toute falsification. Remarque
Logtail récupère le jeton via HTTPS. |
Fiabilité de la collecte de données
Logtail enregistre périodiquement des points de contrôle localement. Après un arrêt inattendu ou un plantage, il reprend à partir du dernier point de contrôle pour minimiser la perte de données. Si l'utilisation des ressources dépasse les limites configurées pendant plus de 5 minutes, Logtail est redémarré de force, ce qui peut entraîner une collecte en double.
Malgré ces mécanismes, des journaux peuvent être perdus dans les scénarios suivants :
Logtail n'est pas en cours d'exécution, mais les fichiers journaux subissent plusieurs rotations.
Les fichiers journaux tournent extrêmement rapidement, par exemple une fois par seconde.
Le taux de collecte reste inférieur au taux de génération pendant une période prolongée.