AliyunPipelineConfig est une ressource personnalisée (CRD) de Simple Log Service qui vous permet de gérer les configurations de collecte Logtail via des fichiers YAML Kubernetes.
Prérequis
Les composants Logtail v0.5.1 ou ultérieurs sont installés. Pour plus d'informations, consultez Installer les composants Logtail dans un cluster ACK et Installer les composants Logtail dans un cluster Kubernetes auto-gé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 l'application de la configuration, Logtail l'ignore. Consultez la section Lire les journaux.
Procédure
alibaba-log-controller synchronise périodiquement les configurations de collecte Logtail définies par AliyunPipelineConfig avec le serveur. Pour modifier une configuration créée via CR, mettez à jour directement le CR. Les configurations créées via la console sont écrasées par les CR ; utilisez donc une seule méthode de gestion.
Créer une configuration de collecte iLogtail
Créez une ressource CR AliyunPipelineConfig. Le composant alibaba-log-controller crée et applique automatiquement la configuration de collecte Logtail correspondante.
Procédure :
Obtenez le kubeconfig du cluster et connectez-vous au cluster avec kubectl.
Créez un fichier
cube.yaml. Adaptez le nom du fichier selon vos besoins.
vim cube.yaml
Ajoutez le contenu suivant au fichier YAML et configurez les paramètres selon vos besoins. Pour plus d'informations sur les paramètres de la structure CR, consultez la section Paramètres CR.
apiVersion: telemetry.alibabacloud.com/v1alpha1 # Fixed value. Do not modify.
kind: ClusterAliyunPipelineConfig # Fixed value. Do not modify.
metadata:
name: test-config # Specify a resource name. The name must be unique within the current Kubernetes cluster.
spec:
project: # Set the destination project name.
name: k8s-your-project
config: # Define the iLogtail collection configuration.
inputs: # Specify input plug-ins.
...
flushers: # Specify output plug-ins.
...
Appliquez la ressource CR
AliyunPipelineConfig.alibaba-log-controllercrée la configuration de collecte Logtail et commence à collecter les données. Remplacezcube.yamlpar le nom réel de votre fichier.
kubectl apply -f cube.yaml
Consulter une configuration de collecte iLogtail
-
Listez toutes les configurations
AliyunPipelineConfigdu cluster.Exécutez la commande suivante pour afficher toutes les configurations créées par
AliyunPipelineConfig.kubectl get clusteraliyunpipelineconfigs -
Consultez les détails et l'état d'une configuration
AliyunPipelineConfigspécifique.Remplacez
<config_name>par le nom de votreAliyunPipelineConfig.kubectl get clusteraliyunpipelineconfigs <config_name> -o yamlVérifiez le champ status dans la sortie pour confirmer que la configuration est appliquée.
apiVersion: telemetry.alibabacloud.com/v1alpha1 kind: ClusterAliyunPipelineConfig metadata: creationTimestamp: null finalizers: - finalizer.pipeline.alibabacloud.com name: example-config # Expected configuration spec: config: flushers: - Endpoint: cn-hangzhou-intranet.log.aliyuncs.com Logstore: example-config-logstore Region: cn-hangzhou TelemetryType: logs Type: flusher_sls inputs: - FilePaths: - /var/log/*.log Type: input_file processors: - SourceKey: content Type: processor_parse_json_native logstores: - name: example-config-logstore project: name: k8s-log-clusterid # Application status status: # Whether the CR is successfully applied success: true # Current status message of the CR message: success # Update time of the current status lastUpdateTime: "2024-06-13T12:02:19.133422+08:00" # Configuration information from the last successful application. This configuration includes filled default values and is the one currently in effect. lastAppliedConfig: # Time of the last successful application appliedTime: "2024-06-13T12:02:19.133422+08:00" # Details of the last successfully applied configuration config: configTags: sls.crd.cluster: clusterid sls.crd.kind: ClusterAliyunPipelineConfig sls.logtail.channel: CRD flushers: - Endpoint: cn-hangzhou-intranet.log.aliyuncs.com Logstore: example-config-logstore Region: cn-hangzhou TelemetryType: logs Type: flusher_sls global: null inputs: - FilePaths: - /var/log/*.log Type: input_file name: example-config processors: - SourceKey: content Type: processor_parse_json_native logstores: - appendMeta: true autoSplit: true encryptConf: {} maxSplitShard: 64 name: example-config-logstore shardCount: 2 ttl: 30 machineGroups: - name: k8s-group-clusterid project: description: k8s log project, created by alibaba cloud log controller endpoint: cn-hangzhou.log.aliyuncs.com name: k8s-log-clusterid
Mettre à jour une configuration de collecte iLogtail
Modifiez le fichier YAML AliyunPipelineConfig existant et réappliquez-le.
Obtenez le kubeconfig du cluster et connectez-vous au cluster avec kubectl.
Modifiez le fichier
AliyunPipelineConfig. Remplacezcube.yamlpar le nom réel de votre fichier.
vim cube.yaml
Modifiez les paramètres de configuration dans le fichier YAML.
Appliquez la configuration mise à jour. Remplacez
cube.yamlpar le nom réel de votre fichier.
kubectl apply -f cube.yaml
Supprimer une configuration de collecte iLogtail
Supprimez le CR correspondant. Remplacez <config_name> par le nom de votre AliyunPipelineConfig.
kubectl delete clusteraliyunpipelineconfigs <config_name>
Après la suppression, le CR est libéré.
Si la suppression échoue, le CR n'est pas libéré. Vérifiez l'erreur dans le champ status du CR. Pour forcer la suppression du CR, supprimez manuellement le champ finalizers de ses métadonnées.
Paramètres CR
-
apiVersion
La valeur est fixée à
telemetry.alibabacloud.com/v1alpha1. -
kind
La valeur est fixée à
ClusterAliyunPipelineConfig. -
metadata
Paramètre
Type de données
Obligatoire
Description
name
string
Oui
Identifiant du CR, également utilisé comme nom de la configuration de collecte iLogtail.
Remarque :
Doit être unique au sein du projet et ne peut pas être modifié après la création. Exigences :
Il 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.
Longueur : 2 à 128 caractères.
-
spec
Paramètre
Type de données
Obligatoire
Description
project
Oui
Informations sur le projet de destination.
RemarqueNe peut pas être modifié après la création du CR. Pour changer de projet, créez un nouveau CR.
config
Oui
Détails de la configuration de collecte iLogtail.
logstores
Non
Logstores à créer.
RemarqueTous les paramètres sauf name prennent effet uniquement lors de la création d'un Logstore.
Cette liste crée uniquement des Logstores ; elle ne définit pas le Logstore de destination. La destination est déterminée par le plug-in flusher dans config. Laissez vide si le Logstore de destination existe déjà.
Vous pouvez ajouter ou supprimer des définitions de Logstore, mais vous ne pouvez pas modifier celles qui existent déjà.
machineGroups
Non
Groupes de machines à associer à la configuration. SLS crée automatiquement un groupe par défaut nommé
k8s-group-${your_k8s_cluster_id}lors de l'installation delogtail-ds. Par défaut, la liste ne contient que ce groupe de machines.Remarquealibaba-log-controller garantit que seuls les groupes de machines listés sont associés. Les groupes non listés sont dissociés.
enableUpgradeOverride
bool
Non
Valeur par défaut : false. Lorsqu'un AliyunLogConfig dans le cluster pointe vers la même configuration iLogtail que cet AliyunPipelineConfig :
true : alibaba-log-controller remplace la configuration définie par l'AliyunLogConfig existant.
false : Un conflit se produit et l'AliyunPipelineConfig ne parvient pas à s'appliquer.
RemarqueDéfinitions pointant vers la même configuration de collecte iLogtail :
Les projets source et cible sont identiques.
Pour AliyunLogConfig, le projet est le projet par défaut du cluster ou spec.project. Pour AliyunPipelineConfig, le projet est spec.project.name.
Même nom de configuration de collecte iLogtail.
Dans AliyunLogConfig, le paramètre est spec.logtailConfig.configName. Dans AliyunPipelineConfig, le paramètre est metadata.Name.
Définition d'une mise à niveau avec remplacement :
Tout d'abord, AliyunPipelineConfig prend effet et met à jour la configuration de collecte iLogtail.
Ensuite, si AliyunPipelineConfig réussit, le système supprime l'AliyunLogConfig dans le cluster qui pointe vers la même configuration de collecte iLogtail.
Enfin, la mise à niveau avec remplacement est terminée.
-
PipelineProject
RemarqueNe peut pas être modifié après la création du CR. Pour changer de projet, créez un nouveau CR.
Paramètre
Type de données
Obligatoire
Description
name
string
Oui
Nom du projet de destination.
RemarqueSLS crée automatiquement le projet s'il n'existe pas.
description
string
Non
Description du projet.
RemarqueEffectif uniquement lors de la création du projet.
endpoint
string
Non
Endpoint du service du projet de destination. Pour plus d'informations, consultez Endpoint. 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 se trouvent dans des régions différentes, configurez ce paramètre.
RemarqueCe paramètre contrôle uniquement la région de la configuration de collecte. Pour envoyer les données iLogtail vers cette région, configurez séparément config_server_address et data_server_list d'iLogtail. Pour plus d'informations, consultez Fichiers de configuration et fichiers d'enregistrement Logtail.
uid
string
Non
UID du compte de destination. Par défaut, il s'agit du compte du cluster actuel. Pour l'envoi de données inter-comptes, définissez ce paramètre et configurez la variable d'environnement correspondante :
si vous utilisez alibaba-log-controller, définissez
ALICLOUD_LOG_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}};si vous utilisez loongcollector-operator, définissez
GLOBAL_ACCOUNT_INFOS={"<uid>":{"accessKeyID":"<your_access_key_id>","accessKeySecret":"<your_access_key_secret>"}}.
RemarqueCeci contrôle uniquement le compte propriétaire du projet. Pour envoyer les données iLogtail vers ce compte, configurez séparément l'identité utilisateur iLogtail. Configurer une identité utilisateur.
-
PipelineConfig
Les paramètres suivent l'API CreateLogtailPipelineConfig. configName utilise
metadata.nameet ne peut pas être défini séparément.Paramètre
Type de données
Obligatoire
Description
sample
string
Non
Exemple de journal. Prend en charge plusieurs journaux, jusqu'à 1 500 octets au total.
global
object
Non
Configuration globale. Pour plus d'informations, consultez Paramètres de requête.
inputs
object list
Oui
Liste des plug-ins d'entrée, configurée selon les Paramètres de requête.
RemarqueUn seul plug-in d'entrée est autorisé.
processors
object list
Non
Liste des plug-ins de traitement, configurée selon les Paramètres de requête.
aggregators
object list
Non
Liste des plug-ins d'agrégation, configurée selon les Paramètres de requête.
flushers
object list
Oui
Liste des plug-ins de sortie, configurée selon les Paramètres de requête.
RemarqueUn seul plug-in flusher_sls est autorisé.
configTags
map
Non
Tags personnalisés pour la configuration de collecte iLogtail.
-
PipelineLogstore
RemarqueTous les paramètres sauf name sont effectifs uniquement lors de la création du Logstore.
Paramètre
Type de données
Obligatoire
Description
name
string
Oui
Nom du Logstore.
queryMode
string
Non
Type de Logstore de destination. Pour plus d'informations, consultez Concepts de base. Par défaut : standard. Valeurs valides :
query : Logstore de requête
standard : Logstore standard
ttl
int
Non
Période de rétention des données en jours. Pour plus d'informations, consultez Gérer les Logstores. Par défaut : 30. Valeurs valides : 1 à 3650. 3650 indique une rétention permanente.
hotTtl
int
Non
Période de rétention pour le stockage des données chaudes en jours. Par défaut : 0. Doit être inférieur à ttl et supérieur ou égal à 7.
infrequentAccessTTL
int
Non
La période de stockage IA en jours. Par défaut : 0. Requiert
hotTtl. Doit être inférieur àttlet supérieur ou égal à 30. SihotTtl+infrequentAccessTTLn'est pas égal àttl, alorsttl-(hotTtl+infrequentAccessTTL)doit également être supérieur ou égal à 60. Requiertloongcollector-operatorv1.0.6 ou ultérieur.shardCount
int
Non
Nombre de shards. Pour plus d'informations, consultez Gérer les Logstores. Par défaut : 2. Valeurs valides : 1 à 100.
maxSplitShard
int
Non
Nombre maximal de shards pour le fractionnement automatique. Pour plus d'informations, consultez Gérer les Logstores. Par défaut : 64. Valeurs valides : 1 à 256.
autoSplit
bool
Non
Active le fractionnement automatique des shards. Pour plus d'informations, consultez Gérer les Logstores. Par défaut : true.
telemetryType
string
Non
Type de données observables. Détails : Créer un Logstore. Par défaut : None. Valeurs valides :
None : type journal.
Metrics : type métrique.
appendMeta
bool
Non
Active l'enregistrement de l'adresse IP publique. Pour plus d'informations, consultez Gérer les Logstores. Par défaut : true.
enableTracking
bool
Non
Active le suivi Web. Pour plus d'informations, consultez Gérer les Logstores. Par défaut : false.
encryptConf
object
Non
Configuration de chiffrement. Pour plus d'informations, consultez EncryptConf. Par défaut : vide.
meteringMode
string
Non
Mode de facturation. Pour plus d'informations, consultez Gérer les Logstores. Par défaut : vide. Valeurs valides :
ChargeByFunction : paiement par fonction
ChargeByDataIngest : paiement par données ingérées
RemarqueSi queryMode du Logstore est query, seul ChargeByFunction est pris en charge.
Si la facturation par données ingérées n'est pas activée pour votre compte, vous ne pouvez pas définir ce paramètre sur ChargeByDataIngest.
index
object
Non
Configuration de l'index, effective uniquement lors de la création du Logstore. Format : index. Requiert loongcollector-operator v1.0.6 ou ultérieur.
-
PipelineMachineGroup
Paramètre
Type de données
Obligatoire
Description
name
string
Oui
Nom du groupe de machines à associer à la configuration.
RemarqueSi le groupe de machines n'existe pas, alibaba-log-controller crée automatiquement un groupe de machines basé sur un identifiant. Pour plus d'informations, consultez Créer un groupe de machines personnalisé basé sur un identifiant. Effectif uniquement lors de la création.