Définissez des variables d'environnement pour acheminer les journaux ECI vers des projets, Logstores et groupes de machines personnalisés dans SLS.
Contexte
Simple Log Service (SLS) est une solution tout-en-un dédiée aux données de journal. Elle permet de collecter, consommer, expédier, interroger et analyser les journaux sans développement personnalisé. Pour plus d'informations, consultez la rubrique Présentation de Simple Log Service.
La facturation de SLS est basée sur l'utilisation. Consultez la rubrique Présentation de la facturation.
Lorsque vous activez la collecte de journaux lors de la création d'une instance ECI, le système crée un projet et un groupe de machines par défaut :
Nom du projet :
eci-log-default-project-{Region}-{AccountID}.Nom du groupe de machines :
eci-log-default-machine-group-{Region}.
Pour utiliser un projet, un Logstore ou un groupe de machines personnalisé, définissez les configurations de journal sous forme de variables d'environnement de conteneur. Si les ressources spécifiées n'existent pas dans SLS, le système les crée automatiquement.
Remarques relatives à l'utilisation
Les variables d'environnement liées aux journaux ne prennent effet qu'à la création de l'instance. Le système ignore les variables définies lors des mises à jour de l'instance.
Supprimez les projets personnalisés et les configurations Logtail inutilisés afin d'éviter toute facturation inutile.
Le renommage d'une variable d'environnement ne supprime pas la configuration d'origine. Supprimez-la manuellement pour éviter toute facturation.
Configuration
Transmettez les configurations de journal personnalisées (projet, Logstore, configuration Logtail, groupe de machines, nombre de shards, période de rétention et tag) en tant que variables d'environnement de conteneur.
Les noms des variables d'environnement liées aux journaux doivent commencer par aliyun_logs_{key}, où {key} correspond au nom de la configuration Logtail. La clé accepte uniquement les lettres minuscules, les chiffres et les traits d'union (-).
|
Paramètre |
Variable d'environnement |
Description de la valeur |
|
Configuration Logtail |
aliyun_logs_{key} |
Crée une configuration Logtail et spécifie son chemin de collecte de journaux.
|
|
Projet |
aliyun_logs_{key}_project |
Spécifie le projet. Exigences relatives au nom :
Remarque
Les noms de projet doivent être uniques à l'échelle mondiale et ne peuvent pas être modifiés après la création. Les noms non valides sont ignorés et le projet par défaut est utilisé. |
|
Logstore |
aliyun_logs_{key}_logstore |
Spécifie le Logstore. Exigences relatives au nom :
Remarque
Les noms non valides sont ignorés et le Logstore par défaut est utilisé. Le nom du Logstore par défaut correspond au nom de la configuration Logtail |
|
Groupe de machines |
aliyun_logs_{key}_machinegroup |
Spécifie le groupe de machines. Exigences relatives au nom :
Remarque
Les noms non valides sont ignorés et le groupe de machines par défaut est utilisé. |
|
Shard |
aliyun_logs_{key}_shard |
Définit le nombre de shards pour le Logstore. La valeur doit être un entier compris entre 1 et 10. Les journaux lus et écrits dans un Logstore sont stockés dans des shards. Chaque Logstore dispose de deux shards par défaut. |
|
Période de rétention des journaux |
aliyun_logs_{key}_ttl |
Définit la période de rétention des journaux en jours. La valeur doit être un entier compris entre 1 et 3 650.
|
|
Tag |
aliyun_logs_{key}_tags |
Ajoute un tag aux journaux. La valeur doit être au format |
Exemples
L'exemple suivant utilise ces configurations de journal personnalisées :
Noms de la configuration Logtail et du Logstore : les journaux de sortie standard sont enregistrés dans
stdout-eciet les journaux de fichiers texte sont enregistrés dansfile-eci.Nom du projet :
project-eci-testNom du groupe de machines :
mg-eci-test
Ces valeurs sont fournies à titre d'exemple. Utilisez vos propres configurations et assurez-vous que le nom du projet est unique à l'échelle mondiale.
API
Appelez l'opération CreateContainerGroup et définissez les variables d'environnement avec les paramètres Container.N.EnvironmentVar.N.Key et Container.N.EnvironmentVar.N.Value :
ContainerGroupName=test-sls
Container.1.Name=busybox
Container.1.Image=registry-vpc.cn-shanghai.aliyuncs.com/eci_open/busybox:1.30
Container.1.Command.1=/bin/sh
Container.1.Arg.1=-c
Container.1.Arg.2=mkdir -p /log;while true; do echo hello world; date; echo hello sls >> /log/busy.log; sleep 1;done
# Collect stdout logs
Container.1.EnvironmentVar.1.Key=aliyun_logs_stdout-eci
Container.1.EnvironmentVar.1.Value=stdout
Container.1.EnvironmentVar.2.Key=aliyun_logs_stdout-eci_project
Container.1.EnvironmentVar.2.Value=project-eci-test
Container.1.EnvironmentVar.3.Key=aliyun_logs_stdout-eci_machinegroup
Container.1.EnvironmentVar.3.Value=mg-eci-test
# Collect text files
Container.1.EnvironmentVar.4.Key=aliyun_logs_file-eci
Container.1.EnvironmentVar.4.Value=/log/*.log
Container.1.EnvironmentVar.5.Key=aliyun_logs_file-eci_project
Container.1.EnvironmentVar.5.Value=project-eci-test
Container.1.EnvironmentVar.6.Key=aliyun_logs_file-eci_machinegroup
Container.1.EnvironmentVar.6.Value=mg-eci-test
Console
Lors de la création d'une instance ECI dans la console Elastic Container Instance, dans la section Container Configurations, sélectionnez un conteneur, développez ses paramètres avancés, puis activez l'option Environment Variable pour ajouter vos variables.
Pour collecter les journaux stdout, ajoutez les variables d'environnement suivantes : aliyun_logs_stdout-eci = stdout, aliyun_logs_stdout-eci_project = project-eci-test et aliyun_logs_stdout-eci_machinegroup = mg-eci-test. Pour collecter les journaux de fichiers texte, ajoutez les variables d'environnement suivantes : aliyun_logs_file-eci = /log/*.log, aliyun_logs_file-eci_project = project-eci-test et aliyun_logs_file-eci_machinegroup = mg-eci-test.
Vérifier les résultats
Dans la console Simple Log Service, ouvrez le projet cible pour afficher les journaux dans le Logstore.
Sortie standard
Ouvrez le projet project-eci-test et sélectionnez le Logstore stdout-eci. Les journaux stdout incluent des champs tels que _container_name_, _image_name_, _namespace_, _pod_name_, _pod_uid_, _source_ et content.
Fichier texte
Le Logstore affiche les journaux de fichiers texte collectés depuis l'instance ECI, avec le contenu hello sls.