Kurz: Začínáme s monitorováním a protokolováním pomocí Logz.io pro aplikace v Javě spuštěné v Azure
V tomto kurzu se dozvíte, jak nakonfigurovat klasickou aplikaci Java tak, aby odesílala protokoly do služby Logz.io pro příjem a analýzu. Logz.io poskytuje úplné řešení monitorování založené na Elasticsearch, Logstash/Kibana (ELK) a Grafana.
V tomto kurzu se předpokládá, že používáte Log4J nebo Logback. Tyto knihovny se nejčastěji používají pro protokolování v Javě, takže kurz by měl fungovat pro většinu aplikací běžících v Azure. Pokud už používáte Elastic Stack k monitorování Java aplikace, tento kurz vám ukáže, jak překonfigurovat na cílový bod Logz.io.
V tomto kurzu se naučíte:
- Odešlete protokoly z existující aplikace Java do Logz.io.
- Odesílání diagnostických protokolů a metrik ze služeb Azure do Logz.io
Požadavky
- Java Developer Kit, verze 11 nebo novější
- Účet Logz.io z Azure Marketplace
- Existující aplikace v Javě, která používá Log4J nebo Logback
Odeslání protokolů aplikace v Javě do Logz.io
Nejprve se dozvíte, jak nakonfigurovat aplikaci v Javě pomocí tokenu, který mu poskytne přístup k vašemu účtu Logz.io.
Získání přístupového tokenu Logz.io
Token získáte tak, že se přihlásíte ke svému účtu Logz.io, vyberete ikonu ozubeného kola v levém dolním rohu, a pak vyberete Nastavení>Spravovat tokeny a vyberete kartu Tokeny pro zasílání dat. Zkopírujte výchozí přístupový token a URL adresu posluchače, abyste je mohli později použít.
Instalace a konfigurace knihovny Logz.io pro Log4J nebo Logback
Knihovna Logz.io Java je k dispozici v Maven Central, takže ji můžete přidat jako závislost do konfigurace aplikace. Zkontrolujte číslo verze v Centru Mavenu a použijte nejnovější verzi v následujícím nastavení konfigurace.
Pokud používáte Maven, přidejte do souboru pom.xml následující závislost:
Log4J:
<dependency>
<groupId>io.logz.log4j2</groupId>
<artifactId>logzio-log4j2-appender</artifactId>
<version>2.0.0</version>
</dependency>
Logback:
<dependency>
<groupId>io.logz.logback</groupId>
<artifactId>logzio-logback-appender</artifactId>
<version>2.0.0</version>
</dependency>
Pokud používáte Gradle, přidejte do skriptu sestavení následující závislost:
Log4J:
implementation 'io.logz.log4j:logzio-log4j-appender:2.0.0'
Logback:
implementation 'io.logz.logback:logzio-logback-appender:2.0.0'
Dále aktualizujte konfigurační soubor Log4J nebo Logback:
Log4J:
<Appenders>
<LogzioAppender name="Logzio">
<logzioToken><your-logz-io-token></logzioToken>
<logzioType>java</logzioType>
<logzioUrl>https://<your-logz-io-listener-host>:8071</logzioUrl>
</LogzioAppender>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Logzio"/>
</Root>
</Loggers>
Logback:
<configuration>
<!-- Use shutdownHook so that we can close gracefully and finish the log drain -->
<shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
<appender name="LogzioLogbackAppender" class="io.logz.logback.LogzioLogbackAppender">
<token><your-logz-io-token></token>
<logzioUrl>https://<your-logz-io-listener-host>:8071</logzioUrl>
<logzioType>java</logzioType>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
</appender>
<root level="debug">
<appender-ref ref="LogzioLogbackAppender"/>
</root>
</configuration>
Nahraďte zástupný symbol <your-logz-io-token>
přístupovým tokenem a zástupný symbol <your-logz-io-listener-host>
posluchačem pro vaši oblast, například listener.logz.io
. Další informace o hledání oblasti vašeho účtu najdete v tématu Oblast účtu.
Element logzioType
odkazuje na logické pole v Elasticsearch, které slouží k oddělení různých dokumentů od sebe. Je nezbytné tento parametr správně nakonfigurovat, abyste z Logz.io vytěžili maximum.
Logz.io "type" je váš formát protokolu – například: Apache, NGinx, MySQL – a ne váš zdroj – například: server1
, server2
, server3
. V tomto kurzu voláme typ java
, protože konfigurujeme aplikace v Javě a očekáváme, že všechny tyto aplikace budou mít stejný formát.
V případě pokročilého použití můžete aplikace v Javě seskupit do různých typů, které mají vlastní konkrétní formát protokolu (konfigurovatelný pomocí Log4J a Logback). Můžete mít například typ spring-boot-monolith
a typ spring-boot-microservice
.
Otestování konfigurace a analýzy protokolů na Logz.io
Po nakonfigurování knihovny Logz.io by teď vaše aplikace měla odesílat protokoly přímo do ní. Pokud chcete otestovat, že vše funguje správně, přejděte do konzoly Logz.io, vyberte kartu Protokoly>Live Tail a poté vyberte spustit. Měla by se zobrazit zpráva podobná následující s informací, že připojení funguje:
Requesting Live Tail access...
Access granted. Opening connection...
Connected. Tailing...
Pak spusťte aplikaci nebo ji použijte k vytvoření protokolů. Protokoly by se měly zobrazit přímo na vaší obrazovce. Tady jsou například první spouštěcí zprávy aplikace Spring Boot:
2019-09-19 12:54:40.685Z Starting JavaApp on javaapp-default-9-5cfcb8797f-dfp46 with PID 1 (/workspace/BOOT-INF/classes started by cnb in /workspace)
2019-09-19 12:54:40.686Z The following profiles are active: prod
2019-09-19 12:54:42.052Z Bootstrapping Spring Data repositories in DEFAULT mode.
2019-09-19 12:54:42.169Z Finished Spring Data repository scanning in 103ms. Found 6 repository interfaces.
2019-09-19 12:54:43.426Z Bean 'spring.task.execution-org.springframework.boot.autoconfigure.task.TaskExecutionProperties' of type [org.springframework.boot.autoconfigure.task.TaskExecutionProperties] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
Teď, když Logz.io zpracovává vaše protokoly, můžete využívat výhod všech služeb platformy.
Odesílání dat služeb Azure do Logz.io
Dále se dozvíte, jak odesílat protokoly a metriky z prostředků Azure do Logz.io.
Nasazení šablony
Prvním krokem je nasazení Logz.io – šablony integrace Azure. Integrace je založená na předem připravené šabloně nasazení Azure, která nastaví všechny potřebné stavební bloky potrubí. Šablona vytvoří obor názvů Event Hub, Event Hub, dva blobové objekty úložiště a všechna potřebná oprávnění a připojení. Prostředky nastavené automatizovaným nasazením můžou shromažďovat data pro jednu oblast Azure a odesílat tato data do Logz.io.
V prvním krokusouboru readme úložiště najděte tlačítko Deploy to Azure (Nasadit do Azure).
Když vyberete Nasadit do Azure, zobrazí se stránka Vlastního nasazení v prostředí Azure Portal se seznamem předem vyplněných polí.
Většinu polí můžete ponechat as-is, ale nezapomeňte zadat následující nastavení:
- skupiny prostředků: Vyberte existující skupinu nebo vytvořte novou.
-
Logzio Logs/Metrics Host: Zadejte adresu URL posluchače Logz.io. Pokud si nejste jistí, co je tato adresa URL, zkontrolujte svoji přihlašovací adresu URL. Pokud je
app.logz.io
, použijtelistener.logz.io
(což je výchozí nastavení). Pokud jeapp-eu.logz.io
, použijtelistener-eu.logz.io
. - Logzio Logs/Metrics Token: Zadejte token účtu Logz.io, do kterého chcete odesílat protokoly Nebo metriky Azure. Tento token najdete na stránce účtu v uživatelském rozhraní Logz.io.
Souhlaste s podmínkami uvedenými v dolní části stránky a vyberte Zakoupit. Azure pak nasadí šablonu, která může trvat minutu nebo dvě. Nakonec se v horní části portálu zobrazí zpráva Nasazení bylo úspěšné.
Můžete navštívit definovanou skupinu prostředků a zkontrolovat nasazené prostředky.
Informace o konfiguraci logzio-azure-serverless
pro zálohování dat do služby Azure Blob Storage najdete v tématu Odesílání protokolů aktivit Azure.
Streamování protokolů a metrik Azure do Logz.io
Teď, když jste nasadili šablonu integrace, musíte Azure nakonfigurovat tak, aby streamovaly diagnostická data do centra událostí, které jste právě nasadili. Když data přicházejí do centra událostí, aplikace funkcí předá tato data Logz.io.
Do vyhledávacího pole zadejte Diagnostikaa poté vyberte Nastavení diagnostiky.
V seznamu prostředků zvolte prostředek, poté zvolte Přidat nastavení diagnostiky a otevřete panel nastavení diagnostiky pro tento prostředek.
panel nastavení diagnostiky
Zadejte nastavení diagnostiky Název.
Vyberte Stream docentra událostí a pak výběrem Konfigurovat otevřete panel Vybrat centrum událostí.
Zvolte centrum událostí:
-
Vyberte obor názvů centra událostí: Zvolte obor názvů, který začíná Logzio (například
LogzioNS6nvkqdcci10p
). - Vyberte název centra událostí: Pro protokoly zvolte insights-operational-logs a pro metriky zvolte insights-operational-metrics.
- Vyberte název zásady centra událostí: Zvolte LogzioSharedAccessKey.
-
Vyberte obor názvů centra událostí: Zvolte obor názvů, který začíná Logzio (například
Výběrem OK se vraťte na panel nastavení diagnostiky.
V části Protokol vyberte data, která chcete streamovat, a pak vyberte Uložit.
Vybraná data se teď streamují do centra událostí.
Vizualizace dat
Nejprve dejte svým datům čas, aby se přesunula z vašeho systému do Logz.io, a poté otevřete Kibana. Na vašich řídicích panelech by se měla zobrazovat data (s typem eventhub
), která je zaplňují. Další informace o vytváření řídicích panelů najdete v tématu Kibana – Vytvoření řídicího panelu.
Odtud můžete zadat dotaz na konkrétní data na kartě Zjistit nebo vytvořit objekty Kibana pro vizualizaci dat na kartě Vizualizujte.
Vyčištění prostředků
Až budete hotovi s prostředky Azure, které jste vytvořili v tomto kurzu, můžete je odstranit pomocí následujícího příkazu:
az group delete --name <resource group>
Další kroky
V tomto kurzu jste zjistili, jak nakonfigurovat aplikaci v Javě a služby Azure tak, aby odesílaly protokoly a metriky do Logz.io.
V dalším kroku se dozvíte další informace o monitorování aplikace pomocí centra událostí: