GNU/Linux >> LINUX-Kenntnisse >  >> OpenSuse

So installieren Sie Elasticsearch auf openSUSE Leap 15

Elasticsearch ist eine hochgradig skalierbare Open-Source-Volltextsuch- und Analysemaschine . Es ist im Allgemeinen die zugrunde liegende Engine/Technologie, die Anwendungen mit komplexen Suchfunktionen und -anforderungen unterstützt. Die Software unterstützt RESTful-Vorgänge, mit denen Sie große Datenmengen schnell und nahezu in Echtzeit speichern, durchsuchen und analysieren können. Elasticsearch ist bei Systemadministratoren und Entwicklern sehr beliebt und beliebt, da es sich um eine mächtige Suchmaschine handelt, die auf der Lucene-Bibliothek basiert.

Im folgenden Tutorial erfahren Sie, wie Sie Elastic Search auf openSUSE Leap 15 installieren .

Voraussetzungen

  • Empfohlenes Betriebssystem: openSUSE Leap – 15.x
  • Benutzerkonto: Ein Benutzerkonto mit Sudo- oder Root-Zugriff.

Betriebssystem aktualisieren

Aktualisieren Sie Ihr openSUSE Betriebssystem, um sicherzustellen, dass alle vorhandenen Pakete auf dem neuesten Stand sind:

sudo zypper refresh

Das Tutorial verwendet den sudo-Befehl und vorausgesetzt, Sie haben den Sudo-Status .

So überprüfen Sie den Sudo-Status Ihres Kontos:

sudo whoami

Beispielausgabe, die den Sudo-Status zeigt:

[joshua@opensuse ~]$ sudo whoami
root

Um ein bestehendes oder neues Sudo-Konto einzurichten, besuchen Sie unser Tutorial zum Hinzufügen eines Benutzers zu Sudoers auf openSUSE .

So verwenden Sie das Root-Konto verwenden Sie den folgenden Befehl mit dem Root-Passwort, um sich anzumelden.

su

CURL-Paket installieren

Die CURL Der Befehl wird für einige Teile dieses Handbuchs benötigt. Um dieses Paket zu installieren, geben Sie den folgenden Befehl ein:

sudo zyper install curl

Java-Paket installieren

Um Elasticsearch erfolgreich zu installieren und, was noch wichtiger ist, zu verwenden , müssen Sie Java installieren . Der Vorgang ist relativ einfach.

Geben Sie den folgenden Befehl ein, um OpenJDK zu installieren Paket:

sudo zypper install java-11-openjdk-devel

Elasticsearch installieren

Elasticsearch ist nicht verfügbar im Standard-openSUSE-Repository , also müssen Sie es aus dem Elasticsearch-Repository installieren .

Bevor Sie das Repository hinzufügen, importieren Sie den GPG-Schlüssel mit folgendem Befehl:

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

Der nächste Schritt besteht darin, eine Elasticsearch-Repository-Datei wie folgt zu erstellen:

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

Installieren Sie jetzt Elasticsearch mit dem folgenden Befehl:

sudo zypper install elasticsearch

Beispielausgabe:

Geben Sie "Y" ein Drücken Sie dann die "ENTER-TASTE" um mit der Installation fortzufahren

Damit Elasticsearch standardmäßig aktiviert wird, müssen Sie das insserv-Paket installieren .

sudo zypper install insserv

Standardmäßig ist der Elasticsearch-Dienst beim Booten deaktiviert und nicht aktiv. Um den Dienst zu starten und beim Systemstart zu aktivieren, geben Sie Folgendes ein:(systemctl) Befehl:

sudo systemctl enable elasticsearch.service --now

Beispielausgabe:

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

Überprüfen Sie, ob Elasticsearch ordnungsgemäß ausgeführt wird, indem Sie den curl-Befehl verwenden um eine HTTP-Anfrage zu senden an Port 9200 auf localhost wie folgt:

sudo curl http://localhost:9200?pretty

Beispielausgabe:

So konfigurieren Sie Elasticsearch

Elasticsearch-Daten werden im Standardverzeichnis (/var/lib/elasticsearch) gespeichert . Um die Konfigurationsdateien anzuzeigen oder zu bearbeiten, finden Sie sie im Verzeichnis (/etc/elasticsearch) , und Java-Startoptionen können in (/etc/default/elasticsearch) konfiguriert werden Konfigurationsdatei.

Die Standardeinstellungen sind in erster Linie für einzelne Server in Ordnung, da Elasticsearch auf localhost ausgeführt wird nur. Wenn Sie jedoch einen Cluster einrichten, müssen Sie die Konfigurationsdatei ändern, um Remote-Verbindungen zuzulassen.

Fernzugriff einrichten (optional)

Standardmäßig lauscht Elasticsearch nur auf localhost. Um dies zu ändern, öffnen Sie die Konfigurationsdatei wie folgt:

sudo nano /etc/elasticsearch/elasticsearch.yml

