...
- Wymagana jest instalacja Dockera wraz z Docker Compose.
- W repozytorium kodu (lub docker-compose.yml) plusworkflow/plusworkflow-core znajduje się docker-compose.yml do uruchomienia elastica i Kibany lokalnie.
- W celu zmiany nazwy użytkownika i hasła do usługi należy zmodyfikować parametry ELASTIC_USERNAME i ELASTIC_PASSWORD w sekcji elasticsearch w pliku docker-compose.yml.
Należy też zmienić parametry ELASTICSEARCH_USERNAME i ELASTICSEARCH_PASSWORD sekcji kibana powyższego pliku (połączenie Kibany z usługą Elastica). Będąc w lokalizacji powyższego pliku docker-compose.yml należy wywołać:
Code Block docker compose up
Trzeba ustawić flagę w experimental.properties:
Code Block elasticProcessSearch=true
Dodać plik w katalogu domowym w configu: elastic.properties o zawartości:
Code Block elastic.hostname=localhost elastic.port=9200 elastic.username=elastic elastic.password=elastic #Opcjonalne elastic.environment= elastic.protocol=
- Opcjonalnie można podać parametr elastic.environment, który jest przydatny w przypadku jednej usługi Elasticsearch dla kilku instancji systemu. Podajemy w nim unikalną nazwę dla każdej z tych instancji.
Nazwa nie może zawierać następujących znaków: spacja, ", *, \, <, |, ,, >, /, ? Opcjonalnie można podać parametr elastic.protocol, który określa, czy komunikacja z usługą Elasticsearch powinna odbywać się po HTTPS, czy HTTP (W zależności od ustawień serwera). Podajemy w nim wartość https lub http. W przypadku braku parametru, komunikacja odbywa się domyślnie po HTTP.
Info title Uwaga Jeżeli komunikacja z Elasticsearch odbywa się po HTTPS, to należy uzupełnić parametr elastic.protocol wartością https.
Aby komunikacja z usługą działała poprawnie, należy wgrać ważny certyfikat do systemu. Można skorzystać z systemowej zakładki Certyfikaty.- Włączyć parametr systemowy ElasticEnabled (jeśli istnieje)
- Dodać zadanie zaplanowane o nazwie: Indeksowanie procesów zadań. Po jego uruchomieniu zastaną zaindeksowane wszystkie procesy i zadania.
Zadanie posiada parametr "Rozmiar części", który odpowiada za dzielenie indeksowanych danych. Manipulując nim można mieć wpływ na szybkość wykonywania zadania.
Zadnie po przetworzeniu każdej z części zapisuje w parametrze systemowym ElasticLastIndexedProcessObjectId ID ostatniego zaindeksowanego procesu z paczki. W przypadku wystąpienia błędu podczas wykonywania zadania i po jego ponownym uruchomieniu zadanie wznowi indeksowanie od ID procesu zapisanego w parametrze. W celu zresetowania zadania, należy jako wartość parametru podać 0.
Problemy z wydajnością indeksowania
- Zmienić wartość -Xmx parametru ES_JAVA_OPTS sekcji elasticsearch w pliku docker-compose.yml na odpowiednio wyższą wartość.
Kontener elastica należy zaktualizować przy użyciu polecenia:
Code Block docker compose up
- Zalecane jest stosowanie dysków SSD na maszynie, gdzie znajduje się usługa Elastic.
- W przypadku, gdy usługa Elastica znajduje się na serwerze w innej lokalizacji można zmniejszać wartość parametru "Rozmiar części" zadania zaplanowanego do indeksowania. Spowoduje to zmniejszenie requesta przesyłanego do Elastica.
Obsługa Kibany
- Kibana uruchomiona z powyższej konfiguracji dostępna jest pod adresem: http://localhost:5601/ Dane dostępowe takie jak w elastic.properties powyżej.
Przy pierwszym uruchomieniu Kibany trzeba ustawić patterny dla indeksów (process* dla procesów i activity* dla zadań).
- Zaindeksowane dokumenty przeglądamy w zakładce Discovery.
- W przypadku problemów ze zgodnością danych w elasticu (np. po zmianie typu jakiegoś indeksowanego pola) należy przejść do:
Management -> Stack Management -> IndexManagement
zaznaczyć wszystko (Include rollup indices i Include hidden indices muszą być odznaczone) i wybrać delete indices. Następnie trzeba przeindeksować wszystkie dokumenty zadaniem zaplanowanym.
W przypadku wystąpienia błędu:
Code Block Validation Failed: 1: this action would add [2] shards, but this cluster currently has [1000]/[1000] maximum normal shards open;
Należy zwiększyć maksymalny limit aktywnych shard'ów z poziomu zakładki Management -> Dev Tools wywołując:
Code Block PUT /_cluster/settings { "persistent" : { "cluster.max_shards_per_node": "2000" } }
Usuwanie wiele indeksów na raz
Note UWAGA. Usuwanie wielu indeksów bez znajomości składni może skutkować usunięciem nadmiarowej ilości danych.
Domyślnie opcja usuwania wielu niejednoznacznych indeksów jest wyłączona.
Aby móc korzystać z takiej opcji należy wywołać:Code Block PUT /_cluster/settings { "transient": { "action.destructive_requires_name":false } }
Przykłady:
Usuwanie indeksów z prefixem activity:
Code Block DELETE /activity*
Usuwanie wszystkich indeksów (ukryte indeksy nie zostaną usunięte):
Code Block DELETE _all
...