...
- Wymagana jest usługa Elasticsearch w wersji 7 lub wyższej 7 (uruchamiana w poniższej sekcji Konfiguracja i punkcie 3).
...
- Zalecane jest stosowanie dysków SSD na maszynie, gdzie znajduje się usługa Elastic.
- Ilość pamięci RAM to minimum 8GB. Zaleca się, by pamięć RAM wynosiła 16-64GB. Należy zwrócić uwagę jaką pamięcią dysponuje kontener Elastica.
Jeśli usługa Elastica znajduje się w innej lokalizacji niż system Plusworkflow należy umożliwić połączenie o jak największej przepustowości pomiędzy nimi.
Warning title Elastic na środowisku produkcyjnym W przypadku używania ElasticSearch na środowisku produkcyjnym zaleca się ustawić vm.max_map_count na co najmniej 262144
Linux:
grep vm.max_map_count /etc/sysctl.confsysctl -w vm.max_map_count=262144
Problemy z wydajnością indeksowania oraz pamięcią
- Zwiększyć 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
- 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.
Spróbować zwiększyć limit przepustowości w Kibanie z poziomu zakładki Management -> Dev Tools wywołując (domyślnie jest to 20mb):
Code Block PUT /_cluster/settings { "persistent" : { "indices.store.throttle.max_bytes_per_sec" : "100mb" } }
Na czas indeksowania można też dokonać następującej zmiany:
Code Block PUT /_cluster/settings { "transient" : { "indices.store.throttle.type" : "none" } }
Po skończonym indeksowaniu należy ustawić wartość "merge" tym samym poleceniem.
- Wyłączenie swapping https://www.elastic.co/guide/en/elasticsearch/reference/7.17/setup-configuration-memory.html
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 w parametrze systemowym ElasticClusterMaxShardsPerNode.
Alternatywnie w Kibanie 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
...
- Jak działa elastic - https://www.elastic.co/blog/found-elasticsearch-top-down
- Multi-nodes docker - https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-dev-mode
- Wydajność - https://www.elastic.co/guide/en/elasticsearch/reference/8.6/tune-for-indexing-speed.html
https://www.elastic.co/guide/en/elasticsearch/guide/master/indexing-performance.html - Optymalizacja wyszukiwania - https://www.elastic.co/blog/found-optimizing-elasticsearch-searches/
- Wymagania sprzętowe - https://www.elastic.co/guide/en/elasticsearch/guide/master/hardware.html
- Optymalizacja pamięci - https://www.elastic.co/guide/en/elasticsearch/reference/7.17/setup-configuration-memory.html