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 agenta Log Analytics je od 31. srpna 2024 zastaralá. Microsoft už nebude poskytovat žádnou podporu agenta Log Analytics. Pokud používáte agenta Log Analytics k ingestování dat do služby Azure Monitor, proveďte migraci na agenta Služby Azure Monitor.
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:ssKSoubor 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.
Na webu Azure Portal vyberte pracovní prostory služby Log Analytics, které> jsou v tabulkách pracovního prostoru>.
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.
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 .
Vyberte Další.
Průvodce vlastním protokolem nahraje soubor a zobrazí záznamy, které identifikuje.
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.
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. Vzorem takového protokolu může být protokol*.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 rozšířením .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 |
- Vyberte Windows nebo Linux a určete formát cesty, který přidáváte.
- Zadejte cestu a vyberte + tlačítko.
- 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.
- Zadejte název protokolu. Přípona _CL se automaticky poskytuje.
- Přidejte volitelný popis.
- 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.
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ý obsahuje datum ve vzorovém appYYYYMMDD.log. Dostatečným vzorem pro tento protokol by bylo C:\MyApp\Logs\*.log.
Zadejte název a popis protokolu.
Používáme název MyApp_CL a zadáváme ho do popisu.
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 .
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
- V tématu Analýza textových dat ve službě Azure Monitor najdete metody parsování každé importované položky protokolu do více vlastností.
- Seznamte se s dotazy na protokoly , které analyzují data shromážděná ze zdrojů dat a řešení.