Comment utiliser Filebeat et Logstash sur Amazon Linux pour me connecter à OpenSearch Service ?
Je souhaite utiliser Filebeat et Logstash sur Amazon Linux pour me connecter à un cluster Amazon OpenSearch Service, mais je reçois un message d'erreur.
Résolution
Configurer les ports de sécurité
Pour vous connecter à OpenSearch Service à l’aide de Logstash, configurez vos ports de sécurité pour transférer les journaux depuis Logstash.
Procédez comme suit :
- Lancez une instance Amazon Elastic Compute Cloud (Amazon EC2) pour Filebeat, puis lancez une autre instance depuis laquelle Logstash pourra envoyer des journaux.
- Assurez-vous que vos instances EC2 appartiennent au même groupe de sécurité que votre cloud privé virtuel (VPC) pour OpenSearch Service.
- Assurez-vous que les ports 80, 443 et 5044 sont ouverts dans votre groupe de sécurité afin de pouvoir envoyer des données entre Logstash et OpenSearch Service.
Mettre à jour les configurations Filebeat, Logstash et OpenSearch Service
Il est recommandé d'utiliser les versions de Filebeat et de Logstash qui correspondent à votre OpenSearch Service avec une ancienne version d'Elasticsearch. Utilisez les versions de Filebeat et Logstash qui correspondent à la version de votre domaine.
Si vous utilisez OpenSearch Service 1.x avec un mode de compatibilité, OpenSearch Service indique que sa version est la 7.10. Consultez la matrice de compatibilité pour choisir la version correcte de Filebeat et de Logstash. Pour plus d'informations, consultez la matrice de support sur le site Web d'Elastic ou les matrices de compatibilité sur le site Web d'OpenSearch.
Si vous utilisez la version 1.0 ou ultérieure d'OpenSearch Service, activez le mode de compatibilité lorsque vous lancez votre domaine.
Pour vous assurer que les logiciels téléchargés demeurent synchronisés, téléchargez les gestionnaires de paquets Red Hat (RPM) sur chaque instance. Pour éviter un point de défaillance unique dans votre pipeline, n'exécutez pas Filebeat et Logstash sur la même instance.
Installer Filebeat sur l'instance EC2 source
Pour installer Filebeat sur l'instance source, procédez comme suit :
-
Utilisez SSH pour vous connecter à l'instance que vous avez lancée pour Filebeat.
-
Exécutez la commande suivante pour télécharger le fichier RPM correspondant à la version compatible de Filebeat :
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-8.15.2-x86_64.rpm -
Exécutez la commande suivante pour installer le fichier RPM Filebeat :
rpm -ivh filebeat-oss-8.15.2-x86_64.rpm
Installer et configurer Logstash sur une instance EC2 distincte
Procédez comme suit :
-
Utilisez SSH pour vous connecter à l'instance que vous avez lancée pour Logstash.
-
Exécutez la commande suivante pour télécharger le fichier RPM Logstash compatible :
wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-8.15.2-x86_64.rpm -
Exécutez la commande suivante pour installer Java ou OpenJDK sur votre instance EC2 :
yum install java-1.8.0-*Remarque : La commande précédente utilise la version 8 de Java (OpenJDK 1.8). Toutes les versions de Logstash prennent en charge la version 8 de Java.
-
Exécutez la commande suivante pour installer le fichier RPM Logstash :
rpm -ivh logstash-oss-8.15.2-x86_64.rpm -
Exécutez la commande suivante pour ouvrir le répertoire de données Logstash :
cd /usr/share/logstash/ -
Exécutez la commande suivante pour installer le plug-in OpenSearch Service pour Logstash :
bin/logstash-plugin install logstash-output-opensearch -
Pour vérifier l'installation du plug-in Logstash, exécutez la commande suivante :
bin/logstash-plugin listRemarque : Pour Logstash OSS 7.13 et versions ultérieures, utilisez uniquement le plug-in logstash-output-opensearch. La version 7.12.1 prend en charge à la fois les plug-ins logstash-output-elasticsearch et logstash-output-opensearch.
-
Pour vérifier que les répertoires de configuration existent, vérifiez les répertoires /etc/filebeat et /etc/logstash.
-
Pour envoyer des journaux via Logstash, créez un fichier de configuration Filebeat à l'adresse /etc/filebeat/filebeat.yml.
Exemple de fichier de configuration Filebeat :filebeat.inputs: - type: log enabled: true paths: - /var/log/*.log filebeat.config.modules: path: ${path.config}/modules.d/*.yml reload.enabled: false setup.template.settings: index.number_of_shards: 1 index.codec: best_compression #output.elasticsearch: #hosts: ["your-domain-endpoint"] #protocol: "https" output.logstash: # The Logstash hosts hosts: ["Logstash-EC2-InstanceIP:5044"] setup.ilm.enabled: false ilm.enabled: falseRemarque : Remplacez Logstash-EC2-InstanceIP:5044 par l'adresse IP de votre instance Logstash et your-domain-endpoint par votre point de terminaison de domaine. Vous pouvez également envoyer des journaux directement à OpenSearch Service. Pour plus d'informations, consultez la page section logstash-output-opensearch sur le site Web de GitHub.
-
Créez un fichier de configuration Logstash à l'adresse /etc/logstash/conf.d/logstash.conf.
Exemple de fichier de configuration Logstash :
input { beats { port => 5044 } } output { opensearch { hosts => ["https://domain-endpoint:443"] ssl => true index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" user => "my-username" password => "my-password" } }
Remarque : Remplacez domain-endpoint, my-username et my-password par vos valeurs. Pour tester la connectivité à votre point de terminaison OpenSearch Service, exécutez la commande suivante :
curl -XGET https://your-domain-endpoint
Remarque : Remplacez your-domain-endpoint par le point de terminaison de votre domaine. (Facultatif) Si vous avez activé le contrôle précis des accès (FGAC), exécutez la commande suivante :
curl -u my-username:my-password -XGET https://your-domain-endpoint
Remarque : Remplacez your-domain-endpoint par le point de terminaison de votre domaine. Exécutez les commandes suivantes pour démarrer les services Filebeat et Logstash :
systemctl start filebeat
systemctl start logstash
- Pour confirmer que les journaux Filebeat sont envoyés, exécutez la commande curl suivante dans votre domaine OpenSearch Service :
curl -XGET https://your-domain-endpoint/_cat/indices
Remarque : Remplacez your-domain-endpoint par le point de terminaison de votre domaine.
Exemple de sorties d'un index Filebeat :
green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb
green open filebeat-7.16.2-2022.01.27 f97c4WnuQ-CtsAJJaJHUlg 1 1 1511515 0 249.7mb 124.7mb green open .kibana_1 Ioco6fUoSCGkaOvHNCL39g 1 1 1 0 7.4kb 3.7kb green open filebeat-7.16.2-2022.01.28 4i8W0smlRGGFcQOaDMxonA 1 1 89 0 207.1kb 118.1kb
Si vous avez correctement configuré les tableaux de bord Filebeat, Logstash et OpenSearch avec Amazon EC2 Linux, votre pipeline se présente comme dans l’exemple suivant :
Filebeat > Logstash > Amazon OpenSearch Service/Dashboards
Résoudre les erreurs d'installation de 401, 403 et Logstash x-pack
Erreur 401 Unauthorized
Si Logstash renvoie une erreur « 401 Unauthorized », cela signifie que votre domaine OpenSearch Service utilise l'une des fonctionnalités de sécurité suivantes :
- FGAC
- Authentification Amazon Cognito
Pour résoudre ce problème, ajoutez des informations d'authentification à votre fichier de configuration Logstash à l'adresse /etc/logstash/conf.d/logstash.conf.
Exemple de configuration :
output { opensearch { hosts => ["https://your-domain-endpoint"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" ilm_enabled => false user => "my-username" password => "my-password" } }
Remarque : Remplacez your-domain-endpoint, my-username et my-password par les valeurs de votre domaine OpenSearch Service.
Erreur 403 Forbidden
Si Logstash ne dispose pas des autorisations Gestion des identités et des accès AWS (AWS IAM) requises pour accéder à OpenSearch Service, une erreur « 403 Forbidden » se produit.
Pour résoudre ce problème, procédez comme suit :
-
Exécutez la commande suivante pour installer le plug-in OpenSearch Service pour Logstash :
bin/logstash-plugin install logstash-output-opensearch -
Créez la politique suivante, puis associez-la au rôle IAM :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "es:ESHttp*" ], "Resource": "[Amazon-OpenSearch-Domain-ARN]" } ] }Remarque : Remplacez Amazon-OpenSearch-Domain-ARN par l’Amazon Resource Name (ARN) de votre domaine OpenSearch Service.
-
Mettez à jour votre fichier de configuration Logstash à l'adresse /etc/logstash/conf.d/logstash.conf.
Exemple de fichier de configuration Logstash :output { opensearch { hosts => ["domain-endpoint"] ssl => true region => "example_region" index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } }Remarque : Remplacez domain-endpoint et example-region par les valeurs de votre domaine OpenSearch Service.
Erreur d’installation de Logstash x-pack
Si Logstash ne démarre pas en raison d'une erreur « x-pack plugin », procédez comme suit :
-
Ouvrez le fichier de registre suivant :
/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb -
Trouvez la ligne de code suivante :
load_xpack unless LogStash::OSS -
Mettez à jour le code selon l'exemple suivant :
#load_xpack unless LogStash::OSS -
Pour éviter les erreurs de démarrage du plug-in x-pack, désactivez les paramètres d’Index Life Management (ILM) dans vos fichiers de configuration :
Dans Filebeat, configurez ilm.enabled : false.
Dans Logstash, configurez ilm_enabled => false.
Informations connexes
Charger des données dans Amazon OpenSearch Service avec Logstash
- Sujets
- Analytics
- Balises
- Amazon OpenSearch Service
- Langue
- Français

Contenus pertinents
- Réponse acceptée
demandé il y a 2 ans
demandé il y a 2 ans