L'intégration d'un cluster enregistré avec Simple Log Service offre une méthode unifiée pour gérer les clusters Kubernetes répartis dans différents environnements. Cette rubrique explique comment intégrer Simple Log Service à un cluster enregistré en utilisant une application dans Container Service for Kubernetes (ACK).
Prérequis
Étape 1 : Configurer les autorisations RAM
Utiliser onectl
Installez et configurez onectl sur votre machine locale. Pour plus d'informations, consultez la section Gérer les clusters enregistrés à l'aide d'onectl.
-
Exécutez la commande suivante pour configurer les autorisations RAM du composant Simple Log Service :
onectl ram-user grant --addon logtail-dsRésultat attendu :
Ram policy ack-one-registered-cluster-policy-logtail-ds granted to ram user ack-one-user-ce313528c3 successfully.
Utiliser la console
Avant d'installer des composants dans un cluster enregistré, créez une paire de clés AccessKey pour accorder au cluster les autorisations nécessaires afin d'accéder aux services cloud. Cela implique de créer un utilisateur RAM et de lui attribuer les permissions requises.
-
Créez une stratégie personnalisée. Utilisez le contenu de stratégie suivant.
-
Créez une clé AccessKey pour l'utilisateur RAM.
AvertissementPour renforcer la sécurité, configurez une politique de contrôle d'accès réseau pour la clé AccessKey afin de restreindre l'accès aux environnements réseau de confiance. Pour plus d'informations, consultez la section Politiques de restriction d'accès réseau basées sur les clés AccessKey.
-
Utilisez la paire de clés AccessKey pour créer un Secret nommé
alibaba-addon-secretdans le cluster enregistré.Exécutez la commande suivante pour créer le Secret utilisé par le composant Logtail.
kubectl -n kube-system create secret generic alibaba-addon-secret --from-literal='access-key-id=<your AccessKey ID>' --from-literal='access-key-secret=<your AccessKey Secret>'RemarqueRemplacez
<your AccessKey ID>et<your AccessKey Secret>par vos identifiants AccessKey.
Étape 2 : Installer le composant logtail-ds
Utiliser onectl
Exécutez la commande suivante pour installer le composant logtail-ds :
onectl addon install logtail-ds
Résultat attendu :
Addon logtail-ds, version **** installed.
Utiliser la console
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, cliquez sur le nom du cluster cible. Dans le volet de navigation de gauche, cliquez sur Add-ons.
Sur la page Add-ons, cliquez sur l'onglet Logs and Monitoring. Localisez le composant logtail-ds et cliquez sur Install dans le coin inférieur droit de la carte.
Dans la boîte de dialogue Note, cliquez sur OK.
(Facultatif) Étape 3 : Configurer la collecte des journaux depuis les pods
Journaux texte
Pour collecter les journaux texte depuis les pods, connectez-vous au cluster enregistré à l'aide de kubectl et appliquez la configuration AliyunLogConfig suivante.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
name: test-file # The name of the resource. The name must be unique in the Kubernetes cluster.
spec:
project: k8s-log-c326bc86**** # Optional. The name of the project. You can customize the name. We recommend that you name the project in the k8s-log-<cluster-id> format.
logstore: test-file # Required. The name of the Logstore. If the specified Logstore does not exist, Simple Log Service automatically creates it.
logtailConfig: # The Logtail configuration.
inputType: file # The type of the data source. Set the value to file for text logs or plugin for stdout.
configName: test-file # The name of the Logtail configuration. The name must be the same as the resource name specified by metadata.name.
inputDetail: # The details of the Logtail configuration.
logType: common_reg_log # Collects text logs in simple mode.
logPath: /log/ # The path where the log files are stored.
filePattern: "*.log" # The name of the log file. You can use asterisks (*) and question marks (?) as wildcards. Example: log_*.log.
dockerFile: true # Specifies whether to collect logs from files in containers. Set the value to true.
advanced: # Specifies the conditions to filter containers.
k8s:
K8sNamespaceRegex: ^(default)$
K8sPodRegex: '^(nginx-log-demo.*)$'
K8sContainerRegex: ^(nginx-log-demo-0)$
IncludeK8sLabel:
job-name: "^(nginx-log-demo.*)$"
Pour plus d'informations sur les paramètres, consultez la section Configurations Logtail (héritage).
Stdout
Pour collecter les flux stdout depuis les pods, connectez-vous au cluster enregistré à l'aide de kubectl et appliquez la configuration AliyunLogConfig suivante. L'application de cette configuration crée automatiquement un Logstore nommé stdout-logstore et y collecte les journaux.
apiVersion: log.alibabacloud.com/v1alpha1
kind: AliyunLogConfig
metadata:
# The name of your configuration. The name must be unique in your Kubernetes cluster.
name: stdout-collector
spec:
# The name of the Logstore to which logs are uploaded.
logstore: stdout-logstore
# The details of the Logtail configuration.
logtailConfig:
# The input type for Docker stdout. Must be 'plugin'.
inputType: plugin
# The name of the Logtail configuration. Must match metadata.name.
configName: stdout-collector
inputDetail:
plugin:
inputs:
-
type: service_docker_stdout
detail:
# Collects stdout and stderr.
Stdout: true
Stderr: true
# Collects the stdout of all containers except for those with the COLLECT_STDOUT_FLAG:false environment variable.
Étape 4 : Configurer Simple Log Service
Pour plus d'informations, consultez la section Configurer Simple Log Service lors de la création d'une application.
Pour savoir comment collecter les journaux Ingress, consultez la section Collecter et analyser les journaux d'accès des contrôleurs NGINX Ingress.