Shromažďování textových protokolů pomocí agenta Log Analytics ve službě Azure Monitor

Zdroj dat Vlastní protokoly pro agenta Log Analytics ve službě Azure Monitor umožňuje shromažďovat události z textových souborů na počítačích s Windows i Linuxem. Mnoho aplikací protokoluje informace do textových souborů místo používání standardních služeb protokolování, jako je Protokol událostí systému Windows nebo Syslog. Jakmile se data shromažďují, můžete je buď analyzovat do jednotlivých polí v dotazech, nebo je extrahovat během shromažďování do jednotlivých polí.

Důležité

Tento článek popisuje, jak shromažďovat textový protokol s agentem Log Analytics. Pokud používáte agenta Azure Monitoru, přečtěte si téma Shromažďování textových protokolů pomocí agenta Azure Monitoru.

Důležité

Starší verze agentaLog Analytics bude do srpna 2024 zastaralá. Po tomto datu už Microsoft nebude poskytovat žádnou podporu pro agenta Log Analytics. Migrace na agenta Azure Monitoru před srpnem 2024 a pokračujte v ingestování dat.

Diagram that shows custom log collection.

Soubory protokolů, které se mají shromažďovat, musí odpovídat následujícím kritériím:

  • Protokol musí mít buď jednu položku na řádek, nebo použít časové razítko odpovídající jednomu z následujících formátů na začátku každé položky:

    YYYY-MM-DD HH:MM:SS
    M/D/YYYY HH:MM:SS AM/PM
    Mon DD, YYYY HH:MM:SS
    yyMMDd HH:mm:ss
    ddMMyy HH:mm:ss
    MMM d hh:mm:ss
    dd/MMM/yyyy:HH:mm:ss zzz
    yyyy-MM-ddTHH:mm:ssK

  • Soubor protokolu nesmí povolit cyklické protokolování. Toto chování je obměnou protokolem, kde se soubor přepíše novými položkami nebo se soubor přejmenuje a stejný název souboru se znovu použije pro pokračování protokolování.

  • Soubor protokolu musí používat kódování ASCII nebo UTF-8. Jiné formáty, jako je UTF-16, se nepodporují.

  • V případě Linuxu není převod časového pásma v protokolech podporován.

  • Osvědčeným postupem je, že soubor protokolu by měl obsahovat datum a čas, který byl vytvořen, aby se zabránilo přepsání nebo přejmenování obměně protokolů.

Poznámka:

Pokud jsou v souboru protokolu duplicitní položky, Azure Monitor je shromáždí. Vygenerované výsledky dotazu budou nekonzistentní. Výsledky filtru zobrazí více událostí než počet výsledků. Je nutné ověřit protokol, abyste zjistili, jestli aplikace, která ho vytvoří, způsobuje toto chování. Pokud je to možné, vyřešte problém před vytvořením vlastní definice kolekce protokolů.

Pracovní prostor služby Log Analytics podporuje následující omezení:

  • Lze vytvořit pouze 500 vlastních protokolů.
  • Tabulka podporuje maximálně 500 sloupců.
  • Maximální počet znaků v názvu sloupce je 500.

Důležité

Vlastní shromažďování protokolů vyžaduje, aby aplikace, která zapisuje soubor protokolu, pravidelně vyprázdní obsah protokolu na disk. Důvodem je to, že vlastní shromažďování protokolů spoléhá na oznámení o změnách systému souborů pro sledovaný soubor protokolu.

Definování vlastní tabulky protokolů

Pomocí následujícího postupu definujte vlastní tabulku protokolů. Přejděte na konec tohoto článku a projděte si ukázku přidání vlastního protokolu.

Otevření průvodce vlastním protokolem

Průvodce vlastním protokolem běží na webu Azure Portal a umožňuje definovat nový vlastní protokol, který se má shromažďovat.

  1. Na webu Azure Portal vyberte pracovní prostory služby Log Analytics, které> jsou v tabulkách pracovního prostoru>.

  2. Vyberte Vytvořit a potom Nový vlastní protokol (založený na MMA).

    Ve výchozím nastavení se všechny změny konfigurace automaticky nasdílí všem agentům. Pro linuxové agenty se do kolektoru dat Fluentd odešle konfigurační soubor.

Nahrání a analýza ukázkového protokolu

