Zum Hauptinhalt springen

Blogs

ElasticStack-Installation auf CentOS7

Vorbereitung

  • CentOS 7 64 Bit mit 4GB RAM
  • Aufhebung der Blockierung der Ports für Elastic in der Firewall:
    1. sudo firewall-cmd --zone=public --add-port=9200/tcp --permanent # Elasticsearch HTTP
    2. sudo firewall-cmd --zone=public --add-port=9300/tcp --permanent # Elasticsearch TCP transport
    3. sudo firewall-cmd --reload

Schlüssel

  • Bedeutung der Farben in diesem Leitfaden:
  1. elasticsearch.repo → Bei rot geschriebenem Text handelt es sich um eine Freiform-Namensgebung, während schwarz geschriebener Text keine Freiform-Namensgebung ist.
  2. Code-Beispiele erscheinen in grauen Kästen
  3. ein http-Link mit curl-Befehl oder Import-Befehl in der VM/Moba ausgeführt werden soll. Ohne curl in einem beliebigen Webbrowser.
  4. In diesem Handbuch ist CentOS7 vorinstalliert. Die Verzeichnisse und Befehle können von Betriebssystem zu Betriebssystem variieren. Im Fall mit wird das Verzeichnis/der Befehl als blauer Text angezeigt, ansonsten als oranger Text.

 

Wenn es unter CentOS7 nicht funktioniert, werden diese Links helfen:

https://www.elastic.co/guide/en/elastic-stack-get-started/current/get-started-elastic-stack.html#install-elasticsearch 

https://www.elastic.co/guide/en/logstash/7.6/dir-layout.html 

https://www.elastic.co/guide/en/logstash/7.6/running-logstash.html

 

Schritt 1 - Java/OpenJDK installieren

Für die Installation ist die Java-Version 8 oder 11 erforderlich:

yum install java-1.8.0-openjdk-devel -y

 

Schritt 2 - Überprüfung der korrekten Installation

java -version

openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)

 

Schritt 3 - Erstellen des Elastic Repo

Zunächst wird eine Datei namens elasticsearch.repo im Verzeichnis /etc/yum.repos.d/ erstellt.

Dort wird das Folgende hineinkopiert:

[elasticsearch]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

Daraufhin wird der folgende Befehl ausgeführt:

yum install --enablerepo=elasticsearch elasticsearch -y

 

Schritt 4 - Starten von Elasticsearch mit systemd

Damit er automatisch startet, müssen die folgenden Befehle ausgeführt werden:

 

sudo /bin/systemctl daemon-reload

sudo /bin/systemctl enable elasticsearch.service

 

Schritt 5 - Konfigurieren Sie ElasticStak (optional)

Danach kann Elasticsearch mit den folgenden Befehlen gestartet oder gestoppt werden:

sudo systemctl start elasticsearch.service #starts

sudo systemctl stop elasticsearch.service #stop

 

Schritt 6 - Überprüfen Sie, ob Elasticsearch gestartet wurde.

Elastic gibt keine Rückmeldung, ob es gestartet wurde. Nur wenn sich Dateien in einem Unterordner befinden, wurde es korrekt installiert und gestartet.

ls /var/log/elasticsearch/

 

Alternativ können Sie auch in journalctl nachsehen:

journalctl --unit elasticsearch

May 06 04:14:36 localhost.localdomain systemd[1]: Started Elasticsearch.

 

Schritt 7 - Prüfen Sie, ob alles geklappt hat

Wenn Sie eine HTTP-Anfrage an PORT 9200 an den localhorst senden, können Sie überprüfen, ob alles funktioniert

curl -X GET "localhost:9200/"

{
  "name" : "localhost.localdomain",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "2CQpHaNnTs6mW3ntb65Z7A",
  "version" : {
    "number" : "7.6.2",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
    "build_date" : "2020-03-26T06:34:37.794943Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

 

Schritt 8 - Zuweisung einer Host-IP an Elastic

Elastic hat standardmäßig localhost als Host-IP eingestellt. Dies sollte im Verzeichnis /etc/elasticsearch/elasticsearch.yml geändert werden.

# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: IP der VM, auf der Elastic installiert wurde
#
# Set a custom port for HTTP:
#
http.port: 9200
#
# For more information, consult the network module documentation.
#

 

Schritt 9 - Interessante Befehle

Index erstellen logs:

curl -X PUT "192.168.20.100:9200/logs" -H 'Content-Type: application/json' -d'{ "settings" : { "index" : { } }}'

 

Löschen von index logs:

curl -XDELETE "192.168.20.100:9200/logs"

 

Aus Sicherheitsgründen

Standard-Elasticsearch-Yaml, die im Ordner /etc/elasticsearch/elasticsearch.yml zu finden ist:

# ======================== Elasticsearch Configuration =========================
#
# NOTE: Elasticsearch comes with reasonable defaults for most settings.
#       Before you set out to tweak and tune the configuration, make sure you
#       understand what are you trying to accomplish and the consequences.
#
# The primary way of configuring a node is via this file. This template lists
# the most important settings you may want to configure for a production cluster.
#
# Please consult the documentation for further information on configuration options:
# https://www.elastic.co/guide/en/elasticsearch/reference/index.html
#
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
#cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
#node.name: node-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
path.data: /var/lib/elasticsearch
#
# Path to log files:
#
path.logs: /var/log/elasticsearch
#
# ----------------------------------- Memory -----------------------------------
#
# Lock the memory on startup:
#
#bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this
# limit.
#
# Elasticsearch performs poorly when the system is swapping the memory.
#
# ---------------------------------- Network -----------------------------------
#
# Set the bind address to a specific IP (IPv4 or IPv6):
#
#network.host: 192.168.0.1
#
# Set a custom port for HTTP:
#
#http.port: 9200
#
# For more information, consult the network module documentation.
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
#discovery.zen.ping.unicast.hosts: ["host1", "host2"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
#
#discovery.zen.minimum_master_nodes:
#
# For more information, consult the zen discovery module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# Block initial recovery after a full cluster restart until N nodes are started:
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true