Langzeitaufbewahrung von Daten
Einführung
Wenn aus Speicherplatzgründen Daten nicht "ewig" aufbewahrt werden können oder sollen und es gleichzeit den Bedarf gibt, Informationen, die in diesen Daten vorliegen zumindest teilweise für eine nachträgliche Betrachtung aufzubewahren, müssen die Originaldaten verkleinert und für die spätere Analyse aufbewahrt werden.
Auf dieser Seite erfolgt eine technische Betrachtung der Optionen und es wird eine Empfehlung fürden Umgang für ausgewählte Teile der Daten gegeben.
technische Option
manuelle Extraktion / Re-Indizierung
Daten können selektiv in neue Indizes re-indiziert werden, wenn nicht auf den vollen Informationsgehalt verzichtet werden kann.
Elastic Rollup Jobs
Rollup Jobs werden als eigenständige Tasks auf Elastic Daten konfiguriert und definieren, welche Informationen (z.b. statistische Kennwerte) auf welcher Aggregationsbasis und zeitlicher Genauigkeit extrahiert werden sollen.
Nachteile
-
fachliche Anforderungen an die Langzeit-Daten müssen klar sein
-
keine Perspektive mit service.monitor 5 / Elasticsearch 8
Rollup-Jobs sind seit Elastic 8.11.0 abgekündigt. Stattdessen wird Elastic Downsampling empfohlen |
Datenthemen
ArcGIS Log-Daten
ArcGIS Log-Daten weisen das größte Einsparpotential in service.monitor auf, weil viele Nachrichten anfallen und die Dokumente individuell relativ groß sind.
mögliche Zusammenfassungen:
-
[ags.code: 9029] Anzahl aller Requests
-
aggregiert auf Host-Namen
-
aggregiert auf Dienst-Ebene
-
zeitliche Genauigkeit: eine Stunde
-
-
[ags.code: 7549] Anzahl aller Timeouts bei Dienstanfragen
-
aggregiert auf Host-Namen
-
aggregiert auf Dienst-Ebene
-
zeitliche Genauigkeit: eine Stunde
-
-
[ags.code:100004] Anzahl aller REST-Anfragen
-
aggregiert auf Host-Namen
-
aggregiert auf Dienst-Ebene
-
aggregiert auf Ressource
-
Ausführungszeit: min, max, average, median
-
Antwortgröße: min, max, average, median
-
zeitliche Genauigkeit: eine Stunde
-
-
[ags.code: 10011] Ausführung aller ExportMapImage-Anfragen
-
aggregiert auf Host-Namen
-
aggregiert auf Dienst-Ebene
-
Ausführungszeit: min, max, average, median
-
zeitliche Genauigkeit: eine Stunde
-
Vorgehen
POST /_aliases
{
"actions": [
{
"add": {
"index": "ct-arcgis-logfile-*",
"alias": "rollup-ct-arcgis-10011",
"is_write_index": false,
"filter": {
"bool": {
"filter": [
{
"match": {
"ags.code": 10011
}
}
]
}
}
}
}
]
}
POST /_aliases
{
"actions": [
{
"add": {
"index": "ct-arcgis-logfile-*",
"alias": "rollup-ct-arcgis-100004",
"is_write_index": false,
"filter": {
"bool": {
"filter": [
{
"match": {
"ags.code": 100004
}
}
]
}
}
}
}
]
}
POST /_aliases
{
"actions": [
{
"add": {
"index": "ct-arcgis-logfile-*",
"alias": "rollup-ct-arcgis-7549",
"is_write_index": false,
"filter": {
"bool": {
"filter": [
{
"match": {
"ags.code": 7549
}
}
]
}
}
}
}
]
}
POST /_aliases
{
"actions": [
{
"add": {
"index": "ct-arcgis-logfile-*",
"alias": "rollup-ct-arcgis-9029",
"is_write_index": false,
"filter": {
"bool": {
"filter": [
{
"match": {
"ags.code": 9029
}
}
]
}
}
}
}
]
}
POST /_aliases
{
"actions": [
{
"add": {
"index": "ct-arcgis-logfile-*",
"alias": "rollup-ct-arcgis-7615",
"is_write_index": false,
"filter": {
"bool": {
"filter": [
{
"match": {
"ags.code": 7615
}
}
]
}
}
}
}
]
}
GET /_cat/aliases/*rollup*
PUT /_rollup/job/rollup-ct-arcgis-100004
{
"index_pattern": "rollup-ct-arcgis-100004",
"rollup_index": "rollup-ct-arcgis-100004-data",
"cron": "0 0 0 * * ?",
"groups": {
"date_histogram": {
"fixed_interval": "60m",
"field": "@timestamp",
"delay": "1d",
"time_zone": "UTC"
},
"terms": {
"fields": [
"host.hostname.keyword",
"ags.target.keyword",
"ags.method.keyword"
]
}
},
"metrics": [
{
"field": "ags.elapsed",
"metrics": [
"avg",
"max",
"min",
"sum",
"value_count"
]
},
{
"field": "ags.size",
"metrics": [
"avg",
"max",
"min",
"sum",
"value_count"
]
}
],
"timeout": "20s",
"page_size": 1000
}
PUT /_rollup/job/rollup-ct-arcgis-9029
{
"index_pattern": "rollup-ct-arcgis-9029",
"rollup_index": "rollup-ct-arcgis-9029-data",
"cron": "0 0 0 * * ?",
"groups": {
"date_histogram": {
"fixed_interval": "60m",
"field": "@timestamp",
"delay": "1d",
"time_zone": "UTC"
},
"terms": {
"fields": [
"host.hostname.keyword",
"ags.target.keyword",
"ags.method.keyword"
]
}
},
"metrics": [],
"timeout": "20s",
"page_size": 1000
}
PUT /_rollup/job/rollup-ct-arcgis-10011
{
"index_pattern": "rollup-ct-arcgis-10011",
"rollup_index": "rollup-ct-arcgis-10011-data",
"cron": "0 0 0 * * ?",
"groups": {
"date_histogram": {
"fixed_interval": "60m",
"field": "@timestamp",
"delay": "1d",
"time_zone": "UTC"
},
"terms": {
"fields": [
"host.hostname.keyword",
"ags.target.keyword",
"ags.method.keyword"
]
}
},
"metrics": [
{
"field": "ags.elapsed",
"metrics": [
"avg",
"max",
"min",
"sum",
"value_count"
]
}
],
"timeout": "20s",
"page_size": 1000
}
PUT /_rollup/job/rollup-ct-arcgis-7549
{
"index_pattern": "rollup-ct-arcgis-7549",
"rollup_index": "rollup-ct-arcgis-7549-data",
"cron": "0 0 0 * * ?",
"groups": {
"date_histogram": {
"fixed_interval": "60m",
"field": "@timestamp",
"delay": "1d",
"time_zone": "UTC"
},
"terms": {
"fields": [
"host.hostname.keyword",
"ags.target.keyword",
"ags.method.keyword"
]
}
},
"metrics": [],
"timeout": "20s",
"page_size": 1000
}
PUT /_rollup/job/rollup-ct-arcgis-7615
{
"index_pattern": "rollup-ct-arcgis-7615",
"rollup_index": "rollup-ct-arcgis-7615-data",
"cron": "0 0 0 * * ?",
"groups": {
"date_histogram": {
"fixed_interval": "60m",
"field": "@timestamp",
"delay": "1d",
"time_zone": "UTC"
},
"terms": {
"fields": [
"host.hostname.keyword",
"ags.target.keyword"
]
}
},
"metrics": [
{
"field": "ags.elapsed",
"metrics": [
"avg",
"max",
"min",
"sum",
"value_count"
]
}
],
"timeout": "20s",
"page_size": 1000
}
POST _rollup/job/rollup-ct-arcgis-100004/_start
POST _rollup/job/rollup-ct-arcgis-9029/_start
POST _rollup/job/rollup-ct-arcgis-10011/_start
POST _rollup/job/rollup-ct-arcgis-7549/_start
POST _rollup/job/rollup-ct-arcgis-7615/_start