GNU/Linux >> Tutoriels Linux >  >> OpenSuse

Comment installer Elasticsearch sur openSUSE Leap 15

Elasticsearch est un moteur de recherche et d'analyse en texte intégral open source hautement évolutif . C'est généralement le moteur/la technologie sous-jacente qui alimente les applications avec des fonctionnalités et des exigences de recherche complexes. Le logiciel prend en charge les opérations RESTful qui vous permettent de stocker, de rechercher et d'analyser des volumes importants de données rapidement et en temps quasi réel. Elasticsearch est apprécié et populaire parmi les administrateurs système et les développeurs car il s'agit d'un puissant moteur de recherche basé sur la bibliothèque Lucene.

Dans le didacticiel suivant, vous apprendrez comment installer Elastic Search sur openSUSE Leap 15 .

Prérequis

  • OS recommandé : openSUSE Leap – 15.x
  • Compte utilisateur : Un compte utilisateur avec un accès sudo ou root.

Mettre à jour le système d'exploitation

Mettez à jour votre openSUSE système d'exploitation pour s'assurer que tous les packages existants sont à jour :

sudo zypper refresh

Le tutoriel utilisera la commande sudo et en supposant que vous avez le statut sudo .

Pour vérifier le statut sudo sur votre compte :

sudo whoami

Exemple de sortie montrant l'état de sudo :

[joshua@opensuse ~]$ sudo whoami
root

Pour configurer un compte sudo existant ou nouveau, consultez notre didacticiel sur l'ajout d'un utilisateur à Sudoers sur openSUSE .

Pour utiliser le compte racine , utilisez la commande suivante avec le mot de passe root pour vous connecter.

su

Installer le package CURL

Le CURL La commande est nécessaire pour certaines parties de ce guide. Pour installer ce package, tapez la commande suivante :

sudo zyper install curl

Installer le package Java

Pour réussir l'installation et, plus important encore, utiliser Elasticsearch , vous devez installer Java . Le processus est relativement simple.

Tapez la commande suivante pour installer OpenJDK paquet :

sudo zypper install java-11-openjdk-devel

Installer Elasticsearch

Elasticsearch n'est pas disponible dans le dépôt openSUSE standard , vous devez donc l'installer à partir du dépôt Elasticsearch .

Avant d'ajouter le référentiel, importez la clé GPG avec la commande suivante :

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

L'étape suivante consiste à créer un fichier référentiel Elasticsearch comme suit :

sudo zypper ar https://artifacts.elastic.co/packages/7.x/yum elasticsearch

Installez maintenant Elasticsearch à l'aide de la commande suivante :

sudo zypper install elasticsearch

Exemple de résultat :

Tapez "O," puis appuyez sur la « TOUCHE ENTRÉE » procéder à l'installation

Pour permettre à Elasticsearch d'être activé par défaut, vous devrez installer le paquet insserv .

sudo zypper install insserv

Par défaut, le service Elasticsearch est désactivé au démarrage et non actif. Pour démarrer le service et l'activer au démarrage du système, tapez ce qui suit (systemctl) commande :

sudo systemctl enable elasticsearch.service --now

Exemple de résultat :

Synchronizing state of elasticsearch.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch

Vérifiez qu'Elasticsearch fonctionne correctement à l'aide de la commande curl pour envoyer une requête HTTP au port 9200 sur localhost comme suit :

sudo curl http://localhost:9200?pretty

Exemple de résultat :

Comment configurer Elasticsearch

Les données Elasticsearch sont stockées dans l'emplacement du répertoire par défaut (/var/lib/elasticsearch) . Pour afficher ou modifier les fichiers de configuration, vous pouvez les trouver à l'emplacement du répertoire (/etc/elasticsearch) , et les options de démarrage Java peuvent être configurées dans (/etc/default/elasticsearch) fichier de configuration.

Les paramètres par défaut conviennent principalement aux serveurs d'exploitation uniques car Elasticsearch s'exécute sur localhost seul. Cependant, si vous envisagez de configurer un cluster, vous devrez modifier le fichier de configuration pour autoriser les connexions à distance.

Configurer l'accès à distance (facultatif)

Par défaut, Elasticsearch n'écoute que localhost. Pour changer cela, ouvrez le fichier de configuration comme suit :

sudo nano /etc/elasticsearch/elasticsearch.yml

Faites défiler jusqu'à ligne 56 et trouvez la section Réseau et décommentez (#) la ligne suivante et remplacez-la par l'adresse IP privée interne ou l'adresse IP externe comme suit :

Dans l'exemple, nous avons décommenté (#) le (network.host) et l'a changé en une adresse IP privée interne comme ci-dessus.

Pour des raisons de sécurité, il est idéal pour spécifier des adresses; cependant, si vous avez plusieurs adresses IP internes ou externes sur le serveur, modifiez l'interface réseau pour écouter tout le monde en saisissant (0.0.0.0) comme suit :

Enregistrez le fichier de configuration (CTRL+O), puis quittez (CLTR+X) .

Vous devrez redémarrer le service Elasticsearch avec la commande suivante pour que les modifications prennent effet :

sudo systemctl restart elasticsearch

Configurer le pare-feu pour Elasticsearch

Par défaut, aucune règle n'est configurée pour Elasticsearch, ce qui peut entraîner des problèmes en cours de route.

Tout d'abord, ajoutez une nouvelle zone dédiée pour la stratégie de pare-feu Elasticsearch :

sudo firewall-cmd --permanent --new-zone=elasticsearch

Ensuite, spécifiez les adresses IP autorisées qui sont autorisées à accéder au Memcached.

sudo firewall-cmd --permanent --zone=elasticsearch --add-source=1.2.3.4

Remplacer 1.2.3.4 par l'IP adresse qui sera ajoutée à la liste d'autorisation.

