Logstash est un moteur de collecte de données open source capable de filtrer et de transmettre les données en temps réel. Si vous n'avez pas d'exigences strictes en matière de performances en temps réel pour la migration des données, vous pouvez utiliser Logstash. Cette rubrique explique comment déployer un cluster Logstash auto-géré sur une instance Elastic Compute Service (ECS) d'Alibaba Cloud, puis comment utiliser ce cluster pour migrer les données d'un fichier journal vers un cluster Alibaba Cloud Elasticsearch.
Prérequis
-
Un cluster Alibaba Cloud Elasticsearch a été créé et la fonctionnalité Auto Indexing est activée pour ce cluster.
RemarqueDans cet exemple, un cluster Elasticsearch V8.5.1 de l'édition Standard est utilisé.
Pour plus d'informations, consultez les rubriques Créer un cluster Alibaba Cloud Elasticsearch et Accéder à un cluster Elasticsearch et le configurer.
-
Une instance ECS a été créée. Cette instance doit pouvoir se connecter à la fois au cluster Elasticsearch et au cluster Logstash auto-géré. Pour plus d'informations, consultez la rubrique Créer une instance à l'aide de l'assistant.
RemarqueNous vous recommandons de créer une instance ECS située dans la même région, la même zone et le même réseau privé virtuel (VPC) que le cluster Elasticsearch.
-
Le JDK est installé sur l'instance ECS. Pour plus d'informations, consultez la rubrique Installer le JDK.
RemarqueLe JDK doit être de version Temurin 17 ou ultérieure. Pour plus d'informations sur la compatibilité entre les versions de Java JDK et les versions de Logstash, consultez la page Compatibilité entre Logstash et JVM.
Les données à migrer sont prêtes. Dans cet exemple, nous utilisons des données de journaux ECS.
Procédure
Étape 1 : (Facultatif) Créer un rôle et un utilisateur
Une instance Logstash auto-gérée nécessite un compte Elasticsearch pour accéder à votre cluster Elasticsearch et afficher les données de surveillance Logstash dans la console Kibana. Vous pouvez utiliser soit l'utilisateur intégré elastic, soit un utilisateur personnalisé.
Dans un environnement de production, nous vous recommandons d'utiliser un utilisateur personnalisé. Avant d'utiliser un utilisateur personnalisé, vous devez lui attribuer un rôle disposant des autorisations requises. L'utilisation de l'utilisateur elastic en production ne garantit pas la sécurité du système.
Créer un rôle
Cette section explique comment créer un rôle disposant de privilèges en lecture et en écriture pour les index correspondant au modèle logstash-*.
-
Connectez-vous à la console Kibana du cluster Elasticsearch.
Pour plus d'informations, consultez la rubrique Se connecter à la console Kibana.
Cliquez sur l'icône
dans le coin supérieur gauche de la page qui s'affiche, puis choisissez Management > Stack Management.Dans le volet de navigation de gauche, choisissez Security > Role.
-
Sur la page Role, cliquez sur Create role et configurez les paramètres du rôle.
Le tableau suivant décrit certains des paramètres affichés.
Parameter
Description
Role Name
Le nom du rôle. Saisissez un nom personnalisé.
Index
Les index que vous souhaitez gérer. Sélectionnez logstash-**.
Permission
Les autorisations que vous souhaitez accorder au rôle. Sélectionnez read, write, create, delete et create_index.
Cliquez sur Create role.
Créer un utilisateur
Dans cet exemple, nous créons un utilisateur pour surveiller Logstash. Vous pouvez utiliser l'une des méthodes suivantes pour créer un utilisateur.
Par défaut, Alibaba Cloud Elasticsearch désactive l'utilisateur intégré logstash_system. Vous devez créer un nouvel utilisateur et lui attribuer le rôle logstash_system. Ne nommez pas le nouvel utilisateur logstash_system.
-
Méthode 1 : Créer un utilisateur dans la console Kibana
-
Connectez-vous à la console Kibana du cluster Elasticsearch.
Pour plus d'informations, consultez la rubrique Se connecter à la console Kibana.
Cliquez sur l'icône
dans le coin supérieur gauche de la page qui s'affiche, puis choisissez Management > Stack Management.Dans le volet de navigation de gauche, choisissez Security > Users.
Sur la page Users, cliquez sur Create user dans le coin supérieur droit.
-
Sur la page Create user, configurez les paramètres.
Le tableau suivant décrit certains des paramètres affichés.
Parameter
Description
Username
Le nom de l'utilisateur. Saisissez un nom personnalisé. Exemple : logstash_system_monitor.
Roles
Le rôle attribué à l'utilisateur. Sélectionnez logstash_system.
Cliquez sur Create user.
-
-
Méthode 2 : Créer un utilisateur à l'aide de l'interface de ligne de commande (CLI)
Connectez-vous à l'instance ECS et exécutez la commande suivante pour créer un utilisateur :
curl -u elastic:<es-password> -XPOST http://<instanceId>.elasticsearch.aliyuncs.com:9200/_xpack/security/user/logstash_system_monitor -d '{"password" : "<logstash-monitor-password>","roles" : ["logstash_system"],"full_name" : "<your full name>"}'Parameter
Description
es-password
Le mot de passe du cluster Elasticsearch. Ce mot de passe sert également à se connecter à la console Kibana du cluster.
<instanceId>
L'ID du cluster Elasticsearch. Vous pouvez consulter l'ID du cluster sur la page Basic Information du cluster Elasticsearch.
<logstash-monitor-password>
Le mot de passe de l'utilisateur
logstash_system_monitor.<your full name>
Le nom complet de l'utilisateur.
Exécutez la commande suivante pour créer l'utilisateur
logstash_system_monitor1. Si la création de l'utilisateur réussit, le résultat suivant s'affiche :[root@6 /]# curl -H "Content-Type: application/json" -u xxx -XPOST http://es-cn-45xxxu.elasticsearch.aliyuncs.com:9200/_xpack/security/user/logstash_system_monitor1 -d '{"password" : "xxx","roles" : ["logstash_system"],"full_name" : "your full name"}' {"user":{"created":true},"created":true}[root@6 /]#
Étape 2 : Installer Logstash sur l'instance ECS
-
Connectez-vous à l'instance ECS.
Pour plus d'informations, consultez la rubrique Méthodes de connexion.
-
Téléchargez le package d'installation de Logstash.
Rendez-vous sur le site web Elastic et téléchargez le package d'installation de Logstash correspondant à la même version que celle de votre cluster Elasticsearch.
wget https://artifacts.elastic.co/downloads/logstash/logstash-8.5.1-linux-x86_64.tar.gzRemarqueCommande pour Logstash V7.4 :
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.4.0.tar.gz -
Décompressez le package d'installation de Logstash.
Dans cet exemple, nous utilisons Logstash V8.5.1.
tar -xzvf logstash-8.5.1-linux-x86_64.tar.gz
Étape 3 : Configurer et exécuter un pipeline Logstash
-
Accédez au répertoire Logstash.
cd logstash-8.5.1 -
Créez un fichier .conf.
touch test.conf -
Configurez le fichier test.conf.
L'exemple de code suivant illustre une configuration type :
input { file { path => "/your/file/path/xxx" } } filter { } output { elasticsearch { hosts => "<http://<instanceId>.elasticsearch.aliyuncs.com:9200>" index => "<index-name>" user => "<user-name>" password => "<logstash-password>" } }Paramètre
Description
pathChemin d'accès au fichier journal. Dans cet exemple, nous utilisons /var/log/messages.
hostsEndpoint de votre cluster Alibaba Cloud Elasticsearch. Remplacez
instanceIdpar l'ID de votre instance. Exemple :http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200.indexNom de l'index dans lequel les données du fichier journal sont écrites. Vous pouvez spécifier un nom personnalisé.
userNom d'utilisateur utilisé pour accéder au cluster Elasticsearch. Dans cet exemple, nous utilisons elastic.
Important-
Pour garantir la sécurité du système, nous vous recommandons d'utiliser un utilisateur personnalisé plutôt que l'utilisateur elastic dans vos environnements de production.
-
Le nom d'utilisateur doit être entouré de guillemets doubles ("). Cela permet d'éviter les erreurs potentielles causées par des caractères spéciaux lors de l'exécution du pipeline Logstash.
passwordMot de passe utilisé pour accéder au cluster Elasticsearch.
ImportantLe mot de passe doit être entouré de guillemets doubles ("). Cela permet d'éviter les erreurs potentielles causées par des caractères spéciaux lors de l'exécution du pipeline Logstash.
Logstash propose une variété de plug-ins d'entrée, de filtrage et de sortie. Il vous suffit de configurer ces plug-ins pour assurer le transfert des données. Pour plus d'informations, consultez la documentation relative à la Structure d'un fichier de configuration.
-
-
Exécutez le pipeline Logstash.
bin/logstash -f test.confSi la commande s'exécute avec succès, Logstash détecte automatiquement les modifications apportées au fichier journal et les synchronise avec le cluster Elasticsearch. Les données ajoutées au fichier journal surveillé sont automatiquement synchronisées avec le cluster Elasticsearch.
Étape 4 : Consulter les données migrées
-
Connectez-vous à la console Kibana du cluster Elasticsearch.
Pour plus d'informations, consultez la rubrique Se connecter à la console Kibana.
Cliquez sur l'icône
située dans le coin supérieur gauche de la page qui s'affiche, puis choisissez Management > Dev Tools.-
Dans l'onglet Console de la page qui s'affiche, exécutez la commande suivante :
GET /logstash-*/_search
Étape 5 : (Facultatif) Surveiller le nœud Logstash
-
Accédez au dossier config du répertoire Logstash.
cd logstash-8.5.1/config -
Configurez le fichier logstash.yml.
-
Ouvrez le fichier logstash.yml.
vim logstash.yml -
Dans le fichier logstash.yml, supprimez les commentaires des paramètres répertoriés dans le tableau suivant, puis configurez ces paramètres.
xpack.monitoring.enabled:true xpack.monitoring.elasticsearch.username:"<user-name>" xpack.monitoring.elasticsearch.password:"<logstash-password>" xpack.monitoring.elasticsearch.hosts:["http://es-cn-nwy3fwjp8xxxxxxx.elasticsearch.aliyuncs.com:9200"]Paramètre
Description
xpack.monitoring.enabledDéfinissez ce paramètre sur
true. La valeur par défaut estfalse.xpack.monitoring.elasticsearch.usernameLe nom de l'utilisateur que vous avez créé pour la surveillance de Logstash. Dans cet exemple, l'utilisateur elastic est utilisé.
ImportantPour garantir la sécurité du système, nous vous recommandons d'utiliser un utilisateur personnalisé plutôt que l'utilisateur elastic dans un environnement de production.
xpack.monitoring.elasticsearch.passwordLe mot de passe de l'utilisateur que vous avez créé pour la surveillance de Logstash.
xpack.monitoring.elasticsearch.hostsL'endpoint de votre cluster Alibaba Cloud Elasticsearch. Exemple :
http://es-cn-45xxxxxxxxxxxxju.elasticsearch.aliyuncs.com:9200.
-
-
Accédez au répertoire Logstash et lancez le service Logstash.
cd ../ bin/logstash -f test.conf -
Connectez-vous à la console Kibana du cluster Elasticsearch.
Pour plus d'informations, consultez la rubrique Connexion à la console Kibana.
Cliquez sur l'icône
située dans l'angle supérieur gauche de la page qui s'affiche, puis choisissez Management > Stack Monitoring.(Facultatif) Dans la boîte de dialogue Create rules, cliquez sur OK.
Sur la page Cluster overview, consultez les données de surveillance de Logstash.
Références
Affichage de l'état du cluster et des informations sur les nœuds
Les plugins Alibaba Cloud Elasticsearch améliorent les capacités du cluster, notamment la stabilité, les performances en lecture et en écriture, les requêtes tokenisées et la récupération des données. Pour plus d'informations, consultez la rubrique Présentation des plugins.