Přeskočit obsah

Instalace na jednom uzlu

Následující kroky popisují instalaci TeskaLabs LogMan.io na jednom uzlu.

Požadavky

Pro nastavení hardwaru postupujte podle těchto instrukcí. Měli byste začít s čerstvou instalací Linuxu a běžící službou Docker.

Pokud instalujete LogMan.io spolu s jinými službami na jedné stroji, mějte na paměti, že LogMan.io ovládá tyto adresáře ve výchozím nastavení:

  • /opt/site/
  • /data/hdd/
  • /data/ssd/

Ujistěte se, že tyto adresáře jsou před instalací prázdné.

sudo rm -rf /opt/site/* /data/hdd/* /data/ssd/*

Pokud je to možné, zastavte všechny kontejnery Docker a odstraňte všechny data Dockeru.

docker system prune -af

Pro spuštění instalace v Podman místo Dockeru postupujte podle těchto instrukcí.

Ujistěte se, že jste nakonfigurovali požadované parametry jádra Linuxu.

Bootstrap

Spusťte tento příkaz pro zahájení bootstrapu LogMan.io.

docker run -it --rm --pull always \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /opt/site:/opt/site \
  -v /opt/site/docker/conf:/root/.docker/ \
  -v /data:/data \
  -e NODE_ID=`hostname -s` \
  --network=host \
  pcr.teskalabs.com/asab/asab-governator:stable \
  python3 -m governator.bootstrap

Jednoduché GUI se spustí v terminálu.

  • Vyberte instalaci prvního uzlu clusteru.
  • Budete požádáni o přihlašovací údaje do registru Dockeru TeskaLabs. Autorizace ke stažení softwaru je kritickým krokem.
  • Zkontrolujte node_id. To je název hostitele serveru a musí být řešitelný na IP adresu uvedenou.

Na konci bootstrap procesu by mělo být spuštěno 6 služeb v 6 Docker kontejnerech:

  • ZooKeeper
  • ASAB Remote Control
  • ASAB Governator
  • ASAB Library
  • ASAB Config
  • Zoonavigator

Note

Pro zobrazení všech běžících Docker kontejnerů, jednoduše použijte:

docker ps

Pro zobrazení všech nainstalovaných Docker obrazů použijte:

docker images

Seznamte se s modelem

Ve svém prohlížeči navštivte http://<node_id>:9001/zoonavigator. (Nahraďte <node_id> skutečným node ID, názvem hostitele serveru nebo IP adresou.)

Přejděte na /library/Site/model.yaml

Model bude vypadat podobně jako tento:

/library/Site/model.yaml
define:
  type: rc/model

services:
  zoonavigator:
    instances: {1: {node: "<node_id>"} }

params:
  PUBLIC_URL: "https://localhost"  # změňte tento výchozí na vlastní doménu

applications:
  - name: "ASAB Maestro"
    version: v24.13

Přidání nové služby do nasazení je tak snadné, jako přidání dvou řádků do souboru yaml. Zkuste přidat jednu instanci Mongo služby.

/library/Site/model.yaml
define:
  type: rc/model

services:
  zoonavigator:
    instances: {1: {node: "<node_id>"} }
  mongo:
    - <node_id>

params:
  PUBLIC_URL: "https://localhost"  # změňte tento výchozí na vlastní doménu

applications:
  - name: "ASAB Maestro"
    version: v24.13

Když jste s modelem spokojeni, musíte aplikovat model na nasazení. Tím synchronizujete model s realitou.

Služba ASAB Remote Control je zodpovědná za aplikaci modelu. Pro aplikaci změn můžete použít API ASAB Remote Control.

curl -X 'POST' 'http://<node_id>:8891/node/<node_id>' -H 'Content-Type: application/json' -d '{"command": "up"}'

Uvidíte spuštěný kontejner asab-governator-up. Tento kontejner nainstaluje Mongo a bude odstraněn po dokončení.

Instalace WebUI

Závislostmi pro LogMan.io WebUI jsou:

  • nginx
  • seacat-auth

Rozšiřte model:

/library/Site/model.yaml
define:
  type: rc/model

services:
  zoonavigator:
    instances: {1: {node: "<node_id>"} }
  mongo: 
    - <node_id>
  seacat-auth:
    - <node_id>
  nginx: 
    - <node_id>

params:
  PUBLIC_URL: "https://<node_id>"

applications:
  - name: "ASAB Maestro"
    version: v24.13

webapps:
  /: LogMan.io WebUI
  /auth: SeaCat Auth WebUI

V části webapps specifikujte webové aplikace a umístění, kde by měly být dostupné. Budete potřebovat obě LogMan.io a SeaCat Auth webové aplikace.

webapps:
  /: LogMan.io WebUI
  /auth: SeaCat Auth WebUI

Nezapomeňte specifikovat veřejnou URL. Můžete použít název hostitele (node ID), pokud nemáte připravenou žádnou doménu.

params:
  PUBLIC_URL: "https://<node_id>"

Nakonec aplikujte model:

curl -X 'POST' 'http://<node_id>:8891/node/<node_id>' -H 'Content-Type: application/json' -d '{"command": "up"}'

Přístup k WebUI

WebUI LogMan.io je nyní přístupné z veřejné URL nastavené v modelu. Požádejte o výchozí přihlašovací údaje.

Nastavení společné knihovny LMIO a SMTP

V UI přejděte na Údržba > Konfigurace. Pro pokračování v instalaci služeb LogMan.io zadejte distribuční bod společné knihovny LogMan.io a nastavte ji jako druhou vrstvu knihovny.

libsreg+https://libsreg.z6.web.core.windows.net,libsreg-secondary.z6.web.core.windows.net/lmio-common-library

Konfigurujte SMTP server. Je to důležité při vytváření nových přihlašovacích údajů a umožňování přístupu k WebUI LogMan.io.

Pro propagaci obou těchto konfigurací na všechny služby znovu aplikujte změny.

curl -X 'POST' 'http://<node_id>:8891/node/<node_id>' -H 'Content-Type: application/json' -d '{"command": "up"}'

Nyní můžete vytvořit uživatelské přihlašovací údaje a pozastavit výchozí admin.

Instalace služeb třetích stran

Rozšiřte model pro instalaci všech služeb třetích stran, které jsou vyžadovány v aplikacích LogMan.io.

Elasticsearch může být velmi náročný na přidělování paměti. Pokud je to potřeba, nastavte, kolik paměti přidělit Elasticsearch. Výchozí je 2GB pro master node a 28GB pro každý data node.

/library/Site/model.yaml
define:
  type: rc/model

services:
  zoonavigator:
    instances: {1: {node: "<node_id>"} }
  mongo: 
    - <node_id>
  seacat-auth:
    - <node_id>
  nginx: 
    - <node_id>
  influxdb:
    - <node_id>
  grafana:
    - <node_id>
  telegraf:
    - <node_id>
  jupyter:
    - <node_id>
  kafka:
   - <node_id>
  kafdrop:
    - <node_id>
  kibana:
    - <node_id>
  elasticsearch:
    instances:
      master-1:
        node: <node_id>
      hot-1:
        node: <node_id>
        descriptor:
          environment:
            ES_JAVA_OPTS: "-Xms2g -Xmx2g"
      warm-1:
        node: <node_id>
        descriptor:
          environment:
            ES_JAVA_OPTS: "-Xms2g -Xmx2g"
      cold-1:
        node: <node_id>
        descriptor:
          environment:
            ES_JAVA_OPTS: "-Xms2g -Xmx2g"


params:
  PUBLIC_URL: "https://<node_id>"

applications:
  - name: "ASAB Maestro"
    version: v24.13
  - name: "LogMan.io"
    version: v24.13

webapps:
  /: LogMan.io WebUI
  /auth: SeaCat Auth WebUI

Aplikujte změny!

curl -X 'POST' 'http://<node_id>:8891/node/<node_id>' -H 'Content-Type: application/json' -d '{"command": "up"}'

Instalace služeb ASAB a LogMan.io

Pro umožnění deskriptorů z aplikace LogMan.io (uložených ve společné knihovně LogMan.io) je potřeba specifikovat aplikaci a její globální verzi v modelu. Také přidejte více služeb do modelu.

/library/Site/model.yaml
define:
  type: rc/model

services:
  zoonavigator:
    instances: {1: {node: "<node_id>"} }
  mongo: 
    - <node_id>
  seacat-auth:
    - <node_id>
  nginx: 
    - <node_id>
  influxdb:
    - <node_id>
  grafana:
    - <node_id>
  telegraf:
    - <node_id>
  jupyter:
    - <node_id>
  kafka:
    - <node_id>
  kafdrop:
    - <node_id>
  kibana:
    - <node_id>
  elasticsearch:
    instances:
      master-1:
        node: <node_id>
      hot-1:
        node: <node_id>
        descriptor:
          environment:
            ES_JAVA_OPTS: "-Xms2g -Xmx2g"
      warm-1:
        node: <node_id>
        descriptor:
          environment:
            ES_JAVA_OPTS: "-Xms2g -Xmx2g"
      cold-1:
        node: <node_id>
        descriptor:
          environment:
            ES_JAVA_OPTS: "-Xms2g -Xmx2g"

  asab-pyppeteer:
    - <node_id>
  bs-query:
    - <node_id>
  asab-iris:
    - <node_id>
  lmio-installer:
    - <node_id>
  lmio-receiver:
    - <node_id>
  lmio-depositor:
    - <node_id>
  lmio-elman:
    - <node_id>
  lmio-alerts:
    - <node_id>

params:
  PUBLIC_URL: "https://<node_id>"

applications:
  - name: "ASAB Maestro"
    version: v24.13
  - name: "LogMan.io"
    version: v24.13

webapps:
  /: LogMan.io WebUI
  /auth: SeaCat Auth WebUI

Aplikujte změny!

curl -X 'POST' 'http://<node_id>:8891/node/<node_id>' -H 'Content-Type: application/json' -d '{"command": "up"}'

⭐ ⭐ Gratulujeme! TeskaLabs LogMan.io je nainstalován! ⭐ ⭐

Pokračujte v instalaci přidáním nového tenantu a připojením log zdrojů. Podívejte se, jak připojit simulátor logů.