Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Wymagania

  1. Wymagana jest usługa Elasticsearch w wersji 7 lub wyższej  (uruchamiana w poniższej sekcji Konfiguracja i punkcie 3).

Konfiguracja

  1. Wymagana jest instalacja Dockera wraz z Docker Compose. 
  2. W repozytorium kodu (lub docker-compose.ymlplusworkflow/plusworkflow-core znajduje się docker-compose.yml do uruchomienia elastica i Kibany lokalnie.
  3. Będąc w lokalizacji powyższego pliku docker-compose.yml należy wywołać:

    docker compose up
  4. Trzeba ustawić flagę w experimental.properties:

    elasticProcessSearch=true
  5. Dodać plik w katalogu domowym w configu: elastic.properties o zawartości:

    elastic.hostname=localhost
    elastic.port=9200
    elastic.username=elastic
    elastic.password=elastic
    #Opcjonalne
    elastic.environment=
    elastic.protocol=
  6. 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, ", *, \, <, |, ,, >, /, ?
  7. 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.

    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.

  8. Włączyć parametr systemowy ElasticEnabled (jeśli istnieje)
  9. 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.

Obsługa Kibany

  1. Kibana uruchomiona z powyższej konfiguracji dostępna jest pod adresem: http://localhost:5601/ Dane dostępowe takie jak w elastic.properties powyżej.
  2. Przy pierwszym uruchomieniu Kibany trzeba ustawić patterny dla indeksów (process* dla procesów i activity* dla zadań).

  3. Zaindeksowane dokumenty przeglądamy w zakładce Discovery.
  4. 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.

  5. 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ć maksymalny limit aktywnych shard'ów z poziomu zakładki Management -> Dev Tools wywołując:

    PUT /_cluster/settings
    {
      "persistent" : {
          "cluster.max_shards_per_node": "2000"
      }
    }
  6. Usuwanie wiele indeksów na raz

    UWAGA. Usuwanie wielu procesó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ć:

    PUT /_cluster/settings
    {
      "transient": {
          "action.destructive_requires_name":false
      }
    }

    Przykłady:

    1. Usuwanie indeksów z prefixem activity:

      DELETE /activity*


    2. Usuwanie wszystkich indeksów (ukryte indeksy nie zostaną usunięte):

      DELETE _all



Obsługa Dockera

  1. Usuwanie kontenerów - Będąc w lokalizacji pliku docker-compose.yml należy wywołać:

    docker compose down

    Jeżeli chcemy również usunąć wolumen ze wszystkimi danymi wywołujemy z opcją -v

    docker compose down -v
  2. Jeżeli chcemy utworzyć kontenery bez wyświetlania logów, dodajemy komendę -d

    docker compose up -d
  3. Aby wyświetlić status kontenerów należy wykonać:

    docker stats

Uwagi

  1. Po usunięciu/anulowaniu procesu lub zawieszeniu/anulowaniu/przywróceniu zadania z poziomu widoku wyników wyszukiwania daną mogą nie być spójne, należy ponowne wyszukać.
  2. Wyszukiwanie zadań z użyciem pól związanych z terminami ostatecznymi nie wyszukuje tylko zadań z terminami ostatecznymi.
  3. Zmienne tabelaryczne są wyświetlane wyłącznie w ramach jednego wiersza.

Przydatne linki:

  1. Jak działa elastic - https://www.elastic.co/blog/found-elasticsearch-top-down
  2. Multi-nodes docker - https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html#docker-cli-run-dev-mode
  3. Wydajność - https://www.elastic.co/guide/en/elasticsearch/reference/8.6/tune-for-indexing-speed.html
  4. Optymalizacja wyszukiwania - https://www.elastic.co/blog/found-optimizing-elasticsearch-searches/

 

 

  • No labels