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.