ELK Stack – Installazione Elasticsearch

Published by Lello on

Elasticsearch è il motore di ricerca e analisi distribuito al centro dello stack Elastic. I vantaggi principali di Elasticsearch possono essere così brevemente riassunti:

  • permette ricerche e analisi in tempo reale per dati strutturati e non, numerici o geospaziali;
  • permette la costruzione di modelli analitici e predittivi;
  • permette, grazie alla sua natura distribuita, di adattarsi dinamicamente alla crescita dei dati da trattare.

Installeremo lo stack Elastic su un sistema basato su CentOS 7.7; utilizzeremo i repository dedicati messi a disposizione. Bisogna premettere che in realtà esistono 2 repository:

  1. Il primo fornisce i package utilizzabili sotto la licenza Elastic:

 artifacts.elastic.co/packages/7.x/yum

  1. Il secondo fornisce i package utilizzabili secondo la licenza Apache 2.0:

artifacts.elastic.co/packages/oss-7.x/yum

Per questo tutorial utilizzeremo il primo repository: creiamo il file /etc/yum.repos.d/elastic.repo  e inseriamo all’interno il seguente contenuto:

[elastic-7.x]
name=Elastic 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

Successivamente importiamo la chiave GPG del repository:

# rpm --import https://packages.elastic.co/GPG-KEY-elasticsearch

Procediamo con l’installazione di Elasticsearch:

# yum -y update
# yum -y install elasticsearch

Una volta installato, procediamo a modificare la configurazione di Elasticsearch editando il file /etc/elasticsearch/elasticsearch.yml :

cluster.name: elk-cluster-1                <== nome descrittivo del cluster di cui il nodo fa parte
node.name: elk-1                           <== nome descrittivo del nodo 
network.host: 192.168.xxx.xxx              <== indirizzo IP dell'host Elasticsearch
http.port: 9200                            <== porta di ascolto TCP
discovery.type: single-node                <== Il nostro non è stand-alone, non non fa parte di un cluster

Abilitiamo ed avviamo il servizio Elasticsearch:

# systemctl daemon-reload
# systemctl enable --now elasticsearch

Verifichiamo che il servizio elasticsearch sia up-and-running sull’indirizzo IP che abbiamo configurato:

# curl http://192.168.xxx.xxx:9200
{
  "name" : "ossec-1",
  "cluster_name" : "ossec-cluster",
  "cluster_uuid" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
  "version" : {
    "number" : "7.6.1",
    "build_flavor" : "default",
    "build_type" : "rpm",
    "build_hash" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX",
    "build_date" : "2020-02-29T00:15:25.529771Z",
    "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"
}

Otterremmo lo stesso risultato se aprissimo un browser e ci collegassimo all’indirizzo:

http://192.168.xxx.xxx:9200

Il nostro motore di ricerca Elasticsearch è ora attivo; attorno ad esso costruiremo l’ecosistema di data injection (Beats+Logstash) e visualizzazione (Kibana).

 

← ELK Stack

ELK– Installazione Kibana →