Přeskočit obsah

Konfigurace Clusteru

Ukládá vlastní konfigurační možnosti specifické pro nasazení a velmi často společné pro více služeb v clusteru.

Konfigurace ASAB

Microservice ASAB Config je pravděpodobně nejmenší microservice v ekosystému LogMan.io, ačkoli to nesnižuje jeho důležitost. Poskytuje REST API pro obsah konfigurace clusteru, kterou většinou využívá Web UI.

Konfigurace je dostupná a editovatelná z Web UI.

Cluster Configuration UI

Organizace konfigurace clusteru

Konfigurace clusteru je organizována podle konfiguračních typů. Každý typ (např. Průzkumník, Tenants) poskytuje JSON schéma popisující povahu konfiguračních souborů.

Každý konfigurační soubor musí odpovídat JSON schématu svého typu.

Struktura ZooKeeper node /asab/config:

- /asab/config/
  - Průzkumník/
    - lmio-system-events.json
    - lmio-system-others.json
  - Tenants/
    - system.json

Příklad JSON schématu asab/config/Tenants:

{
    "$id": "Tenants schema",
    "type": "object",
    "title": "Tenants",
    "description": "Konfigurace dat tenanta",
    "default": {},
    "examples": [
        {
            "General": {
                "schema": "/Schemas/ECS.yaml",
                "timezone": "Europe/Prague"
            }
        }
    ],
    "required": [],
    "properties": {
        "General": {
            "type": "object",
            "title": "Obecná konfigurace tenanta",
            "description": "Data specifická pro tenanta",
            "default": {},
            "required": [
                "schema",
                "timezone"
            ],
            "properties": {
                "schema": {
                    "type": "string",
                    "title": "Schéma",
                    "description": "Absolutní cesta k schématu v knihovně",
                    "default": [
                        "/Schemas/ECS.yaml",
                        "/Schemas/CEF.yaml"
                    ],
                    "$defs": {
                        "select": {
                            "type": "select"
                        }
                    },
                    "examples": [
                        "/Schemas/ECS.yaml"
                    ]
                },
                "timezone": {
                    "type": "string",
                    "title": "Časová zóna",
                    "description": "Identifikátor časové zóny, např. Europe/Prague",
                    "default": "",
                    "examples": [
                        "Europe/Prague"
                    ]
                }
            }
        }
    },
    "additionalProperties": false
}

Příklad /asab/config/Tenants/system.json:

{
    "General": {
        "schema": "/Schemas/ECS.yaml",
        "timezone": "Europe/Prague"
    }
}