Knihovna v TeskaLabs LogMan.io¶
Knihovna obsahuje deklarace pro analyzátory, obohacovače, korelátory, šablony pro e-maily a instantní zprávy, dashboardy, zprávy a další obsah TeskaLabs LogMan.io.
Organizace knihovny¶
Knihovna je organizována do složek s položkami, podobně jako soubory v souborovém systému.
Následující příklad ilustruje organizaci knihovny se třemi základními složkami /Baselines/
, /Dashboards/
a /Parsers/
:
/Baselines/
Dataset.yaml
Host.yaml
User.yaml
/Dashboards/
Linux/
Common/
Overview.json
/Parsers/
Linux/
Auditd/
10_parser.yaml
20_enricher.yaml
30_mapping_ECS.yaml
Common/
10_parser.yaml
20_parser_process.yaml
30_parser_message.yaml
Pravidla pro cesty knihovny
Vnitřně (v konfiguraci mikroservis atd.) musí cesty knihovny splňovat tato pravidla:
- Každá cesta MUSÍ začínat znakem "/", včetně kořenové cesty. Používají se pouze absolutní cesty, např.
/Parsers/Microsoft/Exchange/
. - Cesta složky MUSÍ končit znakem "/", např.
/Parsers/Microsoft/Exchange/
. - Cesta položky MUSÍ končit příponou (např. ".txt", ".json", ...), např.
/Parsers/Microsoft/Exchange/10_parser.yaml
- Název složky NESMÍ obsahovat ".". Název položky NESMÍ začínat ".".
Note
Uživatel nemůže vytvářet nové složky v nejvyšší složce /
. Některé složky umožňují uživateli přidávat/ upravovat/ mazat soubory a složky uvnitř nich, zatímco některé to neumožňují. Každá složka knihovny má svá vlastní pravidla pro to.
Některé složky knihovny umožňují pouze specifické přípony souborů.
Příklad: Složka /Parsers/
umožňuje vytváření nových složek a pravidel pro analýzu končících na .yaml
uvnitř.
Složka /Homepage/
neumožňuje přidávat další položky (protože existuje pouze jedna domovská stránka).
Složka /Alerts/Workflow/
neumožňuje vytváření nových složek uvnitř, zatímco umožňuje přidávání nebo mazání existujících pracovních postupů upozornění.
Vrstvy knihovny¶
Knihovna je organizována do vrstev. Každá vrstva knihovny se odkazuje na jeden zdroj souborů knihovny a konkrétní technologii úložiště. Vrstvy knihovny jsou "naskládány" do jednoho pohledu (překryty), což spojuje obsah každé vrstvy do jednoho sjednoceného prostoru. Toto vrstvení umožňuje kombinovat obsah z různých zdrojů (tzv. poskytovatelů) do jedné knihovny. Vrstvy knihovny jsou zpočátku konfigurovány v produktu během instalace. Neexistuje žádný limit na počet naskládaných vrstev knihovny.
Schéma: Příklad nastavení vrstev knihovny, uživatel uvidí položky v zeleném rámečku.
Příklad konfigurace implementující výše uvedené schéma.
Knihovna je konfigurována buď centrálně pomocí ASAB Maestro, nebo v každém konfiguračním souboru mikroservisu.
[knihovna]
poskytovatelé:
zk://
libsreg+https://libsreg1.example.com,libsreg2.example.com/my-library#v24.11
git+https://github.com/john/awesome_project.git#deployment
libsreg+https://vendor.example.com/common-library
- Vrstva 0 je v Apache ZooKeeper, znovu využívající konfiguraci ZooKeeper z části
[zookeeper]
. - Vrstva 1 je "my-library" distribuovaná pomocí registru knihoven.
- Vrstva 2 je z Gitu (nebo konkrétněji z GitHubu), sledující větev "deployment".
- Vrstva 3 je "společná knihovna" poskytovatele.
Zapisovatelná vrstva¶
Vrstva 0 je jediná zapisovatelná vrstva. Je určena k vytváření a úpravě vlastního obsahu. Uživatel může upravovat obsah této vrstvy pomocí editoru "Knihovna" v uživatelském rozhraní.
Vyšší vrstvy jsou pouze pro čtení, určené pro jednosměrnou distribuci obsahu knihovny do nasazení.
Pokud uživatel upraví položku, která je přítomna ve vrstvách pouze pro čtení, je uložena ve vrstvě 0, což přepisuje položku se stejnou cestou na vyšších vrstvách. Toto je mechanismus, jak mohou uživatelé měnit obsah dodaný společnými knihovnami a podobně.
Vrstva 0 je dále rozdělena na cíle, což může být globální cíl pro obsah, který je dostupný pro celé nasazení, nebo nájemní cíl, který ukládá obsah pro konkrétní nájemce. To znamená, že obsah specifický pro nájemce, jako jsou Parsers nebo Dashboards, je uložen ve vrstvě 0, v cíli "nájemce".
Typy vrstev knihovny¶
Každá vrstva knihovny je dodávána prostřednictvím poskytovatele.
Apache ZooKeeper¶
Vrstva uložená lokálně v technologii Apache ZooKeeper. Je to distribuovaná a redundantní vrstva prostřednictvím konsensuálního mechanismu v ZooKeeperu. Tato vrstva je typickou volbou pro zapisovatelnou vrstvu 0.
Konfigurační prefix: zk:/
.
Note
Administrátoři mohou také použít nástroj ZooNavigator k prozkoumání a úpravě obsahu vrstvy ZooKeeper.
Repozitář knihoven¶
Obsah v této vrstvě je poskytován prostřednictvím distribučního bodu specifikovaného URI. Distribuční bod je server nebo veřejné cloudové úložiště přístupné přes HTTPS. Je to vrstva pouze pro čtení. Distribuce přes repozitář knihoven je preferovaný způsob distribuce obsahu. Obsah vrstvy je automaticky aktualizován, takže pokud je aktualizovaný obsah dostupný na serverech repozitáře knihoven, bude distribuován do knihoven v nasazeních.
Konfigurační prefix: libsreg:/
.
Příklad: libsreg+https://libsreg1.example.com/my-library
.
Verze¶
Tento poskytovatel podporuje verzování.
Verze je specifikována v fragmentové části URL (po symbolu #
):
Příklad: libsreg+https://libsreg1.example.com/my-library#v24.11
Verze mohou být statické (tj. v24.11
, neměnící se po jejím vydání) nebo rolling (tj. production
nebo main
, změny jsou nepřetržitě propagovány do distribučního bodu a tím do nasazení).
Tip
Verzování je navrženo tak, aby fungovalo s CI/CD procesem na publikátorovi obsahu knihovny. Typicky je "hlavní" nebo zlatá kopie knihovny uložena v Gitu na platformě CI/CD a je nasazena do distribučního bodu automatizací CI/CD.
Odolnost¶
Tento poskytovatel podporuje odolné dodávání obsahu. Můžete specifikovat více než jeden distribuční server v konfiguraci. TeskaLabs LogMan.io bude iterovat na další specifikované servery, pokud požadavek selže.
Příklad: libsreg+https://libsreg1.example.com,libsreg2.example.com/my-library
.
Git¶
Vrstva, která poskytuje (pouze pro čtení) obsah z Git repozitáře. Je určena pro nepřetržitou dodávku obsahu z Git serveru, jako je GitHub nebo GitLab.
Konfigurační prefixy: git+https:/
, git+http:/
nebo git:/
.
Verze v Gitu¶
Tento poskytovatel podporuje verzování.
Verze je specifikována v fragmentové části URL (po symbolu #
):
Příklad: git+https://github.com/john/awesome_project.git#deployment
Výchozí verze je nastavena v konkrétním Git repozitáři.
Typické hodnoty jsou master
nebo main
.
Používá se, když není poskytnut žádný fragment.
Verze mohou být statické (tj. v24.11
, neměnící se po jejím vydání) nebo rolling (tj. production
nebo main
, změny jsou nepřetržitě propagovány do distribučního bodu a tím do nasazení).
Souborový systém¶
Vrstva uložená v souborovém systému.
Warning
Jelikož je souborový systém lokální pro uzel, tento typ vrstvy není vhodný pro použití v clusterech.
Konfigurační prefixy: file:/
nebo /..
(jak v absolutních cestách souborového systému).
Microsoft Azure Storage¶
Vrstva, která poskytuje (pouze pro čtení) obsah z kontejneru umístěného v Microsoft Azure Storage.
Konfigurační prefix: azure+https:/
Note
Pokud není úroveň veřejného přístupu kontejneru nastavena na "Veřejný přístup", pak musí být vytvořena "Politika přístupu" s oprávněním "Číst" a "Seznam" a "Shared Access Signature" (SAS) dotazovací řetězec musí být přidán do URL v konfiguraci:
[knihovna]
poskytovatelé: azure+https://ACCOUNT-NAME.blob.core.windows.net/BLOB-CONTAINER?sv=2020-10-02&si=XXXX&sr=c&sig=XXXXXXXXXXXXXX
Povolení a zakázání obsahu¶
Jakákoli položka obsahu knihovny může být globálně nebo specificky pro nájemce zakázána. Zakázáním souborů mohou administrátoři upravit obsah dostupný uživatelům konkrétního nájemce.
Obsah může být povolen/zakázán z obrazovky "Knihovna" nebo pomocí souboru /.disabled.yaml
umístěného ve vrstvě 0.
Společná knihovna LogMan.io¶
Společná knihovna LogMan.io je distribuovaný obsah, který se nachází na nejvyšších vrstvách knihovny. Reprezentuje výchozí obsah, poskytovaný TeskaLabs nebo partnery.
Plnotextové indexování¶
Obsah knihovny (všechny vrstvy) je automaticky indexován, aby uživatelé mohli rychle vyhledávat konkrétní obsah.
Další informace¶
Technické podrobnosti lze také nalézt zde https://docs.teskalabs.com/asab.