Une fois que vous avez fini d'ajouter les adresses IP, ouvrez le port du Memcached.

Par exemple, port TCP 11211 .

sudo firewall-cmd --permanent --zone=elasticsearch --add-port=9200/tcp

Notez que vous pouvez modifier le port par défaut dans votre fichier de configuration si vous remplacez la règle d'ouverture du port de pare-feu ci-dessus par la nouvelle valeur.

Après avoir exécuté ces commandes, rechargez le pare-feu pour mettre en œuvre les nouvelles règles :

sudo firewall-cmd --reload

Exemple de résultat en cas de succès :

success

Comment utiliser Elasticsearch

Pour utiliser Elasticsearch à l'aide de la commande curl est un processus simple. Voici quelques-uns des plus couramment utilisés :

Supprimer l'index

Sous l'index est nommé samples .

curl -X DELETE 'http://localhost:9200/samples'

Répertorier tous les index

curl -X GET 'http://localhost:9200/_cat/indices?v'

Répertorier tous les documents dans l'index

curl -X GET 'http://localhost:9200/sample/_search'

Requête utilisant des paramètres d'URL

Ici, nous utilisons le format de requête Lucene pour écrire q=school:Harvard.

curl -X GET http://localhost:9200/samples/_search?q=school:Harvard

Requête avec JSON alias Elasticsearch Query DSL

Vous pouvez interroger à l'aide de paramètres sur l'URL. Mais vous pouvez également utiliser JSON, comme illustré dans l'exemple suivant. JSON serait plus facile à lire et à déboguer lorsque vous avez une requête complexe qu'une chaîne géante de paramètres d'URL.

curl -XGET --header 'Content-Type: application/json' http://localhost:9200/samples/_search -d '{
      "query" : {
        "match" : { "school": "Harvard" }
    }
}'

Mappage d'index de liste

Tous les champs Elasticsearch sont des index. Donc, cela répertorie tous les champs et leurs types dans un index.

curl -X GET http://localhost:9200/samples

Ajouter des données

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/1 -d '{
   "school" : "Harvard"			
}'

Mettre à jour le document

Voici comment ajouter des champs à un document existant. Tout d'abord, nous en créons un nouveau. Ensuite, nous le mettons à jour.

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2 -d '
{
    "school": "Clemson"
}'

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2/_update -d '{
"doc" : {
               "students": 50000}
}'

Index de sauvegarde

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/_reindex -d '{
  "source": {
    "index": "samples"
  },
  "dest": {
    "index": "samples_backup"
  }
}'

Charger des données en masse au format JSON

export pwd="elastic:"

curl --user $pwd  -H 'Content-Type: application/x-ndjson' -XPOST 'https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/0/_bulk?pretty' --data-binary @<file>

Afficher l'état du cluster

curl --user $pwd  -H 'Content-Type: application/json' -XGET https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/_cluster/health?pretty

Agrégation et agrégation de buckets

Pour un serveur Web Nginx, cela produit le nombre de visites Web par ville d'utilisateur :

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
             "cityName": {
                    "terms": {
                     "field": "geoip.city_name.keyword",
                                "size": 50

        }
   }
  }
}
'

Cela étend cela au nombre de codes de réponse de produit de la ville dans un journal de serveur Web Nginx

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
          "city": {
                "terms": {
                        "field": "geoip.city_name.keyword"
                },
        "aggs": {
          "responses": {
                "terms": {
                     "field": "response"
                 }
           }
         }
      },
      "responses": {
                "terms": {
                     "field": "response"
                 }
        }
   }
}'

Utiliser ElasticSearch avec l'authentification de base

Si vous avez activé la sécurité avec ElasticSearch, vous devez fournir l'utilisateur et le mot de passe comme indiqué ci-dessous à chaque commande curl :

curl -X GET 'http://localhost:9200/_cat/indices?v' -u elastic:(password)

Jolie impression

Ajoutez ?pretty=true à n'importe quelle recherche pour imprimer joliment le JSON. Comme ceci :

 curl -X GET 'http://localhost:9200/(index)/_search'?pretty=true

Pour interroger et renvoyer uniquement certains champs

Pour ne renvoyer que certains champs, placez-les dans le tableau _source :

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "_source": ["suricata.eve.timestamp","source.geo.region_name","event.created"],
    "query":      {
        "match" : { "source.geo.country_iso_code": "GR" }
    }
}

Pour interroger par date

Lorsque le champ est de type date, vous pouvez utiliser les calculs de date, comme ceci :

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "query": {
        "range" : {
            "event.created": {
                "gte" : "now-7d/d"
            }
        }
}
}

Comment supprimer (désinstaller) Elasticsearch

Si vous n'avez plus besoin d'Elasticsearch, vous pouvez supprimer le logiciel avec la commande suivante :

sudo zypper remove elasticsearch

Exemple de résultat :

Tapez "O," puis appuyez sur la « TOUCHE ENTRÉE » pour procéder à la suppression d'Elasticsearch.


OpenSuse
  1. Comment installer Elasticsearch sur Debian 9

  2. Comment installer Mongodb 5 dans Opensuse Leap 15.3

  3. Comment installer Mysql Server 8 sur OpenSUSE Leap 15.3

  4. Comment installer et configurer Redis 6 sur OpenSUSE Leap 15.3

  5. Comment installer Java 17 dans OpenSUSE Leap 15.3

Comment installer Snap &Snap-Store (Snapcraft) sur openSUSE Leap 15

Comment installer et configurer Memcached sur openSUSE Leap 15

Comment installer Brave Browser sur openSUSE Leap 15

Comment installer Elasticsearch sur AlmaLinux 8

Comment installer Elasticsearch sur Debian 11

Comment installer Elasticsearch sur Fedora 35