La collecte des journaux de sortie standard ou des journaux de fichiers depuis les applications SAE vers Simple Log Service (SLS) permet un stockage persistant et une analyse agrégée.
Prérequis
Assurez-vous que Simple Log Service est activé. Si ce n'est pas le cas, connectez-vous à la console Simple Log Service et suivez les instructions à l'écran pour l'activer.
Vérifiez que chaque instance de votre application dispose d'au moins 0,25 cœur de CPU et de 250 Mo de mémoire disponible.
Activer la collecte des journaux
Procédure :
-
Créer une application
Sur la page Liste des applications SAE, sélectionnez une région et un namespace cibles en haut, puis cliquez sur Create Application. Sur la page Application Basic Information, configurez les paramètres et cliquez sur Next: Advanced Settings.
Modifier une application en cours d'exécution
AvertissementLe redéploiement d'une application la redémarre. Pour éviter des problèmes inattendus tels que des interruptions de service, effectuez l'opération de déploiement pendant les heures creuses.
Sur la page Liste des applications SAE, sélectionnez une région et un namespace cibles en haut, puis cliquez sur l'application ID cible pour ouvrir la page de détails de l'application. Dans le volet de navigation de gauche, cliquez sur Basic Information, puis cliquez sur Deploy Application dans le coin supérieur droit.
Modifier une application arrêtée
Sur la page Liste des applications SAE, sélectionnez une région et un namespace cibles en haut, puis cliquez sur l'application ID cible pour ouvrir la page de détails de l'application. Cliquez sur Basic Information, puis cliquez sur Modify Application Configuration.
Développez la section Log Settings et activez SLS Log Service.
Détails de la configuration :
-
Sélectionnez une ressource SLS pour stocker les journaux des applications SAE :
Create Simple Log Service Resource : Le système crée automatiquement un projet SLS. Le nom du projet est au format
sae-<random_string>.Use Existing Simple Log Service Resources : Sélectionnez un projet SLS existant. Le projet doit se trouver dans la même région que l'application.
-
Log labels : Utilisés pour identifier et catégoriser les entrées de journal. Après avoir activé Custom Log Labels, sélectionnez un Type pour configurer la clé et la valeur. Pour configurer plusieurs paires clé-valeur, cliquez sur Add.
Custom : Saisissez un Variable Name et une Variable Value.
Reference Configuration Item : Saisissez un Variable Name, puis sélectionnez un Configuration Item Name et une Key existants.
RemarqueCette fonctionnalité est actuellement en aperçu sur invitation. Si vous souhaitez l'utiliser, contactez l'équipe technique dans le groupe DingTalk (ID de groupe : 32874633) pour l'activer.
-
Collection Log Type :
File Logs (Log Path in Container) : Utilisez cette option si votre application écrit les journaux dans un fichier. Dans le champ Log Source, spécifiez le chemin absolu du fichier journal dans le conteneur, y compris le nom de fichier. Par exemple : /tmp/cjsc.log. La correspondance par expression régulière est prise en charge. Par exemple : /path/to/your/files/*.log.
Container Standard Output Logs : Utilisez cette option si votre application imprime les journaux sur la sortie standard. La Log Source s'affiche sous la forme
stdout.log.Cliquez sur + Add pour ajouter plusieurs enregistrements.
Si vous sélectionnez Use Existing Simple Log Service Resources, vous pouvez configurer un logstoreName et un logtail pour chaque enregistrement.
ImportantNe stockez pas d'autres fichiers importants dans le chemin spécifié comme Log Source afin d'éviter que d'autres fichiers de ce répertoire ne soient écrasés. Par exemple, si les fichiers exécutables et les données de votre application sont stockés dans
/home/admin/app/et que vous définissez le chemin de stockage des journaux sur/home/admin/, tous les répertoires et fichiers situés sous ce chemin seront écrasés. Pour éviter ce problème, définissez le chemin de stockage des journaux sur un répertoire dédié tel que/home/admin/log/.Lors d'un déploiement par lots ou progressif, si vous modifiez uniquement le projet ou le Logstore, les journaux continuent d'être collectés vers la destination d'origine jusqu'à ce que tous les lots soient déployés. Cela est dû au fait que SLS ne prend pas en charge la collecte des journaux d'un même fichier vers différents projets ou Logstores.
Vérifier les résultats :
Sur la page Liste des applications SAE, sélectionnez une région et un namespace cibles en haut, puis cliquez sur l'application ID cible pour ouvrir la page de détails de l'application.
Cliquez sur pour afficher les journaux SLS.
Dans la colonne Actions, cliquez sur File Logs pour ouvrir le Logstore correspondant et afficher les détails du journal.
Supprimer les préfixes du contenu des journaux
Lorsque vous collectez les journaux stdout des conteneurs, le contenu brut du journal inclut des préfixes superflus. Vous pouvez utiliser l'une des méthodes suivantes pour supprimer ces préfixes.
Méthode 1 : Personnaliser la configuration Logtail
Cette fonctionnalité fonctionne uniquement avec Logtail 2.0 et versions ultérieures. Si vous souhaitez l'utiliser, contactez l'équipe technique dans le groupe DingTalk (ID de groupe : 32874633) pour mettre à niveau la version de Logtail pour votre application SAE.
Développez le Logstore correspondant et cliquez sur Logtail Configurations.
Sur la page Logtail Configurations, cliquez sur l'élément de configuration Logtail cible.
-
Cliquez sur Edit et configurez les paramètres suivants. Laissez les autres paramètres avec leurs valeurs par défaut.
Développez la section Processor Configurations et définissez Processing Method If Splitting Fails sur Retain Single Line.
Définissez Processing Method sur SPL.
Dans le champ SPL Statement, saisissez
* | extend msg=regexp_replace(content, '(\S{33,36}\s\S+\sF\s)','') | project-away content.
Cliquez sur Save.
Les journaux nouvellement collectés n'incluent plus le préfixe.
Méthode 2 : Rediriger la sortie standard
-
Créer une application
Sur la page Liste des applications SAE, sélectionnez une région et un namespace cibles en haut, puis cliquez sur Create Application. Sur la page Application Basic Information, configurez les paramètres et cliquez sur Next: Advanced Settings.
Modifier une application en cours d'exécution
AvertissementLe redéploiement d'une application la redémarre. Pour éviter des problèmes inattendus tels que des interruptions de service, effectuez l'opération de déploiement pendant les heures creuses.
Sur la page Liste des applications SAE, sélectionnez une région et un namespace cibles en haut, puis cliquez sur l'application ID cible pour ouvrir la page de détails de l'application. Dans le volet de navigation de gauche, cliquez sur Basic Information, puis cliquez sur Deploy Application dans le coin supérieur droit.
Modifier une application arrêtée
Sur la page Liste des applications SAE, sélectionnez une région et un namespace cibles en haut, puis cliquez sur l'application ID cible pour ouvrir la page de détails de l'application. Cliquez sur Basic Information, puis cliquez sur Modify Application Configuration.
-
Développez la section Startup Command et configurez la commande de démarrage pour rediriger la sortie standard :
Pour une application basée sur une image, ajoutez
2>&1 | tee -a /home/admin/log/std.logà la commande de démarrage d'origine. Le chemin/home/admin/log/std.logcorrespond au chemin du fichier journal, que vous pouvez personnaliser.Par exemple, si la commande de démarrage d'origine dans l'image est
CMD ["./main"], définissez la commande de démarrage sur./main 2>&1 | tee -a /home/admin/log/std.log.Si l'environnement de l'image ne prend pas en charge la commande
teeou si vous n'avez pas besoin d'afficher les journaux en temps réel dans la console, remplacez2>&1 | tee -a /home/admin/log/std.logpar> /home/admin/log/std.log 2>&1. Développez la section Log Settings. Définissez Collection Log Type sur File Logs (Log Path in Container) et définissez Log Source sur le chemin du fichier journal, par exemple
/home/admin/log/std.log.Cliquez sur OK et attendez que le déploiement de l'application soit terminé.
Les journaux nouvellement collectés n'incluent plus le préfixe.
Améliorer les performances de collecte de Logtail
Dans la console SAE, vous pouvez définir des variables d'environnement pour configurer les paramètres de démarrage de Logtail. La configuration de ces paramètres améliore les performances de collecte de Logtail et aide à résoudre les goulets d'étranglement qui affectent la collecte des journaux, tels qu'une utilisation importante de la mémoire par les fichiers journaux, un trafic élevé de données de journaux et un taux d'envoi de données Logtail élevé.
Dans la section Environment Variable, sélectionnez Custom ou Reference Configuration Item, puis saisissez le Variable Name et la Variable Value/Variable Reference. Pour plus de détails, consultez Définir des variables d'environnement.
-
Règles de nommage des variables
Ajoutez le préfixe sls_ à la variable d'environnement Logtail que vous souhaitez configurer. Par exemple, si vous souhaitez ajouter le paramètre Logtail max_read_buffer_size, définissez la variable d'environnement sur sls_max_read_buffer_size. Ce paramètre spécifie la taille maximale d'une entrée de journal unique que Logtail peut lire, soit 524 288 octets dans cet exemple. Pour plus de paramètres, consultez Définir les paramètres de démarrage de Logtail.
-
Correspondance entre les variables d'environnement et les paramètres de démarrage de Logtail
Pour plus de détails, consultez Descriptions des variables d'environnement.
Quotas et limites
Chaque compte Alibaba Cloud peut créer jusqu'à 200 Logstores et 50 projets. Les limites sur les ressources SLS de base peuvent affecter la collecte des journaux pour les applications SAE, entraînant des problèmes tels que de courtes périodes de rétention des journaux ou des échecs de collecte. Pour plus d'informations sur les limites d'utilisation, consultez Limites des ressources de base.
Facturation
L'utilisation de Simple Log Service entraîne des frais supplémentaires. Pour plus de détails, consultez Facturation SLS.
FAQ
-
La collecte des journaux SAE prend-elle en charge la rotation des journaux ?
Oui. Vous pouvez implémenter la rotation des journaux en ajoutant un caractère générique au nom du fichier journal.
Les caractères génériques pris en charge pour les noms de fichiers sont l'astérisque (*) et le point d'interrogation (?).
-
Aucune donnée n'apparaît dans la console SLS lorsque j'affiche les journaux de fichiers. Que dois-je faire ?
Par défaut, SLS interroge les données des 15 dernières minutes. Si aucune donnée n'apparaît dans SLS, utilisez Webshell pour vérifier si votre application a généré des fichiers journaux. Pour plus de détails, consultez Utiliser Webshell pour diagnostiquer une application.
Si des données de journal existent, rejoignez le groupe DingTalk (ID de groupe : 32874633) et contactez un expert technique produit pour obtenir de l'aide.
Si aucune donnée de journal n'existe, vérifiez la configuration de votre application.