Sdílet prostřednictvím


Shromažďování protokolů ze souboru JSON pomocí agenta služby Azure Monitor

Vlastní protokoly JSON jsou jedním ze zdrojů dat používaných v pravidle shromažďování dat (DCR). Podrobnosti o vytvoření DCR najdete v části Shromažďování dat pomocí agenta služby Azure Monitor. Tento článek obsahuje další podrobnosti o typu textu a protokolů JSON.

Mnoho aplikací a služeb bude protokolovat informace do souborů JSON místo standardních služeb protokolování, jako je protokol událostí systému Windows nebo Syslog. Tato data je možné shromažďovat pomocí agenta služby Azure Monitor a ukládat do pracovního prostoru služby Log Analytics s daty shromážděnými z jiných zdrojů.

Požadavky

Základní operace

Následující diagram znázorňuje základní operaci shromažďování dat protokolu ze souboru JSON.

  1. Agent sleduje všechny soubory protokolu, které odpovídají zadanému vzoru názvů na místním disku.
  2. Každá položka v protokolu se shromažďuje a odesílá do služby Azure Monitor. Příchozí datový proud definovaný uživatelem se používá k analýze dat protokolu do sloupců.
  3. Pokud schéma příchozího datového proudu odpovídá schématu cílové tabulky, použije se výchozí transformace.

Snímek obrazovky zobrazující dotaz protokolu vracející výsledky kolekce souborů s oddělovači

Požadavky na soubory JSON a osvědčené postupy

Soubor, který agent azure Monitor monitoruje, musí splňovat následující požadavky:

  • Soubor musí být uložený na místním disku počítače s agentem služby Azure Monitor v adresáři, který se monitoruje.
  • Každý záznam musí být označen koncem řádku.
  • Soubor musí používat kódování ASCII nebo UTF-8. Jiné formáty, jako je UTF-16, se nepodporují.
  • Nové záznamy by se měly připojit na konec souboru a nepřepsat staré záznamy. Přepsání způsobí ztrátu dat.
  • Text JSON musí být obsažený v jednom řádku. Formát textu JSON není podporován. Podívejte se na ukázku níže.

Při dodržování následujících doporučení se ujistěte, že se vám nezobrazují problémy se ztrátou nebo výkonem dat:

  • Každý den vytvořte nový soubor protokolu, abyste mohli snadno vyčistit staré soubory.
  • Nepřetržitě vyčistí soubory protokolu v monitorovaném adresáři. Sledování mnoha souborů protokolu může zvýšit využití procesoru a paměti agenta. Počkejte aspoň 2 dny, aby bylo možné zpracovat dostatek času pro všechny protokoly.
  • Nepřejmenovávejte soubor, který odpovídá vzoru kontroly souboru, na jiný název, který odpovídá vzoru kontroly souboru. To způsobí, že se ingestují duplicitní data.
  • Nepřejmenovávejte ani nekopírujte velké soubory protokolu, které odpovídají vzoru kontroly souborů do monitorovaného adresáře. Pokud potřebujete, nepřesahujte 50 MB za minutu.

Vlastní tabulka

Než budete moct shromažďovat data protokolu ze souboru JSON, musíte v pracovním prostoru služby Log Analytics vytvořit vlastní tabulku, která bude přijímat data. Schéma tabulky musí odpovídat sloupcům v příchozím datovém proudu nebo musíte přidat transformaci, aby bylo zajištěno, že výstupní schéma odpovídá tabulce.

Upozornění: Neměli byste používat existující vlastní tabulku používanou agenty MMA. Agenti MMA nebudou moct zapisovat do tabulky, jakmile první agent AMA zapíše do tabulky. Měli byste vytvořit novou tabulku, kterou má AMA použít, aby se zabránilo ztrátě dat MMA.

Pomocí následujícího skriptu PowerShellu můžete například vytvořit vlastní tabulku s více sloupci.

