Découvrez comment créer une configuration Logtail pour collecter les résultats de requêtes MySQL.
Prérequis
-
Logtail 0.16.0 ou version ultérieure pour Linux, ou Logtail 1.0.0.8 ou version ultérieure pour Windows, est installé sur votre serveur. Pour plus d'informations, consultez la rubrique Installation, exécution, mise à niveau et désinstallation de Logtail.
ImportantAssurez-vous que le serveur exécutant Logtail peut se connecter à la base de données MySQL cible.
-
Dans votre base de données MySQL, ajoutez l'adresse IP du serveur Logtail à la liste d'autorisation.
Par exemple, pour configurer la liste d'autorisation d'une instance ApsaraDB RDS for MySQL, consultez la rubrique Configuration d'une liste d'autorisation d'adresses IP.
-
Si vous utilisez CRD-AliyunPipelineConfig pour collecter les résultats de requêtes MySQL, assurez-vous que le composant Logtail est installé dans le cluster.
Pour plus d'informations, consultez la rubrique Installation du composant Logtail.
Procédure
Console Log Service
Connectez-vous à la console Simple Log Service.
-
Sur le côté droit de la page qui s'affiche, cliquez sur la carte Quick Data Import.

Sur la page Import Data, sélectionnez MySQL query result - plug-in.
Sélectionnez le projet et le logstore. Cliquez ensuite sur Next.
-
Sur la page Machine Group Configuration, configurez un groupe de machines.
-
Sélectionnez un cas d'utilisation et un environnement d'installation correspondant à vos besoins.
ImportantQue vous disposiez ou non d'un groupe de machines existant, vous devez sélectionner le cas d'utilisation et l'environnement d'installation appropriés. Ce choix influence les étapes de configuration suivantes.
-
Vérifiez que le groupe de machines cible figure dans la zone Applied Machine Group, puis cliquez sur Next.
Groupes de machines existants
Dans la liste Source Machine Group, sélectionnez le groupe de machines cible.

Aucun groupe de machines disponible
Cliquez sur Create Machine Group. Dans le panneau Create Machine Group, définissez les paramètres. Vous pouvez identifier un groupe de machines par IP Address ou par Custom Identifier. Pour plus d'informations, consultez les rubriques Création d'un groupe de machines à l'aide d'un identifiant personnalisé (recommandé) ou Création d'un groupe de machines à l'aide d'adresses IP.
ImportantSi vous appliquez le groupe de machines immédiatement après sa création, son statut de heartbeat peut être FAIL, car la connexion n'est pas encore établie. Vous pouvez cliquer sur Automatic Retry. Si le problème persiste, consultez la rubrique Absence de heartbeats pour un groupe de machines Logtail afin de résoudre le problème.
-
-
Sur l'onglet Configure Data Source, définissez les paramètres Configuration Name et Plug-in Configuration, puis cliquez sur Next.
Vous pouvez configurer la source de données à l'aide du formulaire ou de l'éditeur (configuration JSON). Pour obtenir des détails sur la configuration, consultez la rubrique Plug-in d'entrée MySQL.