Scrollen Sie nach unten zu Zeile 56 und suchen Sie den Abschnitt "Netzwerk" und entkommentieren Sie (#) die folgende Zeile und ersetzen Sie sie wie folgt durch die interne private IP-Adresse oder die externe IP-Adresse:

Im Beispiel haben wir (#) auskommentiert der (network.host) und wie oben in eine interne private IP-Adresse geändert.

Aus Sicherheitsgründen ist es ideal für die Angabe von Adressen; Wenn Sie jedoch mehrere interne oder externe IP-Adressen haben, die auf den Server zugreifen, ändern Sie die Netzwerkschnittstelle so, dass sie alle abhört, indem Sie (0.0.0.0) eingeben wie folgt:

Speichern Sie die Konfigurationsdatei (STRG+O), Beenden Sie dann (CLTR+X) .

Sie müssen den Elasticsearch-Dienst mit dem folgenden Befehl neu starten, damit die Änderungen wirksam werden:

sudo systemctl restart elasticsearch

Firewalld für Elasticsearch konfigurieren

Standardmäßig sind keine Regeln für Elasticsearch eingerichtet, was später zu Problemen führen kann.

Fügen Sie zunächst eine neue dedizierte Zone für die Elasticsearch-Firewalld-Richtlinie hinzu:

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

Geben Sie als Nächstes die zulässigen IP-Adressen an, die auf den Memcached zugreifen dürfen.

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

Ersetzen Sie 1.2.3.4 durch die IP Adresse, die der Zulassungsliste hinzugefügt wird.

Wenn Sie mit dem Hinzufügen der IP-Adressen fertig sind, öffnen Sie den Port des Memcached.

Beispiel:TCP-Port 11211 .

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

Beachten Sie, dass Sie den Standardport in Ihrer Konfigurationsdatei ändern können, wenn Sie die Firewall-Port-Öffnungsregel oben auf den neuen Wert ändern.

Nachdem Sie diese Befehle ausgeführt haben, laden Sie die Firewall neu, um die neuen Regeln zu implementieren:

sudo firewall-cmd --reload

Beispielausgabe bei Erfolg:

success

Verwendung von Elasticsearch

So verwenden Sie Elasticsearch mit dem curl-Befehl ist ein unkomplizierter Vorgang. Unten sind einige der am häufigsten verwendeten:

Index löschen

Unterhalb des Index heißt es Beispiele .

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

Alle Indizes auflisten

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

Alle Dokumente im Index auflisten

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

Abfrage mit URL-Parametern

Hier verwenden wir das Lucene-Abfrageformat, um q=school:Harvard.

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

Abfrage mit JSON, auch bekannt als Elasticsearch Query DSL

Sie können Abfragen mithilfe von Parametern für die URL durchführen. Sie können aber auch JSON verwenden, wie im folgenden Beispiel gezeigt. JSON wäre einfacher zu lesen und zu debuggen, wenn Sie eine komplexe Abfrage haben, als eine riesige Zeichenfolge von URL-Parametern.

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

Listenindexzuordnung

Alle Elasticsearch-Felder sind Indizes. Das listet also alle Felder und ihre Typen in einem Index auf.

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

Daten hinzufügen

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

Dokument aktualisieren

So fügen Sie einem bestehenden Dokument Felder hinzu. Zuerst erstellen wir eine neue. Dann aktualisieren wir es.

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}
}'

Sicherungsindex

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

Bulk-Load-Daten im JSON-Format

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>

Clusterzustand anzeigen

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

Aggregation und Bucket-Aggregation

Für einen Nginx-Webserver erzeugt dies Web-Trefferzahlen nach Benutzerstadt:

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

        }
   }
  }
}
'

Dadurch wird die Anzahl der Produktantwortcodes der Stadt in einem Nginx-Webserverprotokoll erweitert

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"
                 }
        }
   }
}'

Verwendung von ElasticSearch mit Basisauthentifizierung

Wenn Sie die Sicherheit mit ElasticSearch aktiviert haben, müssen Sie den Benutzer und das Passwort wie unten gezeigt für jeden Curl-Befehl angeben:

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

Hübscher Druck

Fügen Sie ?pretty=true zu jeder Suche hinzu, um den JSON-Code hübsch auszudrucken. So:

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

Um nur bestimmte Felder abzufragen und zurückzugeben

Um nur bestimmte Felder zurückzugeben, fügen Sie sie in das Array _source ein:

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" }
    }
}

Nach Datum abfragen

Wenn das Feld vom Typ Datum ist, können Sie Datumsberechnungen wie folgt verwenden:

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

So entfernen (deinstallieren) Sie Elasticsearch

Wenn Sie Elasticsearch nicht mehr benötigen, können Sie die Software mit dem folgenden Befehl entfernen:

sudo zypper remove elasticsearch

Beispielausgabe:

Geben Sie "Y" ein Drücken Sie dann die "ENTER-TASTE" um mit dem Entfernen von Elasticsearch fortzufahren.


OpenSuse
  1. So installieren Sie Elasticsearch auf Debian 9

  2. So installieren Sie Mongodb 5 in Opensuse Leap 15.3

  3. So installieren Sie Mysql Server 8 auf OpenSUSE Leap 15.3

  4. So installieren und konfigurieren Sie Redis 6 unter OpenSUSE Leap 15.3

  5. So installieren Sie Java 17 in OpenSUSE Leap 15.3

So installieren Sie Snap &Snap-Store (Snapcraft) auf openSUSE Leap 15

So installieren und konfigurieren Sie Memcached auf openSUSE Leap 15

So installieren Sie Brave Browser auf openSUSE Leap 15

So installieren Sie Elasticsearch auf AlmaLinux 8

So installieren Sie Elasticsearch unter Debian 11

So installieren Sie Elasticsearch auf Fedora 35