Kontener elastica należy zaktualizować przy użyciu polecenia:
docker compose up |
Spróbować zwiększyć limit przepustowości w Kibanie z poziomu zakładki Management -> Dev Tools wywołując (domyślnie jest to 20mb):
PUT /_cluster/settings
{
"persistent" : {
"indices.store.throttle.max_bytes_per_sec" : "100mb"
}
} |
Na czas indeksowania można też dokonać następującej zmiany:
PUT /_cluster/settings
{
"transient" : {
"indices.store.throttle.type" : "none"
}
} |
Po skończonym indeksowaniu należy ustawić wartość "merge" tym samym poleceniem.
Przy pierwszym uruchomieniu Kibany trzeba ustawić patterny dla indeksów (process* dla procesów i activity* dla zadań).
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.
Uwaga! W celu usunięcia wszystkich indeksów należy użyć zadania zaplanowanego Usuwanie indeksów procesów i zadań, nie należy tego robić w Kibanie!
W przypadku wystąpienia błędu:
Validation Failed: 1: this action would add [2] shards, but this cluster currently has [1000]/[1000] maximum normal shards open; |
Należy zwiększyć parametr cluster.max_shards_per_node w Kibanie z poziomu zakładki Management -> Dev Tools wywołując (można to również zrobić w docker-compose.yml - opisane w sekcji Konfiguracja):
PUT /_cluster/settings
{
"persistent" : {
"cluster.max_shards_per_node": "2000"
}
} |
Zadanie zaplanowane automatycznie dostosowuje wartość powyższego parametru (na podstawie liczby definicji procesów/zadań), jednak może być potrzeba ręcznej jego zmiany (np. w przypadku kilku instancji systemu na jednym elasticu).
Wielkość parametru można oszacować w przypadku kilku instancji systemu. W tym celu, na każdej z baz danych należy wywołać następujące zapytanie:
select sum(shards * 2) as minShards
from (select count(distinct activitydefinitionid) as shards
from activities
UNION ALL
select count(*)
from (select pd.processdefinitionid, a.activitydefinitionid
from activities a
join processes p on a.process = p.objectid
join processdefinitions pd on p.processdefinition = pd.objectid
group by pd.processdefinitionid, a.activitydefinitionid) tmp) tmp2 |
Uzyskane wyniki należy zsumować i zaokrąglić do pełnych tysięcy.
W przypadku wystąpienia błędu (może wystąpić podczas usuwania procesów):
Trying to create too many scroll contexts. Must be less than or equal to: [500] |
Należy zwiększyć parametr search.max_open_scroll_context w Kibanie z poziomu zakładki Management -> Dev Tools wywołując (można to również zrobić w docker-compose.yml - opisane w sekcji Konfiguracja):
PUT /_cluster/settings
{
"persistent" : {
"search.max_open_scroll_context": 10000
}
} |
Usuwanie wiele indeksów na raz
|
Domyślnie opcja usuwania wielu niejednoznacznych indeksów jest wyłączona.
Aby móc korzystać z takiej opcji należy wywołać:
PUT /_cluster/settings { "transient": { "action.destructive_requires_name":false } } |
Przykłady:
Usuwanie indeksów z prefixem activity:
DELETE /activity* |
Usuwanie wszystkich indeksów (ukryte indeksy nie zostaną usunięte):
DELETE _all |
Uwaga! W celu usunięcia wszystkich indeksów należy użyć zadania zaplanowanego Usuwanie indeksów procesów i zadań, nie należy tego robić w Kibanie!
Jeśli wystąpi poniższy błąd podczas eksportu wyników wyszukiwania do pliku:
java.io.IOException: entity content is too long [356732089] for the configured buffer limit [104857600] |
to należy zmniejszyć wartość parametru systemowego PackSizeInAdvanceSearchExport.
Błąd ten oznacza, że request przesyłany do Elastica jest za duży (domyślnie jest to 100 MB). Istnieje możliwość zwiększenia tego limitu po stronie Elastica (bez zmniejszania parametru systemowego), jednak jest to niezalecane.
Limit można zwiększyć w pliku docker-compose.yml w sekcji elasticsearch -> environment, dodając linijkę:
"http.max_content_length": "200mb" |
z odpowiednią wartością rozmiaru request'a. Kontener elastica należy zaktualizować przy użyciu polecenia:
docker compose up |
W przypadku następującego błędy podczas indeksowania:
failed to parse: Limit of total fields [1000] has been exceeded while adding new fields [1] |
Należy zwiększyć wartość parametru systemowego: ElasticMappingTotalFieldsLimit