$tableParams = @'
{
    "properties": {
        "schema": {
               "name": "{TableName}_CL",
               "columns": [
                    {
                        "name": "TimeGenerated",
                        "type": "DateTime"
                    }, 
                    {
                        "name": "MyStringColumn",
                        "type": "string"
                    },
                    {
                        "name": "MyIntegerColumn",
                        "type": "int"
                    },
                    {
                        "name": "MyRealColumn",
                        "type": "real"
                    },
                    {
                        "name": "MyBooleanColumn",
                        "type": "bool"
                    },
                    {
                        "name": "FilePath",
                        "type": "string"
                    },
                    {
                        "name": "Computer",
                        "type": "string"
                    }
              ]
        }
    }
}
'@

Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{WorkspaceName}/tables/{TableName}_CL?api-version=2021-12-01-preview" -Method PUT -payload $tableParams

Vytvoření pravidla shromažďování dat pro soubor JSON

Poznámka:

Vlastní příjem souborů JSON založený na agentech je aktuálně ve verzi Preview a na portálu zatím nemá kompletní uživatelské rozhraní. I když můžete vytvořit dcR pomocí portálu, musíte ho upravit tak, aby definoval sloupce v příchozím datovém proudu. Podrobnosti o vytvoření požadovaného řadiče domény najdete na kartě šablony Resource Manageru.

Příchozí datový proud

Soubory JSON obsahují název vlastnosti s každou hodnotou a příchozí datový proud v DCR musí obsahovat sloupec odpovídající názvu každé vlastnosti. Pokud vytvoříte DCR pomocí webu Azure Portal, budou sloupce v následující tabulce zahrnuty do příchozího datového proudu a musíte ho ručně upravit nebo vytvořit pomocí jiné metody, kde můžete explicitně definovat příchozí datový proud.

Column Type Popis
TimeGenerated datetime Čas vygenerování záznamu.
RawData string Tento sloupec bude prázdný pro protokol JSON.
FilePath string Pokud tento sloupec přidáte do příchozího datového proudu v DCR, naplní se cestou k souboru protokolu. Tento sloupec se nevytvořil automaticky a nejde ho přidat pomocí portálu. Musíte ručně upravit řadič domény vytvořený portálem nebo vytvořit řadič domény pomocí jiné metody, kde můžete explicitně definovat příchozí datový proud.
Computer string Pokud tento sloupec přidáte do příchozího datového proudu v řadiči domény, naplní se názvem počítače. Tento sloupec se nevytvořil automaticky a nejde ho přidat pomocí portálu. Musíte ručně upravit řadič domény vytvořený portálem nebo vytvořit řadič domény pomocí jiné metody, kde můžete explicitně definovat příchozí datový proud.

Vytvořte pravidlo shromažďování dat, jak je popsáno v tématu Shromažďování dat pomocí agenta služby Azure Monitor. V kroku Shromažďování a doručování vyberte protokoly JSON z rozevíracího seznamu Typ zdroje dat.

Nastavení Popis
Vzor souboru Určuje umístění a název souborů protokolu na místním disku. Pro názvy souborů, které se liší, například když se každý den vytvoří nový soubor s novým názvem, použijte zástupný znak. Můžete zadat více vzorů souborů oddělených čárkami.

Příklady:
- C:\Logs\MyLog.json
- C:\Logs\MyLog*.json
- C:\App01\AppLog.json, C:\App02\AppLog.json
- /var/mylog.json
- /var/mylog*.json
Název tabulky Název cílové tabulky v pracovním prostoru služby Log Analytics
Oddělovač záznamů Aktuálně se nepoužívá, ale vyhrazeno pro budoucí potenciální použití, což umožňuje oddělovače kromě aktuálně podporovaného konce řádku (/r/n).
Transformace Transformace času příjmu dat pro filtrování záznamů nebo formátování příchozích dat pro cílovou tabulku Slouží source k ponechání příchozích dat beze změny.

Řešení problému

Pokud neshromažďujete data z očekávaného protokolu JSON, projděte si následující kroky.

  • Ověřte, že se data zapisují do shromažďovaného souboru protokolu.
  • Ověřte, že název a umístění souboru protokolu odpovídají zadanému vzoru souboru.
  • Ověřte, že schéma příchozího datového proudu v DCR odpovídá schématu v souboru protokolu.
  • Ověřte, že schéma cílové tabulky odpovídá příchozímu datovému proudu nebo že máte transformaci, která převede příchozí datový proud na správné schéma.
  • Informace o tom, jestli je agent funkční a přijímá data, najdete v části Ověření operace .

Další kroky

Přečtěte si další informace: