Správa protokolů pro cluster HDInsight
Cluster HDInsight vytváří různé soubory protokolů. Například Apache Hadoop a související služby, jako je Apache Spark, vytvářejí podrobné protokoly spouštění úloh. Správa souborů protokolu je součástí údržby clusteru HDInsight, který je v pořádku. Pro archivaci protokolů můžou existovat také zákonné požadavky. Díky počtu a velikosti souborů protokolu vám optimalizace úložiště protokolů a archivace pomůže se správou nákladů na služby.
Správa protokolů clusteru HDInsight zahrnuje uchovávání informací o všech aspektech prostředí clusteru. Tyto informace zahrnují všechny přidružené protokoly služby Azure, konfiguraci clusteru, informace o spuštění úlohy, všechny chybové stavy a další data podle potřeby.
Mezi typické kroky při správě protokolů HDInsight patří:
- Krok 1: Určení zásad uchovávání protokolů
- Krok 2: Správa protokolů konfigurace verzí služby clusteru
- Krok 3: Správa souborů protokolu spouštění úloh clusteru
- Krok 4: Prognóza velikostí a nákladů na úložiště svazků protokolů
- Krok 5: Určení zásad a procesů archivace protokolů
Krok 1: Určení zásad uchovávání protokolů
Prvním krokem při vytváření strategie správy protokolů clusteru HDInsight je shromáždit informace o obchodních scénářích a požadavcích na úložiště historie spouštění úloh.
Podrobnosti o clusteru
Následující podrobnosti o clusteru jsou užitečné při shromažďování informací ve strategii správy protokolů. Shromážděte tyto informace ze všech clusterů HDInsight, které jste vytvořili v konkrétním účtu Azure.
- Název clusteru
- Oblast clusteru a zóna dostupnosti Azure
- Stav clusteru včetně podrobností o poslední změně stavu
- Typ a počet instancí HDInsight určených pro hlavní uzly, jádra a úlohy
Většinu těchto informací nejvyšší úrovně získáte na webu Azure Portal. Případně můžete pomocí Azure CLI získat informace o clusterech HDInsight:
az hdinsight list --resource-group <ResourceGroup>
az hdinsight show --resource-group <ResourceGroup> --name <ClusterName>
Tyto informace můžete zobrazit také pomocí PowerShellu. Další informace najdete v tématu Apache Manage Hadoop clusters in HDInsight pomocí Azure PowerShellu.
Vysvětlení úloh spuštěných v clusterech
Je důležité porozumět typům úloh spuštěným v clusterech HDInsight a navrhnout vhodné strategie protokolování pro každý typ.
- Jsou úlohy experimentální (například vývoj nebo testování) nebo kvalita produkce?
- Jak často se úlohy v produkční kvalitě normálně spouštějí?
- Jsou některé úlohy náročné na prostředky nebo dlouhotrvající?
- Používají některé úlohy složitou sadu služeb Hadoop, pro které se vytváří více typů protokolů?
- Mají některé z úloh přidružené požadavky na rodokmen dodržování právních předpisů?
Příklady vzorů a postupů uchovávání protokolů
Zvažte zachování sledování rodokmenu dat přidáním identifikátoru ke každé položce protokolu nebo prostřednictvím jiných technik. To vám umožní trasovat původní zdroj dat a operace a sledovat data v jednotlivých fázích, abyste pochopili jeho konzistenci a platnost.
Zvažte, jak můžete shromažďovat protokoly z clusteru nebo z více než jednoho clusteru a sloučit je pro účely, jako je auditování, monitorování, plánování a upozorňování. Vlastní řešení můžete použít k pravidelnému přístupu k souborům protokolu a jejich stahování a jejich kombinování a analýze, aby se zobrazil řídicí panel. Můžete také přidat další možnosti pro upozorňování na detekci zabezpečení nebo selhání. Tyto nástroje můžete sestavit pomocí PowerShellu, sad SDK HDInsight nebo kódu, které přistupují k modelu nasazení Azure Classic.
Zvažte, jestli by řešení monitorování nebo služba byly užitečnou výhodou. Microsoft System Center poskytuje sadu Management Pack služby HDInsight. Ke shromažďování a centralizaci protokolů můžete použít také nástroje třetích stran, jako jsou Apache Chukwa a Ganglia. Mnoho společností nabízí služby pro monitorování řešení velkých objemů dat založených na Hadoopu, například:
Centerity
, Compuware APM, Sematext SPM a Zettaset Orchestrator.
Krok 2: Správa verzí služby clusteru a zobrazení protokolů
Typický cluster HDInsight používá několik služeb a opensourcových softwarových balíčků (například Apache HBase, Apache Spark atd.). U některých úloh, jako jsou bioinformatika, může být nutné kromě protokolů spouštění úloh zachovat historii protokolu konfigurace služby.
Zobrazení nastavení konfigurace clusteru pomocí uživatelského rozhraní Ambari
Apache Ambari zjednodušuje správu, konfiguraci a monitorování clusteru HDInsight tím, že poskytuje webové uživatelské rozhraní a rozhraní REST API. Ambari je součástí clusterů HDInsight založených na Linuxu. Výběrem podokna Řídicí panel clusteru na stránce Azure Portal HDInsight otevřete stránku řídicích panelů clusteru. Pak výběrem podokna řídicího panelu clusteru HDInsight otevřete uživatelské rozhraní Ambari. Zobrazí se výzva k zadání přihlašovacích údajů ke clusteru.
Pokud chcete otevřít seznam zobrazení služeb, vyberte podokno Zobrazení Ambari na stránce webu Azure Portal pro HDInsight. Tento seznam se liší podle toho, které knihovny jste nainstalovali. Můžete například vidět Správce front YARN, zobrazení Hive a zobrazení Tez. Výběrem libovolného odkazu na službu zobrazíte informace o konfiguraci a službě. Stránka Zásobník uživatelského rozhraní Ambari a verze poskytuje informace o konfiguraci a historii verzí služeb clusteru. Pokud chcete přejít do této části uživatelského rozhraní Ambari, vyberte nabídku Správce a pak stacky a verze. Výběrem karty Verze zobrazíte informace o verzi služby.
Pomocí uživatelského rozhraní Ambari si můžete stáhnout konfiguraci všech (nebo všech) služeb spuštěných na konkrétním hostiteli (nebo uzlu) v clusteru. Vyberte nabídku Hostitelé a pak odkaz pro hostitele, který zajímá. Na stránce daného hostitele vyberte tlačítko Akce hostitele a pak stáhněte konfigurace klienta.
Zobrazení protokolů akcí skriptu
Akce skriptů HDInsight spouštějí skripty v clusteru ručně nebo při zadání. Akce skriptu lze například použít k instalaci jiného softwaru v clusteru nebo ke změně nastavení konfigurace z výchozích hodnot. Protokoly akcí skriptu můžou poskytnout přehled o chybách, ke kterým došlo během instalace clusteru, a také změny nastavení konfigurace, které by mohly ovlivnit výkon a dostupnost clusteru. Pokud chcete zobrazit stav akce skriptu, vyberte v uživatelském rozhraní Ambari tlačítko ops nebo přejděte k protokolům stavu ve výchozím účtu úložiště. Protokoly úložiště jsou k dispozici na adrese /STORAGE_ACCOUNT_NAME/DEFAULT_CONTAINER_NAME/custom-scriptaction-logs/CLUSTER_NAME/DATE
.
Zobrazení protokolů stavu upozornění Ambari
Apache Ambari zapisuje změny stavu upozornění do ambari-alerts.log
. Úplná cesta je /var/log/ambari-server/ambari-alerts.log
. Pokud chcete povolit ladění pro protokol, změňte vlastnost v /etc/ambari-server/conf/log4j.properties.
části Change a potom v části # Log alert state changes
z:
log4j.logger.alerts=INFO,alerts
to
log4j.logger.alerts=DEBUG,alerts
Krok 3: Správa souborů protokolu spouštění úloh clusteru
Dalším krokem je kontrola souborů protokolu spouštění úloh pro různé služby. Mezi služby patří Apache HBase, Apache Spark a mnoho dalších. Cluster Hadoop vytváří velký počet podrobných protokolů, takže určení, které protokoly jsou užitečné (a které nejsou) časově náročné. Pochopení systému protokolování je důležité pro cílenou správu souborů protokolu. Následující obrázek je příkladem souboru protokolu.
Přístup k souborům protokolu Hadoop
HDInsight ukládá soubory protokolů v systému souborů clusteru i ve službě Azure Storage. Soubory protokolu v clusteru můžete prozkoumat otevřením připojení SSH ke clusteru a procházením systému souborů nebo pomocí portálu stavu Hadoop YARN na vzdáleném serveru hlavního uzlu. Soubory protokolů ve službě Azure Storage můžete prozkoumat pomocí libovolného nástroje, který může přistupovat k datům a stahovat je ze služby Azure Storage. Příklady jsou AzCopy, CloudXplorer a Visual Studio Server Explorer. K přístupu k datům v úložišti objektů blob v Azure můžete také použít PowerShell a klientské knihovny Azure Storage nebo sady SDK azure .NET.
Hadoop spouští práci úloh jako pokusy o úlohy na různých uzlech v clusteru. HDInsight může zahájit spekulativní pokusy o úlohy a ukončit všechny další pokusy o úkol, které se nedokončí jako první. Tím se vygeneruje významná aktivita, která se protokoluje do souboru protokolu kontroleru, stderru a syslogu za běhu. Kromě toho je spuštěno více pokusů o úkol současně, ale soubor protokolu může zobrazit výsledky pouze lineárně.
Protokoly HDInsight zapsané do služby Azure Blob Storage
Clustery HDInsight jsou nakonfigurované tak, aby zapisovaly protokoly úloh do účtu služby Azure Blob Storage pro všechny úlohy odeslané pomocí rutin Azure PowerShellu nebo rozhraní API pro odesílání úloh .NET. Pokud do clusteru odesíláte úlohy prostřednictvím SSH, informace o protokolování spouštění se uloží do tabulek Azure, jak je popsáno v předchozí části.
Kromě základních souborů protokolu generovaných službou HDInsight generují nainstalované služby, jako je například YARN, také soubory protokolu spouštění úloh. Počet a typ souborů protokolu závisí na nainstalovaných službách. Mezi běžné služby patří Apache HBase, Apache Spark atd. Prozkoumejte soubory spouštění protokolu úloh pro každou službu, abyste pochopili celkové soubory protokolování dostupné ve vašem clusteru. Každá služba má své vlastní jedinečné metody protokolování a umístění pro ukládání souborů protokolu. Podrobnosti o přístupu k nejběžnějším souborům protokolu služby (z YARN) jsou popsány v následující části.
Protokoly HDInsight generované YARN
YARN agreguje protokoly napříč všemi kontejnery na pracovním uzlu a ukládá tyto protokoly jako jeden agregovaný soubor protokolu na pracovní uzel. Tento protokol je uložen ve výchozím systému souborů po dokončení aplikace. Vaše aplikace může používat stovky nebo tisíce kontejnerů, ale protokoly pro všechny kontejnery spuštěné na jednom pracovním uzlu se vždy agregují do jednoho souboru. Aplikace používá pouze jeden protokol na pracovní uzel. Agregace protokolů je ve výchozím nastavení povolená v clusterech HDInsight verze 3.0 a vyšší. Agregované protokoly jsou umístěny ve výchozím úložišti clusteru.
/app-logs/<user>/logs/<applicationId>
Agregované protokoly nejsou přímo čitelné, protože jsou zapsané v binárním TFile
formátu indexovaném kontejnerem. Tyto protokoly můžete zobrazit jako prostý text pro aplikace nebo kontejnery, které jsou zajímavé, pomocí protokolů YARN ResourceManager
nebo nástrojů rozhraní příkazového řádku.
Nástroje rozhraní příkazového řádku YARN
Pokud chcete použít nástroje rozhraní příkazového řádku YARN, musíte se nejprve připojit ke clusteru HDInsight pomocí SSH. Zadejte , <applicationId>
<user-who-started-the-application>
<containerId>
a <worker-node-address>
informace při spuštění těchto příkazů. Protokoly můžete zobrazit jako prostý text pomocí jednoho z následujících příkazů:
yarn logs -applicationId <applicationId> -appOwner <user-who-started-the-application>
yarn logs -applicationId <applicationId> -appOwner <user-who-started-the-application> -containerId <containerId> -nodeAddress <worker-node-address>
Uživatelské rozhraní Resource Manageru YARN
Uživatelské rozhraní YARN Resource Manageru běží na hlavním uzlu clusteru a přistupuje se k němu prostřednictvím webového uživatelského rozhraní Ambari. K zobrazení protokolů YARN použijte následující postup:
- Ve webovém prohlížeči přejděte na
https://CLUSTERNAME.azurehdinsight.net
. Nahraďte CLUSTERNAME názvem clusteru HDInsight. - V seznamu služeb vlevo vyberte YARN.
- V rozevíracím seznamu Rychlé odkazy vyberte jeden z hlavních uzlů clusteru a pak vyberte protokoly Resource Manageru. Zobrazí se seznam odkazů na protokoly YARN.
Krok 4: Prognóza velikostí a nákladů na úložiště svazků protokolů
Po dokončení předchozích kroků máte přehled o typech a svazcích souborů protokolu, které vaše clustery HDInsight vytvářejí.
Dále analyzujte objem dat protokolu v umístěních úložiště protokolů klíčů v určitém časovém období. Můžete například analyzovat objem a růst nad 30-60-90denními obdobími. Poznamenejte si tyto informace v tabulce nebo použijte jiné nástroje, jako je Visual Studio, Průzkumník služby Azure Storage nebo Power Query pro Excel. ```
Teď máte dostatek informací k vytvoření strategie správy protokolů pro protokoly klíčů. Pomocí tabulky (nebo nástroje podle výběru) můžete prognózovat růst velikosti protokolů i náklady na úložiště protokolů v Azure. Zvažte také všechny požadavky na uchovávání protokolů pro sadu protokolů, které zkoumáte. Nyní můžete převést budoucí náklady na úložiště protokolů po určení, které soubory protokolů je možné odstranit (pokud existuje) a které protokoly by se měly uchovávat a archivovat do levnějšího Azure Storage.
Krok 5: Určení zásad a procesů archivace protokolů
Jakmile určíte, které soubory protokolu je možné odstranit, můžete upravit parametry protokolování u mnoha služeb Hadoop, aby se soubory protokolů po zadaném časovém období automaticky odstranily.
U některých souborů protokolu můžete použít přístup k archivaci souborů protokolu s nižší cenou. V protokolech aktivit Azure Resource Manageru můžete tento přístup prozkoumat pomocí webu Azure Portal. Nastavte archivaci protokolů Resource Manageru tak , že vyberete odkaz protokolu aktivit na webu Azure Portal pro vaši instanci HDInsight. V horní části stránky hledání v protokolu aktivit vyberte položku nabídky Export a otevřete podokno Protokolu aktivit exportu. Vyplňte předplatné, oblast, jestli se mají exportovat do účtu úložiště a kolik dní se mají protokoly zachovat. V tomto podokně můžete také určit, jestli se má exportovat do centra událostí.
Případně můžete pomocí PowerShellu skriptovat archivaci protokolů.
Přístup k metrikám Azure Storage
Azure Storage je možné nakonfigurovat tak, aby protokolovaly operace úložiště a přístup. Tyto podrobné protokoly můžete použít k monitorování a plánování kapacity a k auditování požadavků na úložiště. Protokolované informace obsahují podrobnosti o latenci, které vám umožní monitorovat a doladit výkon vašich řešení. Sadu .NET SDK pro Hadoop můžete použít k prozkoumání souborů protokolů vygenerovaných pro Službu Azure Storage, která obsahuje data pro cluster HDInsight.
Řízení velikosti a počtu indexů zálohování pro staré soubory protokolů
Chcete-li řídit velikost a počet uchovávaných souborů protokolu, nastavte následující vlastnosti RollingFileAppender
:
maxFileSize
je kritická velikost souboru, který se soubor zahrne. Výchozí hodnota je 10 MB.maxBackupIndex
určuje počet záložních souborů, které se mají vytvořit, výchozí hodnota 1.
Další techniky správy protokolů
Abyste se vyhnuli výpadku místa na disku, můžete ke správě zpracování souborů protokolu použít některé nástroje operačního systému, jako je například logrotate . Můžete nakonfigurovat logrotate
spouštění na denní bázi, komprimovat soubory protokolů a odebírat staré soubory. Váš přístup závisí na vašich požadavcích, například na tom, jak dlouho se mají protokolovací soubory uchovávat na místních uzlech.
Můžete také zkontrolovat, jestli je protokolování LADĚNÍ povolené pro jednu nebo více služeb, což výrazně zvyšuje velikost výstupního protokolu.
Pokud chcete shromažďovat protokoly ze všech uzlů do jednoho centrálního umístění, můžete vytvořit tok dat, například ingestování všech položek protokolu do Solru.