-
Créez des index, prévisualisez les données, puis cliquez sur Next. Par défaut, Log Service active un index en texte intégral. Vous pouvez également créer manuellement des index de champ en fonction des journaux collectés, ou cliquer sur Automatic Index Generation pour générer automatiquement les index de champ. Pour plus d'informations, consultez la rubrique Création d'index.
ImportantActivez l'index en texte intégral si vous devez interroger tous les champs de journal. Si vous souhaitez interroger uniquement des champs spécifiques, créez un index de champ afin de réduire le trafic lié aux index. Pour analyser des champs à l'aide d'instructions SELECT, vous devez créer un index de champ.
-
Cliquez sur Query Log pour accéder à la page Query & Analysis du Logstore.
Il peut être nécessaire d'attendre environ une minute pour que les index deviennent effectifs. Vous pourrez ensuite consulter les journaux collectés sur l'onglet Raw Logs. Pour plus d'informations, consultez la rubrique Démarrage rapide pour l'interrogation et l'analyse des journaux.
CRD-AliyunPipelineConfig
Cette section fournit un exemple de création d'une configuration de collecte dans un cluster ACK.
Connectez-vous à la console ACK. Dans le volet de navigation de gauche, cliquez sur Clusters.
Sur la page Clusters, localisez le cluster cible. Dans la colonne Actions, choisissez More > Manage cluster.
-
Créez un fichier nommé example-k8s-file.yaml.
Description des paramètres
Exemple
apiVersion: telemetry.alibabacloud.com/v1alpha1 # Create a CR from the ClusterAliyunPipelineConfig CRD. kind: ClusterAliyunPipelineConfig metadata: # The name of the resource. The name must be unique in the current Kubernetes cluster. The name is the same as the name of the Logtail configuration that is created name: example-crd-mysql spec: # Specify the project to which logs are collected. project: name: k8s-log-clusterid # Create a Logstore to store logs. logstores: - name: crd-mysql-test # Configure the parameters for the Logtail configuration. config: # Enter a sample log. You can leave this parameter empty. sample: '' inputs: - Type: service_mysql Address: "rm-*.mysql.rds.aliyuncs.com" CheckPoint: true CheckPointColumn: id CheckPointColumnType: int CheckPointSavePerPage: true CheckPointStart: "0" Database: **** IntervalMs: 1000 Limit: true MaxSyncSize: 100 PageSize: 100 User: **** Password: ******* StateMent: "select * from test where id > ? order by id" # Configure the output plug-in. flushers: # Use the flusher_sls plug-in to send logs to a specific Logstore. - Type: flusher_sls Logstore: crd-mysql-test Endpoint: cn-hangzhou.log.aliyuncs.com Region: cn-hangzhou TelemetryType: logsType
string(obligatoire)Le type de la source de données. Définissez la valeur sur service_mysql.
Address
string(facultatif)L'adresse MySQL, par exemple
rm-****.mysql.rds.aliyuncs.com.Valeur par défaut : 127.0.0.1:3306.
Types d'adresses :
Interne (réseau privé virtuel cloud (VPC)) : utilisé uniquement pour l'accès interne depuis des instances (telles que les instances ECS et ACK) situées dans le même VPC.
Endpoint public : utilisé lorsque votre activité est déployée dans un autre VPC ou sur une machine locale et que vous devez accéder à l'instance via Internet. Vous devez demander préalablement un endpoint public manuellement. Pour plus d'informations, consultez la rubrique Demande ou libération d'un endpoint public.
RemarqueNous vous recommandons d'utiliser l'endpoint de répartition lecture/écriture interne pour vous connecter aux instances RDS, car les connexions via Internet sont sujettes à des fluctuations.
User
string(facultatif)Le nom d'utilisateur du compte utilisé pour se connecter à la base de données MySQL. Valeur par défaut : root.
Password
string(facultatif)Le mot de passe du compte utilisé pour se connecter à la base de données MySQL.
Si vous avez des exigences élevées en matière de sécurité, nous vous recommandons de définir le nom d'utilisateur et le mot de passe sur
xxx. Une fois la configuration de collecte synchronisée avec le serveur local, recherchez la configuration correspondante dans le fichier /usr/local/ilogtail/user_log_config.json sur le serveur local et modifiez-la. Pour plus d'informations, consultez la rubrique Collecte des résultats de requêtes MySQL.ImportantSi vous modifiez ce paramètre dans la console Simple Log Service, le paramètre de la configuration Logtail sur le serveur Logtail sera écrasé après la synchronisation de la modification avec le serveur.
DataBase
string(facultatif)Le nom de la base de données MySQL.
DialTimeOutMs
int(facultatif)Le délai d'expiration pour les connexions à la base de données MySQL. Unité : millisecondes. Valeur par défaut : 5000.
ReadTimeOutMs
int(facultatif)Le délai d'expiration pour les lectures depuis la base de données MySQL. Unité : millisecondes. Valeur par défaut : 5000.
StateMent
string(facultatif)L'instruction SELECT.
Si vous définissez CheckPoint sur true, la condition WHERE dans Statement doit inclure la colonne CheckPoint (CheckPointColumn). Vous pouvez utiliser des points d'interrogation (?) pour indiquer les caractères de remplacement. Si vous utilisez un point d'interrogation (?) dans l'instruction SELECT, vous devez également configurer le paramètre CheckPointColumn.
Par exemple, si vous définissez CheckPointColumn sur id, CheckPointStart sur 0 et StateMent sur
SELECT * from ... where id > ?. À chaque exécution de requête, le système enregistre l'ID du dernier enregistrement de données comme point de contrôle. Lors de la requête suivante, le point d'interrogation (?) spécifié dans l'instruction SELECT est remplacé par l'ID correspondant au point de contrôle enregistré.Limit
boolean(facultatif)Indique s'il faut utiliser une clause LIMIT pour paginer les résultats de requête. Valeurs possibles :
true : utilise une clause LIMIT.
false (par défaut) : n'utilise pas de clause LIMIT.
Nous vous recommandons d'utiliser une clause LIMIT pour paginer les résultats de requête. Si vous définissez Limit sur true, le système ajoute automatiquement une clause LIMIT à l'instruction SELECT lors de l'exécution de la requête SQL.
PageSize
int(facultatif)Le nombre d'entrées par page. Ce paramètre est requis si vous définissez Limit sur true.
MaxSyncSize
int(facultatif)Le nombre maximal de journaux pouvant être synchronisés en une seule fois. Valeur par défaut : 0, ce qui indique qu'aucune limite n'est imposée.
CheckPoint
boolean(facultatif)Indique s'il faut utiliser des points de contrôle lors de la collecte des données. Valeurs possibles :
true : utilise des points de contrôle.
false (par défaut) : n'utilise pas de points de contrôle.
Un point de contrôle peut servir de point de départ pour la prochaine collecte de données. Ainsi, seules les données incrémentielles sont collectées.
CheckPointColumn
string(facultatif)Le nom de la colonne qui stocke les points de contrôle.
Ce paramètre est requis si vous définissez CheckPoint sur true.
AvertissementLes valeurs de la colonne de point de contrôle doivent être incrémentielles. Sinon, certaines données risquent de ne pas être collectées. La valeur maximale du résultat d'une opération de requête est utilisée comme entrée pour l'opération de requête suivante.
CheckPointColumnType
string(facultatif)Ce paramètre est requis si vous définissez CheckPoint sur true.
Le type de données de la colonne CheckPoint. Valeurs possibles : int et time. Si vous définissez ce paramètre sur int, les valeurs de la colonne de point de contrôle sont stockées sous forme d'entiers 64 bits. Si vous le définissez sur time, les valeurs de la colonne de point de contrôle peuvent être de type date, time ou datetime pris en charge par MySQL.
CheckPointStart
string(facultatif)Ce paramètre est requis si vous définissez CheckPoint sur true.
La valeur initiale de la colonne de point de contrôle.
CheckPointSavePerPage
boolean(facultatif)Ce paramètre est requis si vous définissez CheckPoint sur true.
Indique s'il faut enregistrer les points de contrôle à chaque pagination des résultats de requête.
true (par défaut) : enregistre les points de contrôle à chaque pagination des résultats de requête.
false : enregistre les points de contrôle à chaque synchronisation des résultats de requête.
IntervalMs
int(obligatoire)L'intervalle de synchronisation. Unité : millisecondes. Valeur par défaut : 60000.
Exécutez `kubectl apply -f example-k8s-file.yaml`. Logtail commence à collecter les données depuis MySQL.
Connectez-vous à la console Simple Log Service. Dans la section Projects, cliquez sur celui que vous souhaitez utiliser.
-
Cliquez sur l'icône
située à droite du Logstore de destination et sélectionnez Query and Analysis pour afficher les journaux de requête.