Comment utiliser Filebeat et Logstash sur Amazon Linux pour me connecter à OpenSearch Service ?

Lecture de 8 minute(s)
0

J'utilise Filebeat et Logstash sur Amazon Linux pour me connecter à un cluster Amazon OpenSearch Service, mais je reçois un message d'erreur.

Brève description

Pour utiliser Logstash afin de vous connecter à Amazon OpenSearch Service, procédez comme suit :

1.    Configurez vos ports de sécurité, tels que le port 443, pour transférer les journaux vers OpenSearch Service.

2.    Mettez à jour vos configurations Filebeat, Logstash et OpenSearch Service.

3.    Installez Filebeat sur votre instance source Amazon Elastic Compute Cloud (Amazon EC2). Assurez-vous d'installer et de configurer correctement votre fichier de configuration YAML.

4.    Installez Logstash sur une instance Amazon EC2 distincte à partir de laquelle les journaux sont envoyés.
Remarque : Si vous n'avez pas correctement configuré Logstash, vous recevez un message d'erreur 401 Authorization, 403 Forbidden ou une erreur d'installation de x-pack.

Résolution

Configurer vos ports de sécurité

Configurez vos ports de sécurité pour transférer les journaux depuis Logstash :

1.    Créez une instance EC2 dans laquelle vous avez installé Apache et Filebeat afin que l'instance puisse transférer les journaux de Logstash vers OpenSearch Service.

2.    Assurez-vous que vos instances EC2 appartiennent au même groupe de sécurité que votre cloud privé virtuel (VPC) pour OpenSearch Service.

3.    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 vos configurations Filebeat, Logstash et OpenSearch Service

OpenSearch Service avec une ancienne version d'Elasticsearch fonctionne mieux lorsque vous utilisez les mêmes versions de Filebeat et de Logstash. Utilisez des versions compatibles pour les versions de service suivantes :

  • Version x.x de Filebeat
  • Version x.x de Logstash (v7.16.2 et v6.8.22 pour le correctif de sécurité Log4j)
  • OpenSearch Service avec une ancienne version x.x d'Elasticsearch

Dans l'exemple précédent, les numéros « x.x » de la version doivent correspondre à vos configurations.

Remarque :

  • 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 sélectionner la version correcte de Filebeat et de Logstash. Pour plus d'informations, consultez la Matrice de prise en charge sur le site Web d'Elasticsearch.
  • Si vous utilisez la version 1.0 ou ultérieure d'OpenSearch Service, assurez-vous que le mode de compatibilité est activé lorsque vous lancez votre domaine pour la première fois.

Pour vous assurer que le logiciel téléchargé reste synchronisé, téléchargez les RPM sur chaque instance EC2. Pour éviter un point de défaillance dans votre pipeline, n'exécutez pas Filebeat et Logstash sur la même instance EC2.

Installer Filebeat sur l'instance EC2 source

1.    Téléchargez le fichier RPM pour la version compatible de Filebeat :

wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-oss-7.16.2-x86_64.rpm

2.    Installez le fichier RPM Filebeat :

rpm -ivh filebeat-oss-7.16.2-x86_64.rpm

Installer Logstash sur une instance EC2 distincte à partir de laquelle les journaux sont envoyés

1.    Téléchargez le fichier RPM pour la version compatible de Logstash :

wget https://artifacts.elastic.co/downloads/logstash/logstash-oss-7.16.2-x86_64.rpm

Remarque : Cet exemple utilise la version 7.16 de Filebeat et de Logstash avec la version 1.1 d'OpenSearch Service avec le mode de compatibilité activé.

2.    Installez Java ou OpenJDK sur votre instance EC2 :

yum install java-1.8.0-*

3.    Exécutez la commande rpm pour installer le fichier RPM que vous avez téléchargé pour Logstash :

rpm -ivh logstash-oss-7.16.2-x86_64.rpm

**Remarque :**Logstash nécessite Java pour fonctionner. Cet exemple utilise la version 8 de Java (Open JDK 1.8), prise en charge par toutes les versions de Logstash. Pour plus d'informations sur les versions prises en charge de Java et de Logstash, consultez la Matrice de prise en charge sur le site Web d'Elasticsearch.

4.    Installez le plug-in Logstash pour OpenSearch Service :

bin/logstash-plugin install logstash-output-opensearch

5.    Vérifiez que le plug-in Logstash pour OpenSearch est installé :

bin/logstash-plugin list

Remarque : La version 7.12.1 de Logstash OSS prend en charge à la fois les plug-ins logstash-output-elasticsearch et logstash-output-opensearch. Les versions 7.13 et ultérieures de Logstash OSS ne prennent en charge que le plug-in logstash-output-opensearch.

6.    Consultez les répertoires /etc/filebeat et /etc/logstash pour vérifier les fichiers de configuration.

