Verwenden Sie Elasticsearch, um Indexdaten regelmäßig zu löschen

Verwenden Sie Elasticsearch, um Indexdaten regelmäßig zu löschen

1. Manchmal verwenden wir ES

Aufgrund begrenzter Ressourcen oder geschäftlicher Anforderungen möchten wir nur Daten aus dem aktuellsten Zeitraum speichern. Daher ist es erforderlich, die Daten zu einem festgelegten Zeitpunkt zu löschen.

2. Schreiben Sie ein Skript

vim del_es_by_day.sh
#!/bin/bash
#Geplante Löschung des Elasticsearch-Index#Autor Menard 2019-3-25
Datum = `Datum -d "-7 Tage" "+%Y.%m.%d"`
/usr/bin/curl -v --user elastic:password -XDELETE "http://192.168.10.201:9200/*-$date"

Ausführbare Berechtigungen hinzufügen chmod +x del_es_by_day.sh

3. Erstellen Sie einen Index zum Testen

test machen-2019.03.18
Index setzen-2019.03.18 

4. Führen Sie das Skript Testergebnisse aus und Sie können sehen, dass die Löschung erfolgreich ist

5. Erledigen Sie geplante Aufgaben

crontab -e
00 01 * * * /workspace/script/del_es_by_day.sh

Ergänzung: Geplante Sicherung und Wiederherstellung von Indexdaten durch Elasticsearch

Geplantes Backup-Skript

Geplante Linux-Aufgaben verwenden den Cron-Dienst zur Ausführung

Schreiben von Cron-Ausdrücken für geplante Aufgaben

crontab -e #Geben Sie die Bearbeitung der geplanten Cron-Aufgabe ein

Geplante Aufgaben

*/1 * * * * /opt/scheduler/es_bk.sh >> /opt/scheduler/bk_log.txt 2>&1

Das Skript es_bk.sh im Verzeichnis /opt/scheduler/ wird jede Minute ausgeführt und der Dateninhalt wird in die Datei bk.log.txt im Verzeichnis /opt/scheduler geschrieben.

Überprüfen Sie den Inhalt des Skripts es_bk.sh

#!/bin/bash
echo '=======================================start========================================'
#Löschen Sie den Backup-Snapshot curl -i -X ​​​​DELETE localhost:9200/_snapshot/es_backup/snapshot01
#Erneut sichern curl -i -X ​​​​PUT localhost:9200/_snapshot/es_backup/snapshot01
echo '=======================================Ende==========================================='

Für ES-Sicherungsdaten ist ein Snapshot der zu sichernden Indexdaten erforderlich. Es muss ein Snapshot-Name angegeben werden und es kann nicht der gleiche Snapshot verwendet werden. Daher muss vor jeder Sicherung der alte Snapshot gelöscht und anschließend erneut gesichert werden.

ES-Sicherung und -Wiederherstellung

Erstellen Sie ein Backup-Repository (Verzeichnis)

mkdir -p /bk/es/data
#Berechtigungen ändern chmod -R 777 bk

Ändern Sie die Datei elasticsearch.yml und geben Sie den Lagerort an

Senden Sie eine Anfrage zum Initialisieren des Repositorys

curl -i -H ""'Inhaltstyp:application/json;charset=UTF-8'"" -X PUT --data '{"Typ": "fs","Einstellungen": {"Standort": "/bk/es/data"}}' localhost:9200/_snapshot/es_backup

es_backup ist der Backup-Namespace und kann beliebig angegeben werden

Erstellen des ersten Snapshots

curl -i -X ​​​​PUT localhost:9200/_snapshot/es_backup/snapshot01

Wir werden es_backup verwenden, um alle Indexdaten von es auf snapshot01 zu sichern. Natürlich können wir auch nur den angegebenen Index sichern.

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X PUT --data '{"indices": "'bk_user_index_server'"}' localhost:9200/_snapshot/es_backup/snapshot01

Geplante Aufgaben neu starten

systemctl Neustart cron

Index wiederherstellen

Zuordnung wiederherstellen

curl -i -H ""'Content-Type:application/json;charset=UTF-8'"" -X POST --data '{"indices": "'bk_user_index_server'"}' localhost:9200/_snapshot/es_backup/snapshot01/_restore

Alles wiederherstellen

curl -i -X ​​​​POST localhost:9200/_snapshot/es_backup/snapshot01/_restore

Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur.

Das könnte Sie auch interessieren:
  • Implementierung der Indexaktion zur Elasticsearch-Quellcodeanalyse
  • Detaillierte Erläuterung der Shard-Zuweisung des Elasticsearch Recovery-Index
  • Beispiele für die grundlegenden Operationen zum Hinzufügen, Löschen, Ändern und Abfragen des Elasticsearch-Dokumentindex
  • Invertierter Index und Indexoperationen von Elasticsearch
  • ElasticSearch vernünftige Zuweisung des Indexfragmentierungsprinzips
  • ElasticSearch fügt Index-Codebeispielanalyse hinzu
  • Quellcodebeispiel für die Indexdatenfunktion von Elasticsearch

<<:  Detaillierte Erläuterung der MySQL-Indexauswahl und -Optimierung

>>:  CSS simuliert Float, um den Effekt eines zentrierten Textes zu erzielen, der das Bild links und rechts umgibt

Artikel empfehlen

So verstehen Sie den einfachen Speichermodus der Statusverwaltung von Vue

Inhaltsverzeichnis Überblick 1. Definieren Sie st...

Eine kurze Erläuterung der Syntax der VUE-Uni-App-Vorlage

1.v-bind (Abkürzung:) Um in Daten definierte Date...

Beispiel zum Festlegen der pseudostatischen WordPress-Eigenschaft in Nginx

Zitat aus Baidus Erklärung zu Pseudostatik: Pseud...

Tools zur Bildoptimierung für Webseiten und Tipps zur Verwendung

Als grundlegendes Element einer Webseite sind Bil...

base target="" steuert den Ziel-Open-Frame des Links

<base target=_blank> ändert den Zielrahmen d...

MySQL-Datenbankbeschränkungen und Prinzipien des Datentabellenentwurfs

Inhaltsverzeichnis 1. Datenbankbeschränkungen 1.1...

So deinstallieren Sie Docker Toolbox vollständig

Docker Toolbox ist eine Lösung zur Installation v...

Detaillierte Erklärung der Listendarstellung von Vue

Inhaltsverzeichnis 1. v-for: Array-Inhalte durchl...

So installieren Sie Docker mithilfe von Skripten unter Linux Centos

Was ist die Hauptfunktion von Docker? Derzeit gib...

Tutorial zu HTML-Formular-Tags (1):

Formulare sind eine wichtige externe Form zur Imp...

Verwendung von MySQL-Triggern

Inhaltsverzeichnis 1. Trigger-Einführung 1. Was i...