+39 050 751 9999 info@seacom.it

Per effettuare ricerche su più Cluster si utilizza abitualmente Tribe Node, il cui utilizzo è però deprecato dalla versione 5.4, e verrà definitivamente rimosso nella versione 7.0Da Elasticsearch 5.3 è stata introdotta la funzione Cross Cluster Search, che presenta sostanziali vantaggi rispetto alla soluzione precedentemente adottata.

Vediamone alcuni:

  • Rende possibili le ricerche su cluster generati su versioni ES differenti.
  • È  possibile ricercare indici duplicati con lo stesso nome.
  • Non è necessario aggiornare tutte le informazioni sullo stato del cluster, riducendo il carico sul nodo master.

Vediamo quindi un esempio d’uso:

Richiamiamo i dati da un cluster ES 5.6.4 in un cluster  ES 6.0.0. Supponendo che entrambi i cluster siano in esecuzione su diverse porte sull’host locale, cerchiamo gli indici metricbeat da 6.0.0 a 5.6.4. Impostiamo config/elasticsearch.yml file per ciascun cluster come segue.

es-5.6.4 Impostazioni

cluster.name: es-5

http.port: 9201

transport.tcp.port: 9301

Configurazione in es-6.0.0

cluster.name: es-6

http.port: 9202

transport.tcp.port: 9302

search:

  remote:

    cluster_one:

      seeds: 127.0.0.1:9301

Se si effettua la ricerca su cluster es-6.0.0 da es-5.6.4, è possibile cercare solo il file di configurazione es-6.0.0 con le impostazioni precedenti. La ricerca viene eseguita in questo modo:

GET /cluster_one:metricbeat/_search

{

  “query”: {

    “match_all”: {}

  }

}

È inoltre possibile effettuare la ricerca raggruppando gli indici del cluster remoto e del cluster corrente.

GET /cluster_one:metricbeat,metricbeat/_search

{

  “query”: {

    “match_all”: {}

  }

}

È importante sottolineare che la nuova funzionalità non supporta la maggior parte delle API tranne _search.

Anche l’accesso a un singolo documento utilizzando GET genera un errore.

GET /cluster_one:metricbeat/docs/AWAQ3bycH8X78-aeS7-b

Eseguendo il GET  viene infatti lanciata l’eccezione index_not_found_exception

{

  “error”: {

    “root_cause”: [

      {

        “type”: “index_not_found_exception”,

        “reason”: “no such index”,

        “resource.type”: “index_expression”,

        “resource.id”: “cluster_one:metricbeat”,

        “index_uuid”: “_na_”,

        “index”: “cluster_one:metricbeat”

      }

    ],

    “type”: “index_not_found_exception”,

    “reason”: “no such index”,

    “resource.type”: “index_expression”,

    “resource.id”: “cluster_one:metricbeat”,

    “index_uuid”: “_na_”,

    “index”: “cluster_one:metricbeat”

  },

  “status”: 404

}

Naturalmente anche le opzioni _mapping e _setting generano un errore index_not_found_exception

GET /cluster_one:metricbeat/_mappings

In conclusione, Cross Cluster Search è un sistema facile e sicuro da utilizzare, perché fornisce esclusivamente la possibilità di recuperare i dati del cluster remoto senza gestire direttamente lo stato di più cluster.

È bene ricordare che la funzionalià è ancora in Beta:

This functionality is in beta and is subject to change. The design and code is considered to be less mature than official GA features. Elastic will take a best effort approach to fix any issues, but beta features are not subject to the support SLA of official GA features.

Per approfondire ecco alcuni link utili:

 

Articolo originale a cura di Jongmin Kim

Contatta Seacom

Vuoi rimanere aggiornato su tutte novità Elastic o richiedere una consulenza a Seacom?
Visita la pagina dedicata, oppure

Contattaci
mautic is open source marketing automation