Elasticsearch Stack per Python vorbereiten
Die Einrichtung von Indizes, Templates, Ingest-Pipelines, Index Lifecycle Policies und Dashboard-Objekten erfolgt am besten über die mitgelieferten Python-Skripte, weil ein Großteil des manuellen Aufwandes eingespart werden kann.
Python-Umgebung und Wheel-Package
Die Skripte werden als Wheel-Dateien bereitgestellt und müssen einer lokalen Python 3-Umgebung zur Verfügung gestellt werden. Der Installationsort von Elastic muss aus Sicht der Python-Skripte per HTTP erreichbar sein.
Eine detaillierte Beschreibung der Vorgehensweise befindet sich in resources/analytics/python/monitor_setup/README.md
.
Konfiguration der Parameter
Nachdem die Python- und die Elasticsearch-Umgebungen einsatzbereit sind, muss das Skript mit den notwendigen Parametern konfiguriert werden. Dies kann über eine JSON-Datei mit folgender Struktur erfolgen.
Alternativ können die Werte für common
, elasticsearch
, kibana
und proxy
auch als Systemumgebungsvariablen
gesetzt werden. Die Namen folgen einem Schema, das sich aus dem Pfad der JSON-Struktur ableitet, z.B. ELASTICSEARCH_URL
.
{
"common": {
"local_imports_dir": "<PATH TO resources/analytics/elasticsearch>",
"overwrite_objects": false
},
"elasticsearch": {
"url": "http://elastic-host.example.com:9200",
"username": "elastic",
"password": "<elastic_pwd>"
},
"kibana": {
"url": "http://kibana-host.example.com:5601"
},
"proxy": {
"url": "http://proxy-host.example.com",
"use_forwarding_for_https": false
},
"spaces": {
"default": {
"id": "ct-monitor-test",
"name": "service.monitor",
"description": "con terra service.monitor - monitoring, operations, analytics",
"color": "#ffffff",
"initials": "CT",
"imageUrl": "data:image/png;base64,iVBORw0KG....."
},
"FME": {
"id": "ct-monitor",
"name": "service.monitor for FME",
"description": "con terra service.monitor for FME",
"color": "#ffffff",
"initials": "CT",
"imageUrl": "data:image/png;base64,iVBORw0KG....."
}
}
}
|
Pfad zu den Konfigurationsdateien |
COMMON_LOCAL_IMPORTS_DIR |
---|---|---|
|
Wenn dieses Flag auf |
COMMON_OVERWRITE_OBJECTS |
|
URL zur Elasticsearch-Instanz |
ELASTICSEARCH_URL |
|
Name des Benutzers |
ELASTICSEARCH_USER |
|
Passwort des Benutzers |
ELASTICSEARCH_PASSWORD |
|
URL zu Kibana |
KIBANA_URL |
|
URL zu einem Proxy-Server, falls dieser für den Zugriff auf Elasticsearch notwendig ist. Sobald eine Proxy-URL angegeben ist, wird der gesamte Datenverkehr über den Proxy geleitet. |
PROXY_URL |
|
Entscheidung ob Anfragen an den HTTPS-Proxy weitergeleitet oder ein TLS-Tunnel mithilfe der HTTP-CONNECT-Methode erstellt werden soll. In Standardszenarien muss diese Option nicht verändert werden. Das Forwarding kann beispielsweise genutzt werden, falls der genutzte Proxy die HTTP-CONNECT-Methode nicht unterstützt. |
PROXY_USE_FORWARDING_FOR_HTTPS |
Das Skript liest die in der Installation vorliegenden Konfigurationsdateien (local_imports_dir
) und sendet diese zu Elasticsearch und Kibana.
Ausführen des Skriptes
Das Python-Skript kann dann über die Kommandozeile in der Python-Umgebung ausgeführt werden. Sollen nur die Objekte installiert werden, die für eine Einbindung von FME Flow relevant sind, so wird zusätzlich der Parameter t
verwendet.
python -m monitor_setup -c C:\data\config.json -a full
python -m monitor_setup -c C:\data\config.json -a full -t FME
Die Kommandozeilenausgabe informiert dann über den Erfolg der Ausführung.