Cluster Configuration¶
It stores custom configuration options specific to the deployment and very often common for multiple services in the cluster.
ASAB Config¶
The ASAB Config microservice is probably the smallest microservice in the LogMan.io ecosystem, although this does not lessen its importance. It provides REST API to the content of the cluster configuration, mainly used by the Web UI.
The configuration is accessible and editable from the Web UI.
Oragnization of cluster configuration¶
Cluster configuration is organized by configuration types. Each type (e.g. Discover, Tenants) provides JSON schema describing the nature of the configuration files.
Each configuration file has to match with JSON schema of its type.
/asab/config
ZooKeeper node structure:
- /asab/config/
- Discover/
- lmio-system-events.json
- lmio-system-others.json
- Tenants/
- system.json
Example of asab/config/Tenants
JSON schema:
{
"$id": "Tenants schema",
"type": "object",
"title": "Tenants",
"description": "Configure tenant data",
"default": {},
"examples": [
{
"General": {
"schema": "/Schemas/ECS.yaml",
"timezone": "Europe/Prague"
}
}
],
"required": [],
"properties": {
"General": {
"type": "object",
"title": "General tenant configuration",
"description": "Tenant-specific data",
"default": {},
"required": [
"schema",
"timezone"
],
"properties": {
"schema": {
"type": "string",
"title": "Schema",
"description": "Absolute path to schema in the Library",
"default": [
"/Schemas/ECS.yaml",
"/Schemas/CEF.yaml"
],
"$defs": {
"select": {
"type": "select"
}
},
"examples": [
"/Schemas/ECS.yaml"
]
},
"timezone": {
"type": "string",
"title": "Timezone",
"description": "Timezone identifier, e.g. Europe/Prague",
"default": "",
"examples": [
"Europe/Prague"
]
}
}
}
},
"additionalProperties": false
}
Example of /asab/config/Tenants/system.json
:
{
"General": {
"schema": "/Schemas/ECS.yaml",
"timezone": "Europe/Prague"
}
}