Začněte tak, že nahrajete ukázku vlastního protokolu. Průvodce analyzuje a zobrazí položky v tomto souboru, abyste je mohli ověřit. Azure Monitor použije oddělovač, který zadáte k identifikaci jednotlivých záznamů.

Nový řádek je výchozí oddělovač a používá se pro soubory protokolu, které mají jednu položku na řádek. Pokud řádek začíná datem a časem v jednom z dostupných formátů, můžete zadat oddělovač časového razítka , který podporuje položky, které pokrývají více než jeden řádek.

Pokud se použije oddělovač časového razítka, vlastnost TimeGenerated každého záznamu uloženého ve službě Azure Monitor se naplní datem a časem zadaným pro danou položku v souboru protokolu. Pokud se použije nový oddělovač řádků, funkce TimeGenerated se naplní datem a časem, kdy Služba Azure Monitor shromáždí položku.

  1. Vyberte Procházet a přejděte k ukázkovém souboru. Toto tlačítko může být v některých prohlížečích označeno jako Zvolit soubor .

  2. Vyberte Další.

    Průvodce vlastním protokolem nahraje soubor a zobrazí záznamy, které identifikuje.

  3. Změňte oddělovač, který se používá k identifikaci nového záznamu. Vyberte oddělovač, který nejlépe identifikuje záznamy v souboru protokolu.

  4. Vyberte Další.

Přidání cest shromažďování protokolů

Musíte definovat jednu nebo více cest v agentu, kde může najít vlastní protokol. Můžete zadat konkrétní cestu a název souboru protokolu, nebo můžete zadat cestu se zástupným znakem pro název. Tento krok podporuje aplikace, které každý den vytvářejí nový soubor nebo když jeden soubor dosáhne určité velikosti. Můžete také zadat více cest pro jeden soubor protokolu.

Aplikace může například každý den vytvořit soubor protokolu s datem zahrnutým v názvu jako v log20100316.txt. Vzor pro takový protokol může být log*.txt, který by se použil u libovolného souboru protokolu za schématem pojmenování aplikace.

Následující tabulka obsahuje příklady platných vzorů pro zadání různých souborů protokolu.