7.    Pour Filebeat, mettez à jour la sortie vers Logstash ou OpenSearch Service (depuis le site Web GitHub). Spécifiez l'envoi des journaux, puis démarrez votre service.
Remarque : Si vous essayez de télécharger des modèles vers les tableaux de bord OpenSearch avec Filebeat, votre téléchargement échoue. Filebeat part du principe que votre cluster prend en charge le plug-in x-pack.

8.    Mettez à jour votre fichier de configuration YAML pour Filebeat pour envoyer les journaux d'accès d'Apache à Logstash.

Exemple de fichier YAML :

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: ["vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com:443"]
#protocol: "https"

output.logstash:
  # The Logstash hosts
  hosts: ["Logstash-EC2-InstanceIP:5044"]

setup.ilm.enabled: false
ilm.enabled: false

9.    Assurez-vous que votre fichier de configuration Logstash peut accéder à Filebeat sur le port 5044. L'accès au port 5044 permet à Logstash de transférer les demandes vers votre point de terminaison VPC d'OpenSearch Service.

Exemple de fichier 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"
  }
}

10.    Assurez-vous que vous pouvez accéder au point de terminaison du service OpenSearch depuis votre instance Logstash :

curl -XGET https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com

11.    (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://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com

**Remarque :**Si vous rencontrez un problème de délai d'attente, assurez-vous que votre instance Logstash EC2 se trouve dans le même groupe de sécurité que votre VPC pour OpenSearch Service. Assurez-vous également que les ports 80, 443 et 5044 sont ouverts dans votre groupe de sécurité.

12.    Exécutez les commandes suivantes pour démarrer les services Filebeat et Logstash sur chaque instance :

Filebeat

systemctl start filebeat (service filebeat start)

Logstash

cp /etc/logstash/logstash.conf /etc/logstash/conf.d/
systemctl start logstash (service logstash start)

13.    Lancez un appel d'API cat indices à votre domaine OpenSearch Service pour confirmer l'envoi des journaux Filebeat. Si vos journaux sont envoyés avec succès, vous recevez la réponse suivante :

curl -XGET https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com/_cat/indices
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

Par défaut, les index Filebeat changent tous les jours.

Exemple de résultat d'un index Filebeat :

curl -XGET https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com/_cat/indices
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 suit :

Filebeat > Logstash > Amazon OpenSearch Service/Dashboards

Erreur 401 Unauthorized

Un message d'erreur 401 Unauthorized provenant de Logstash indique que votre domaine OpenSearch Service est protégé par FGAC ou Amazon Cognito. Le FGAC requiert des demandes signées par un utilisateur ou un rôle que vous devez définir dans la stratégie d'accès du domaine. Si vous recevez un message d'erreur 401 Unauthorized, activez le FGAC dans votre fichier de configuration Logstash.

Exemple de fichier Logstash :

output {
  opensearch {
    hosts => ["https://vpc-examplestack-5crrfyysa2ratcl3ursmung33q.us-east-1.es.amazonaws.com:443"]
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
    ilm_enabled => false
    user => "my-username"
    password => "my-password"
  }
}

Erreur 403 Forbidden

Lorsque vous utilisez Logstash pour envoyer des données à OpenSearch Service, vous pouvez recevoir le message d'erreur 403 Forbidden. Cette erreur se produit lorsque Logstash ne dispose pas des autorisations nécessaires et ne parvient pas à vérifier votre identité AWS Identity and Access Management (IAM). Pour résoudre ce problème, utilisez vos informations d'identification IAM pour signer vos demandes auprès d'OpenSearch Service.

Utilisez Logstash pour signer les demandes OpenSearch Service :

1.    Installez le plug-in Logstash pour OpenSearch Service :

bin/logstash-plugin install logstash-output-opensearch

2.    Attachez un rôle IAM à l'instance :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "es:ESHttp*"
      ],
      "Resource": "[Amazon-OpenSearch-Domain-ARN]"
    }
  ]
}

3.    Mettez à jour vos paramètres de configuration Logstash pour utiliser le plug-in Logstash « opensearch » comme sortie dans votre pipeline :

output {
  opensearch {
    hosts => ["domain-endpoint"]
    ssl => true
    region => "us-east-1"
    index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}"
  }
}

Erreur Logstash x-pack installation

Si vous recevez des erreurs avec x-pack lorsque vous démarrez Logstash, désactivez manuellement le plug-in x-pack à partir de votre fichier de registre.

Désactivez manuellement le plug-in x-pack :

1.    Ouvrez le fichier suivant :

/usr/share/logstash/logstash-core/lib/logstash/plugins/registry.rb

2.    Chercher load \ _xpack et commentaire intégré :

"load_xpack unless LogStash::OSS" >> "#load_xpack unless LogStash::OSS"

**Remarque :**Vous pouvez vérifier vos fichiers de configuration pour vérifier que les paramètres de Index Life Management (ILM) ilm.enabled et ilm \ _enabled sont tous deux définis sur faux. La désactivation de ces paramètres ILM dans vos fichiers de configuration élimine les erreurs de démarrage du plug-in x-pack.

Informations connexes

Charger des données dans Amazon OpenSearch Service avec Logstash

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an