AliyunLogConfig est une CustomResourceDefinition (CRD) définie par Simple Log Service. Créez une ressource personnalisée (CR) à partir de cette CRD dans un fichier YAML afin de créer, consulter, mettre à jour et supprimer des configurations Logtail de manière déclarative dans un cluster Kubernetes.
Prérequis
Les composants Logtail v0.5.1 ou ultérieur sont installés. Pour plus d'informations, consultez les rubriques Installer les composants Logtail dans un cluster ACK et Installer les composants Logtail dans un cluster Kubernetes autogéré.
-
Le conteneur cible génère activement des journaux.
ImportantLogtail collecte uniquement les journaux incrémentiels. Si un fichier journal n'est pas mis à jour après la diffusion de la configuration, Logtail l'ignore. Consultez la rubrique Lire les journaux.
Limites
Les limites suivantes s'appliquent lors de la gestion d'une configuration Logtail à l'aide d'AliyunLogConfig :
Absence de synchronisation des modifications depuis la console — Si une configuration Logtail est créée par une CR AliyunLogConfig, les modifications apportées à cette configuration dans la console Simple Log Service ne sont pas synchronisées avec la CR. Pour modifier une telle configuration, modifiez uniquement la CR. Cela permet d'éviter les incohérences de configuration.
LogStores existants — Si le LogStore spécifié dans la CR existe déjà, tous les paramètres suivants relatifs au LogStore ne prennent pas effet.
Nom de configuration immuable — Une fois la configuration Logtail créée, vous ne pouvez pas modifier son nom, qui correspond à la valeur du paramètre
configName.Version d'alibaba-log-controller — Plusieurs paramètres nécessitent une version minimale d'alibaba-log-controller. Avant de rédiger la CR, vérifiez la version minimale indiquée pour chaque paramètre dans la section Paramètres de la CR.
Procédure
Créer une configuration Logtail
Créez une CR à partir de AliyunLogConfig. Après la création de la CR, alibaba-log-controller génère une configuration Logtail basée sur la CR et l'applique automatiquement.
Obtenir le fichier kubeconfig d'un cluster et utiliser kubectl pour se connecter au cluster.
-
Exécutez la commande suivante pour créer un fichier YAML. Dans cet exemple, le nom du fichier est
cube.yaml. Adaptez le nom du fichier selon vos besoins.vim cube.yaml -
Saisissez le script suivant dans le fichier YAML et configurez les paramètres selon vos besoins. Le script contient uniquement les champs requis. Définissez
inputTypepour spécifier la méthode de collecte des journaux, et configurezinputDetailpour définir les paramètres d'entrée des journaux. Pour plus d'informations sur les champs de la CR, consultez la rubrique Paramètres de la CR.apiVersion: log.alibabacloud.com/v1alpha1 # Use the default value. You do not need to modify this parameter. kind: AliyunLogConfig # Use the default value. You do not need to modify this parameter. metadata: name: test-config # The name of the resource. The name must be unique in the current Kubernetes cluster. spec: logstore: k8s-stdout # The name of the Logstore. If the Logstore that you specify does not exist, Simple Log Service automatically creates the Logstore. logtailConfig: # The Logtail configuration. inputType: plugin # The type of the data source from which logs are collected. configName: test-config # The name of the Logtail configuration. inputDetail: # The details of the Logtail configuration. ... -
Exécutez la commande suivante pour créer la CR à partir de
AliyunLogConfig. Une fois la configuration Logtail effective, Logtail commence à collecter les données et à les envoyer à Simple Log Service.kubectl apply -f cube.yaml Vérifiez que la valeur du champ
statusCodede la CR est 200. Pour obtenir des instructions, consultez la section Consulter les configurations Logtail.
Consulter les configurations Logtail
Pour afficher toutes les configurations Logtail créées par AliyunLogConfig dans le cluster Kubernetes actuel, exécutez la commande suivante :
kubectl get aliyunlogconfigs
Pour afficher les détails et l'état d'une seule configuration Logtail créée par AliyunLogConfig, exécutez la commande suivante. Remplacez <config_name> par le nom de la ressource AliyunLogConfig. Adaptez le nom selon vos besoins.
kubectl get aliyunlogconfigs <config_name> -o yaml
Un résultat similaire à celui ci-dessous est renvoyé. Dans cet exemple, la configuration Logtail utilise inputType: file.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: example-k8s-file
namespace: kube-system
spec:
project: k8s-log-test
logstore: k8s-file
logtailConfig:
inputType: file
configName: example-k8s-file
inputDetail:
logType: common_reg_log
logPath: /data/logs/app_1
filePattern: test.LOG
dockerFile: true
status:
status: OK
statusCode: 200
Les champs status et statusCode du résultat indiquent l'état de la configuration Logtail :
Si la valeur du champ
statusCodeest 200, la configuration Logtail est appliquée.Si la valeur du champ
statusCoden'est pas 200, l'application de la configuration Logtail a échoué. Vérifiez le champstatuspour connaître l'état signalé.
Mettre à jour une configuration Logtail
Pour mettre à jour une configuration Logtail créée par AliyunLogConfig, modifiez le fichier YAML existant de la CR et appliquez-le à nouveau.
Obtenir le fichier kubeconfig d'un cluster et utiliser kubectl pour se connecter au cluster.
-
Modifiez le fichier YAML
AliyunLogConfigexistant, tel quecube.yaml.vim cube.yaml Modifiez les paramètres dans le fichier YAML selon vos besoins. Pour plus d'informations sur les champs de la CR, consultez la rubrique Paramètres de la CR.
-
Exécutez la commande suivante pour appliquer le fichier et rendre la configuration Logtail effective.
kubectl apply -f cube.yaml Vérifiez que la valeur du champ
statusCodede la CR est 200. Pour obtenir des instructions, consultez la section Consulter les configurations Logtail.
Supprimer une configuration Logtail
Pour supprimer une configuration Logtail créée par AliyunLogConfig, supprimez la CR correspondante. Dans la commande suivante, remplacez <config_name> par le nom de la ressource AliyunLogConfig. Adaptez le nom selon vos besoins.
Après la suppression de la CR, la configuration Logtail correspondante est également supprimée automatiquement.
kubectl delete aliyunlogconfigs <config_name>
Pour confirmer la suppression, exécutez kubectl get aliyunlogconfigs et vérifiez que la CR n'apparaît plus dans la liste.
Paramètres de la CR
Les sections suivantes décrivent les champs d'une CR AliyunLogConfig.
apiVersion
La valeur est fixée à log.alibabacloud.com/v1alpha1.
kind
La valeur est fixée à AliyunLogConfig.
metadata
Le champ metadata identifie la CR dans le cluster Kubernetes.
| Paramètres | Type | Obligatoire | Description |
name |
string | Oui | Identifiant unique de la CR. Par bonne pratique, utilisez la même valeur que spec.logtailConfig.configName. |
namespace |
string | Non | Namespace auquel appartient la CR. |
spec
Le champ spec spécifie le projet et le LogStore de destination, les attributs du LogStore de destination ainsi que les détails de la configuration Logtail.
| Paramètres | Type | Obligatoire | Description |
project |
string | Non | Nom du projet de destination. La valeur par défaut est le projet configuré pour le cluster, correspondant à la valeur de la variable d'environnement ALICLOUD_LOG_PROJECT d'alibaba-log-controller. Si le projet spécifié n'existe pas, Simple Log Service le crée automatiquement. |
logstore |
string | Oui | Nom du LogStore de destination. Si le LogStore spécifié n'existe pas, Simple Log Service le crée automatiquement. |
logtailConfig |
AliyunLogConfigDetail | Oui | Détails de la configuration Logtail. |
uid |
string | Non | UID du compte de destination. Pour expédier les journaux entre comptes, configurez ce paramètre et définissez ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}} dans les variables d'environnement d'alibaba-log-controller. Ce paramètre contrôle uniquement le compte auquel appartient le projet. Pour expédier les données Logtail vers ce compte, vous devez également configurer un identifiant utilisateur pour Logtail. Pour obtenir des instructions, consultez la rubrique Configurer un identifiant utilisateur. Ce paramètre est pris en charge uniquement par alibaba-log-controller 0.3.2 ou ultérieur. |
endpoint |
string | Non | Endpoint du projet de destination. Par défaut, l'endpoint de la région où réside le cluster actuel est utilisé. Si le projet de destination et le cluster résident dans des régions différentes, configurez ce paramètre. Ce paramètre contrôle uniquement l'endpoint utilisé par la configuration Logtail. Pour expédier les données Logtail vers cette région, vous devez également configurer les paramètres config_server_address et data_server_list pour Logtail. Pour obtenir des instructions, consultez la rubrique Fichiers de configuration et fichiers d'enregistrement de Logtail. Ce paramètre est pris en charge uniquement par alibaba-log-controller 0.4.1 ou ultérieur. Pour plus d'informations, consultez la rubrique Endpoint. |
logstoreMode |
string | Non | Type du LogStore de destination. Valeur par défaut : standard. Valeurs valides : query (LogStore Query) et standard (LogStore Standard). Ce paramètre est pris en charge uniquement par alibaba-log-controller 0.3.3 ou ultérieur. Pour plus de détails, consultez la rubrique Types de LogStore. |
shardCount |
int | Non | Nombre de shards dans le LogStore de destination. Valeur par défaut : 2. Valeurs valides : 1 à 10. Pour plus de détails, consultez la rubrique Shards. |
logstoreMaxSplitShard |
int | Non | Nombre maximal de shards dans lesquels les shards du LogStore de destination peuvent être automatiquement divisés. Valeur par défaut : 32. Valeurs valides : 1 à 256. Pour plus de détails, consultez la rubrique partitionnement automatique. |
logstoreAutoSplit |
bool | Non | Indique si le partitionnement automatique est activé pour le LogStore de destination. Valeur par défaut : true. Pour plus de détails, consultez la rubrique partitionnement automatique. |
lifeCycle |
int | Non | Période de rétention des données du LogStore de destination. Unité : jours. Valeur par défaut : 180. Valeurs valides : 1 à 3650. La valeur 3650 spécifie une rétention permanente. Pour plus de détails, consultez la rubrique Période de rétention des données. |
logstoreHotTTL |
int | Non | Période de rétention des données chaudes du LogStore de destination. Unité : jours. Valeur par défaut : 0. La valeur doit être inférieure à celle de lifeCycle et supérieure ou égale à 7. Pour plus de détails, consultez la rubrique Stockage intelligent hiérarchisé. |
logstoreTelemetryType |
string | Non | Type de données d'observabilité dans le LogStore de destination. Valeur par défaut : None. Valeurs valides : None (données de journal) et Metrics (données de métriques). Pour plus de détails, consultez la rubrique telemetryType. |
logstoreAppendMeta |
bool | Non | Indique si la fonctionnalité d'enregistrement des adresses IP publiques est activée pour le LogStore de destination. Valeur par défaut : true. Pour plus de détails, consultez la rubrique IP publique des journaux. |
logstoreEnableTracking |
bool | Non | Indique si le suivi Web (Web Tracking) est activé pour le LogStore de destination. Valeur par défaut : false. Pour plus de détails, consultez la rubrique WebTracking. |
logstoreEncryptConf |
object | Non | Paramètres de chiffrement du LogStore de destination. Ce paramètre est vide par défaut. Pour plus de détails, consultez la rubrique Structures de données courantes. |
logstoreMeteringMode |
string | Non | Mode de facturation du LogStore de destination. Ce paramètre est vide par défaut. Valeurs valides : ChargeByFunction (facturation par fonctionnalité) et ChargeByDataIngest (facturation par volume de données ingérées). Si logstoreMode du LogStore est query, seul le mode de facturation par fonctionnalité est pris en charge. Si le mode de facturation par volume de données ingérées n'est pas activé pour votre compte, vous ne pouvez définir ce paramètre que sur ChargeByFunction. Ce paramètre est pris en charge uniquement par alibaba-log-controller 0.4.3 ou ultérieur. Pour plus de détails, consultez la rubrique Gérer les LogStores. |
machineGroups |
array | Non | Groupes de machines associés à la configuration Logtail. Lors de l'installation du composant logtail-ds, Simple Log Service crée automatiquement un groupe de machines nommé k8s-group-${your_k8s_cluster_id}. Ce groupe de machines constitue la valeur par défaut. Pour plus de détails, consultez la rubrique Introduction. |
configTags |
map | Non | Tags personnalisés utilisés pour identifier la configuration Logtail. Ce paramètre est pris en charge uniquement par alibaba-log-controller 0.4.2 ou ultérieur. |
AliyunLogConfigDetail
Pour plus d'informations sur les paramètres, consultez la rubrique Configurations Logtail (héritées). Le format de données de AliyunLogConfigDetail est identique au format décrit dans la rubrique Configurations Logtail (héritées).
| Paramètres | Type | Obligatoire | Description |
configName |
string | Oui | Nom de la configuration Logtail. Le nom doit être unique dans le projet auquel appartient la configuration Logtail. Par bonne pratique, utilisez la même valeur que le nom de la ressource (metadata.name). Le nom ne peut contenir que des lettres minuscules, des chiffres, des traits d'union (-) et des underscores (_). Il doit commencer et se terminer par une lettre minuscule ou un chiffre. La longueur du nom doit être comprise entre 2 et 128 caractères. |
logSample |
string | Non | Exemple de journal. La valeur doit être inférieure à 1 500 octets. |
inputType |
string | Oui | Méthode utilisée pour collecter les journaux. Valeurs valides : plugin (collecte les journaux tels que les journaux de sortie standard et les journaux binaires MySQL à l'aide de plug-ins Logtail) et file (collecte les journaux à partir de fichiers texte selon des modes fixes, tels que le mode regex complet et le mode délimiteur). |
inputDetail |
Object | Oui | Paramètres d'entrée des journaux. Pour plus de détails, consultez la rubrique inputDetail. |