Popis Cesta
Všechny soubory v C:\Logs s příponou .txt v agentu Windows C:\Logs\*.txt
Všechny soubory v C:\Logs s názvem začínajícím protokolem a příponou .txt v agentu Windows C:\Logs\log*.txt
Všechny soubory v /var/log/audit s příponou .txt v agentu Linuxu /var/log/audit/*.txt
Všechny soubory v /var/log/audit s názvem začínajícím protokolem a příponou .txt v agentu Linuxu /var/log/audit/log*.txt
  1. Vyberte Windows nebo Linux a určete formát cesty, který přidáváte.
  2. Zadejte cestu a vyberte + tlačítko.
  3. Opakujte proces pro další cesty.

Zadejte název a popis protokolu.

Zadaný název se použije pro typ protokolu, jak je popsáno. Bude vždy končit _CL, aby se odlišil jako vlastní protokol.

  1. Zadejte název protokolu. Přípona _CL se automaticky poskytuje.
  2. Přidejte volitelný popis.
  3. Výběrem možnosti Další uložíte vlastní definici protokolu.

Ověřte, že se shromažďují vlastní protokoly.

Může trvat až hodinu, než se počáteční data z nového vlastního protokolu zobrazí ve službě Azure Monitor. Azure Monitor začne shromažďovat položky z protokolů nalezených v cestě, kterou jste zadali v bodě, který jste definovali vlastní protokol. Nezachovají se položky, které jste nahráli během vytváření vlastního protokolu. Bude shromažďovat již existující položky v souborech protokolu, které najde.

Jakmile Azure Monitor začne shromažďovat z vlastního protokolu, budou jeho záznamy k dispozici s dotazem protokolu. Jako typ dotazu použijte název, který jste zadali vlastní protokol.

Poznámka:

Pokud v dotazu chybí vlastnost RawData, možná budete muset prohlížeč zavřít a znovu otevřít.

Parsování vlastních položek protokolu

Celá položka protokolu bude uložena v jedné vlastnosti s názvem RawData. Pravděpodobně budete chtít oddělit různé části informací v každé položce do jednotlivých vlastností každého záznamu. Možnosti analýzy RawData do více vlastností najdete v tématu Analýza textových dat ve službě Azure Monitor.

Odstranění vlastní tabulky protokolů

Viz Odstranění tabulky.

Shromažďování dat

Azure Monitor shromažďuje nové položky z každého vlastního protokolu přibližně každých 5 minut. Agent zaznamenává své místo v každém souboru protokolu, ze kterého shromažďuje. Pokud agent přejde po určitou dobu do offline režimu, Azure Monitor shromažďuje položky, ze kterých naposledy skončil, i když se tyto položky vytvořily v době, kdy byl agent offline.

Celý obsah položky protokolu se zapíše do jedné vlastnosti s názvem RawData. Metody analýzy každé importované položky protokolu do více vlastností najdete v tématu Analýza textových dat ve službě Azure Monitor.

Vlastní vlastnosti záznamu protokolu

Vlastní záznamy protokolu mají typ s názvem protokolu, který zadáte, a vlastnostmi v následující tabulce.

Vlastnost Popis
TimeGenerated Datum a čas, kdy byl záznam shromážděn službou Azure Monitor. Pokud protokol používá oddělovač založený na čase, jedná se o čas shromážděný ze záznamu.
SourceSystem Typ agenta, ze které byl záznam shromážděn.
OpsManager – agent Windows, přímé připojení nebo System Center Operations Manager
Linux – všichni agenti Pro Linux
Rawdata Úplný text shromážděné položky. Pravděpodobně budete chtít tato data analyzovat do jednotlivých vlastností.
ManagementGroupName Název skupiny pro správu pro agenty nástroje System Center Operations Manager U jiných agentů je tento název ID> pracovního prostoru AOI<.

Ukázkový názorný postup přidání vlastního protokolu

Následující část vás provede příkladem vytvoření vlastního protokolu. Shromažďovaný ukázkový protokol obsahuje na každém řádku jednu položku začínající datem a časem a potom čárkami oddělených polí pro kód, stav a zprávu. Zobrazí se několik ukázkových položek.

2019-08-27 01:34:36 207,Success,Client 05a26a97-272a-4bc9-8f64-269d154b0e39 connected
2019-08-27 01:33:33 208,Warning,Client ec53d95c-1c88-41ae-8174-92104212de5d disconnected
2019-08-27 01:35:44 209,Success,Transaction 10d65890-b003-48f8-9cfc-9c74b51189c8 succeeded
2019-08-27 01:38:22 302,Error,Application could not connect to database
2019-08-27 01:31:34 303,Error,Application lost connection to database

Nahrání a analýza ukázkového protokolu

Poskytujeme jeden ze souborů protokolu a uvidíme události, které bude shromažďovat. V tomto případě je nový řádek dostatečným oddělovačem. Pokud by však jedna položka v protokolu mohla přesahovat více řádků, bude potřeba použít oddělovač časového razítka.

Screenshot that shows uploading and parsing a sample log.

Přidání cest shromažďování protokolů

Soubory protokolu budou umístěny v umístění C:\MyApp\Logs. Každý den se vytvoří nový soubor s názvem, který bude obsahovat datum ve vzorovém souboru appYYYMMDD.log. Dostatečný vzor pro tento protokol by byl C:\MyApp\Logs\*.log.

Screenshot that shows adding a log collection path.

Zadejte název a popis protokolu.

Používáme název MyApp_CL a zadáváme ho do popisu.

Screenshot that shows adding a log name.

Ověřte, že se shromažďují vlastní protokoly.

K vrácení všech záznamů ze shromážděného protokolu používáme jednoduchý dotaz MyApp_CL .

Screenshot that shows a log query with no custom fields.

Alternativy k vlastním protokolům

I když jsou vlastní protokoly užitečné, pokud vaše data odpovídají uvedeným kritériím, existují případy, kdy potřebujete jinou strategii:

  • Data neodpovídají požadované struktuře, například časové razítko v jiném formátu.
  • Soubor protokolu nevyhovuje požadavkům, jako je kódování souborů nebo nepodporovaná struktura složek.
  • Data před shromažďováním vyžadují předběžné zpracování nebo filtrování.

V případech, kdy se vaše data nedají shromažďovat pomocí vlastních protokolů, zvažte následující alternativní strategie:

  • Pomocí vlastního skriptu nebo jiné metody můžete zapisovat data do událostí windows nebo syslogu, které shromažďuje Azure Monitor.
  • Odešlete data přímo do služby Azure Monitor pomocí rozhraní API kolektoru dat HTTP.

Další kroky