Přeskočit obsah

LogMan.io Collector Mirage

LogMan.io Collector má schopnost vytvářet mock logy a posílat je skrze datový kanál, hlavně pro testovací a demonstrační účely. Zdroj, který produkuje mock logy, se nazývá Mirage.

Mirage používá LogMan.io Collector Library jako úložiště pro sesbírané logy od různých poskytovatelů. Logy v této knihovně jsou odvozeny z reálných logů.

Konfigurace vstupu Mirage

# Konfigurační YAML soubor pro vstupy
[config]
path=./etc/lmio-collector.yaml

# Připojení ke Knihovně, kde jsou uloženy logy Mirage
[library]
providers=git+http://user:password@gitlab.example.com/lmio/lmio-collector-library.git

[web]
listen=0.0.0.0 8088
input:Mirage:MirageInput:
    path: /Mirage/<cesta>/
    eps: <počet logů odeslaných za sekundu>
    output: <output_id>

Průchodnost logů

Můžete definovat počet logů produkovaných každou sekundu (EPS - events per second).

Následující konfigurace bude produkovat 20 logů každou sekundu:

input:Mirage:MirageInput:
  eps: 20

Tato konfigurace také přidá odchylku, takže každou sekundu bude počet mezi 10 a 40 logy:

input:Mirage:MirageInput:
  eps: 20
  deviation: 0.5

Aby bylo možné vytvořit realističtější zdroj logů a změnit EPS během dne, můžete použít scénáře.

input:Mirage:MirageInput:
  eps: dayshift
  deviation: 0.5

Dostupné možnosti jsou:

  • normal
  • gaussian
  • dayshift
  • nightshift
  • tiny
  • peak

Nakonec můžete vytvořit vlastní scénář. Můžete nastavit EPS každou minutu:

input:Mirage:MirageInput:
  eps:
    "10:00": 10
    "12:00": 20
    "15:10": 10
    "15:11": 12
    "16:00": 5
    "23:00": 0
  deviation: 0.5

Přidání nových zdrojů logů do Knihovny

  1. Vytvořte nový repozitář pro sběr logů nebo klonujte stávající.
  2. Vytvořte nový adresář. Pojmenujte adresář po zdroji logů.
  3. Vytvořte nový soubor pro každý log v adresáři zdrojů. Mirage může stejný log použít vícekrát při odesílání logů skrze kanál. (Nemusíte mít 100 samostatných logových souborů pro odeslání 100 logů - Mirage bude opakovat stejné logy.)

Ve výchozím nastavení, při odesílání logů skrze kanál, vybírá Mirage z vašich logových souborů náhodně a přibližně rovnoměrně, ale můžete přidat váhu logům k jejich změně.

Šablonování logů

K získání více unikátních logů bez nutnosti vytvářet více logových souborů, šablonujte vaše logy. Můžete si vybrat, která pole v logu budou mít proměnné hodnoty, poté vytvořit seznam hodnot, které chcete tím polem naplnit, a Mirage náhodně vybere hodnoty.

  1. Ve vašem logu vyberte pole, které byste chtěli mít s proměnnými hodnotami. Nahraďte hodnoty pole za ${nazevPole}, kde nazevPole je to, čím budete pole ve vašem seznamu nazývat.

    "user.name":${user.name}, "id":${id}, "msg":${msg}

  2. Vytvořte soubor nazvaný values.yaml ve vašem adresáři zdrojů logů.

  3. V novém souboru values.yaml uveďte možné hodnoty pro každé šablonované pole. Pole ve vašem souboru values.yaml musí odpovídat názvům polí ve vašich logových souborech.

    values:
        user.name:
            - Albus Brumbál
            - Harry Potter
            - Hermiona Grangerová
        id:
            - 171
            - 182
            - 193
        msg:
            - Spojení ukončeno
            - Spojení přerušeno
            - Spojení úspěšné
            - Spojení selhalo
    

Formáty datumu a času

Mirage může generovat aktuální časové razítko pro každý log. K tomu musíte zvolit formát, ve kterém bude časové razítko. Pro přidání časového razítka do vašeho mock logu přidejte ${datetime: <format>} do textu ve vašem souboru.

Example

${datetime: %y-%m-%d %H:%M:%S} vygeneruje časové razítko 23-06-07 12:55:26

${datetime: %Y %b %d %H:%M:%S:%f} vygeneruje časové razítko 2023 Jun 07 12:55:26:002651

Direktivy datumu a času

Direktivy datumu a času jsou odvozeny od Python modulu datetime.

Direktiv Význam Příklad
%a Den týdne jako zkrácený název dle místnímu nastavení. Ne, Po, ..., So (cs_CZ);
%A Den týdne jako plné jméno dle místnímu nastavení. Neděle, Pondělí, ..., Sobota (cs_CZ);
%w Den týdne jako desetinné číslo, kde 0 je neděle a 6 je sobota. 0, 1, ..., 6
%d Den v měsíci jako desetinné číslo doplněné nulou. 01, 02, ..., 31
%b Měsíc jako zkrácený název dle místnímu nastavení. Led, Úno, ..., Pro (cs_CZ);
%B Měsíc jako plné jméno dle místnímu nastavení. Leden, Únor, ..., Prosinec (cs_CZ);
%m Měsíc jako desetinné číslo doplněné nulou. 01, 02, ..., 12
%y Rok bez století jako desetinné číslo doplněné nulou. 00, 01, ..., 99
%Y Rok se stoletím jako desetinné číslo. 0001, 0002, ..., 2013, 2014, ..., 9998, 9999
%H Hodina (24hodinový cyklus) jako desetinné číslo doplněné nulou. 00, 01, ..., 23
%I Hodina (12hodinový cyklus) jako desetinné číslo doplněné nulou. 01, 02, ..., 12
%p Místní ekvivalent buď AM nebo PM. AM, PM (en_US); am, pm (de_DE)
%M Minuta jako desetinné číslo doplněné nulou. 00, 01, ..., 59
%S Sekunda jako desetinné číslo doplněné nulou. 00, 01, ..., 59
%f Mikrosekunda jako desetinné číslo, doplněné nulou na 6 číslic. 000000, 000001, ..., 999999
%z UTC offset ve formě ±HHMM[SS[.ffffff]] (prázdný řetězec, pokud je objekt naivní). (prázdný), +0000, -0400, +1030, +063415, -030712.345216
%Z Název časového pásma (prázdný řetězec, pokud je objekt naivní). (prázdný), UTC, GMT
%j Den v roce jako desetinné číslo doplněné nulou. 001, 002, ..., 366
%U Číslo týdne v roce (neděle jako první den týdne) jako desetinné číslo doplněné nulou. Všechny dny v novém roce před první nedělí jsou považovány za týden 0. 00, 01, ..., 53
%W Číslo týdne v roce (pondělí jako první den týdne) jako desetinné číslo doplněné nulou. Všechny dny v novém roce před prvním pondělím jsou považovány za týden 0. 00, 01, ..., 53
%c Místní vhodné zobrazení data a času. Út 16 Srp 21:30:00 1988 (cs_CZ); Di 16 Aug 21:30:00 1988 (de_DE)
%x Místní vhodné zobrazení data. 16.08.88 (cs_CZ); 16.08.1988 (de_DE)
%X Místní vhodné zobrazení času. 21:30:00 (cs_CZ); 21:30:00 (de_DE)
%% Doslovný znak '%'. %

Váha logů

Pokud chcete, aby Mirage vybrala některé logy častěji a některé méně často, můžete dát určitým logovým souborům větší váhu. Váha znamená, jak mnohem častěji nebo méně často je logový soubor vybrán v porovnání s ostatními.

Chcete-li změnit váhu, přidejte číslo na začátek názvu logového souboru. Toto číslo vytvoří poměr s ostatními logovými soubory. Pokud soubor nezačíná číslem, Mirage jej považuje za 1.

Example

  • 5-priklad1.log
  • 2-priklad2.log
  • 3-priklad3.log
  • priklad4.log

Mirage by tyto logy posílal v poměru 5:2:3:1.