Elasticsearch

Aus Byte-Welt Wiki
Zur Navigation springenZur Suche springen

Rolling Index

Um zu vermeiden dass zu viele Shards erstellt werden bietet es sich an, statt wie default mäßig "indexname-{date}" einen Index mit Alias zu erstellen und diesen nach selbst definierten Regeln rollen zu lassen.

Erst muss der Index erstellt werden, hierbei gilt zu beachten, dass dies der Index ist der z.B. für Kibana benutzt wird, dieser hat einen Alias, welcher dann zb bei logstash konfiguriert wird

PUT /<Index-Name>-000001
{
 "aliases": {
   "<IndexNameSchreibend>": {}
 }
}

Hier bietet es sich vielleicht an, <Index-Name> logstash-serverlogs_readonly und <IndexNameSchreibend> logstash-serverlogs_write zu nehmen. Die 000001 wird automatisch beim rollen hochgezählt, hier können auch mehr oder weniger Stellen verwendet werden. Um den Index zu rollen wird das Kommando verwendet:

POST /<IndexNameSchreibend>/_rollover
{
  "conditions": {
    "max_size":  "5gb",
    "max_age":   "7d",
    "max_docs":  5
  }
}

Hierbei wird WENN eine der übergebenen Conditions anschlägt ein neuer Index erstellt, die Antwort kann so aussehen:

{
 "acknowledged": true,
 "old_index": "<Index-Name>-000001",
 "new_index": "<Index-Name>-000002",
 "rolled_over": true,
 "dry_run": false,
 "conditions": {
   "[max_docs: 5]": true,
   "[max_age: 7d]": false,
   "[max_size: 5gb] ": false
 }
}

Wenn "acknowledged": false zurück gegeben wird bedeutet dies nur dass nicht gerollt wurde weil keins der Argumente eingetreten ist.


Backup

Um Backups durchzuführen muss die Location in der elasticsearch.yml angegeben sein

path.repo: /backups/my_backup


Anschließend das Backup einrichten:

PUT _snapshot/my_backup/ 
{
   "type": "fs",
   "settings": {
       "location": "/backups/my_backup"
   }
}


Backup durchführen

PUT _snapshot/my_backup/<snapshot_name>?wait_for_completion=true

Links