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 v Javě tak, aby odesílala protokoly k ingestování a analýze do služby Logz.io. Logz.io poskytuje úplné řešení monitorování využívající Elasticsearch, Logstash, Kibana (ELK) a Grafana.

V tomto kurzu se předpokládá, že používáte Log4J nebo Logback. K protokolování v Javě se nejčastěji používají tyto dvě knihovny, takže by tento kurz měl fungovat pro většinu aplikací v Azure. Pokud již k monitorování aplikace v Javě používáte Elastic Stack, v tomto kurzu se dozvíte, jak změnit konfiguraci cíle na koncový bod Logz.io.

V tomto kurzu se naučíte:

  • Odesílat protokoly z existující aplikace v Javě do Logz.io
  • Odesílat diagnostické protokoly a metriky ze služeb Azure do Logz.io

Požadavky

Odesílání protokolů aplikace v Javě do Logz.io

Nejprve zjistíte, jak pro aplikaci v Javě nakonfigurovat token, který jí umožní 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 odesílání dat. Zkopírujte výchozí přístupový token a adresu URL naslouchacího procesu, abyste je mohli později použít.

Instalace a konfigurace knihovny Logz.io pro Log4J nebo Logback

Knihovna Logz.io pro Javu je k dispozici v centrálním úložišti Maven, takže ji můžete přidat jako závislost do konfigurace své aplikace. Zkontrolujte číslo verze v centrálním úložišti Maven a v následujících nastaveních konfigurace použijte nejnovější verzi.

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'

Pak 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>

Zástupnou hodnotu <your-logz-io-token> nahraďte vaším přístupovým tokenem a zástupnou hodnotu <your-logz-io-listener-host> nahraďte hostitelem naslouchacího procesu pro vaši oblast (například listener.logz.io). Další informace o tom, jak zjistit oblast účtu, najdete v tématu věnovaném oblastem Azure.

Element logzioType odkazuje na logické pole v Elasticsearch, které slouží k oddělení různých dokumentů. Abyste mohli Logz.io využívat naplno, je nezbytné tento parametr správně nakonfigurovat.

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čilejšího využití můžete aplikace v Javě seskupit do různých typů, které budou mít vlastní formát protokolů (konfigurovatelný pomocí Log4J a Logback). Můžete mít například typy spring-boot-monolith a spring-boot-microservice.

Test konfigurace a analýza protokolů v Logz.io

Po nakonfigurování knihovny Logz.io by teď vaše aplikace měla přímo do ní odesílat protokoly. Pokud chcete otestovat, že všechno funguje správně, přejděte do konzoly Logz.io, vyberte kartu Protokoly > live a pak vyberte spustit. Měla by se zobrazit podobná zpráva s informací o fungování připojení:

Requesting Live Tail access...
Access granted. Opening connection...
Connected. Tailing...

Pak spusťte svou aplikaci nebo pomocí ní vygenerujte několik protokolů. Protokoly by se měly zobrazit přímo na vaší obrazovce. Tady jsou například první zprávy o spuštění 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)

Když teď Logz.io zpracovává vaše protokoly, můžete využívat všechny služby této platformy.

Odesílání dat služeb Azure do Logz.io

Dále se dozvíte, jak do Logz.io odesílat protokoly a metriky z prostředků Azure.

Nasazení šablony

Prvním krokem je nasazení šablony integrace Logz.io a Azure. Integrace je založená na předem připravené šabloně nasazení Azure, která nastaví všechny potřebné stavební bloky kanálu. Šablona vytvoří obor názvů centra událostí, centrum událostí, dva objekty blob úložiště a všechna požadovaná oprávnění a připojení. Prostředky nastavené v rámci automatizovaného nasazení můžou shromažďovat data z jedné oblasti Azure a odesílat je do Logz.io.

V prvním kroku souboru Readme úložiště vyhledejte tlačítko Deploy to Azure (Nasadit do Azure).

Po výběru tlačítka Deploy to Azure (Nasadit do Azure) se na webu Azure Portal zobrazí stránka Vlastní nasazení se seznamem předem vyplněných polí.

Většinu polí můžete ponechat tak, jak jsou, ale nezapomeňte zadat následující nastavení:

  • Skupina prostředků: Vyberte existující skupinu nebo vytvořte novou.
  • Logzio Logs/Metrics Host: Zadejte adresu URL naslouchacího procesu Logz.io. Pokud si touto adresou URL nejste jistí, podívejte se na svou přihlašovací adresu URL. Pokud je tato adresa app.logz.io, použijte listener.logz.io (což je výchozí nastavení). Pokud je tato adresa app-eu.logz.io, použijte listener-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.

V dolní části stránky vyjádřete souhlas s podmínkami a vyberte Koupit. Azure pak šablonu nasadí, což může pár minut trvat. Nakonec se v horní části portálu zobrazí zpráva Nasazení proběhlo úspěšně.

Můžete přejít do definované skupiny prostředků a zkontrolovat nasazené prostředky.

Informace o konfiguraci zálohování dat do služby Azure Blob Storage pro logzio-azure-serverless najdete v tématu věnovaném odesílání protokolů aktivit Azure.

Streamování protokolů a metrik Azure do Logz.io

Po nasazení šablony integrace je teď potřeba nakonfigurovat Azure pro streamování diagnostických dat do centra událostí, které jste právě nasadili. Když data dorazí do centra událostí, aplikace funkcí je přesměruje do Logz.io.

  1. Na panelu hledání zadejte Diagnostika a vyberte Nastavení diagnostiky.

  2. V seznamu prostředků vyberte prostředek, a pak výběrem možnosti Přidat nastavení diagnostiky otevřete panel Nastavení diagnostiky pro daný prostředek.

    Diagnostics settings panel

  3. Zadejte Název nastavení diagnostiky.

  4. Vyberte Streamovat do centra událostí a pak výběrem možnosti Konfigurovat otevřete panel Vybrat centrum událostí.

  5. Vyberte centrum událostí:

    • Vyberte obor názvů centra událostí: Zvolte obor názvů, který začíná logzio (LogzioNS6nvkqdcci10pnapříklad).
    • 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.
  6. Výběrem možnosti OK se vraťte na panel Nastavení diagnostiky.

  7. V části Protokol vyberte data, která chcete streamovat, a pak vyberte Uložit.

Vybraná data se teď budou streamovat do centra událostí.

Vizualizace dat

Pak chvíli počkejte, než se data dostanou z vašeho systému do Logz.io, a otevřete Kibana. Řídicí panely by se měly začít naplňovat daty (typu eventhub). Další informace o vytváření řídicích panelů najdete v tématu Kibana – Vytvoření řídicího panelu.

Tady můžete na kartě Discover (Zjišťování) odesílat dotazy na konkrétní data nebo na kartě Visualize (Vizualizace) vytvářet objekty Kibana pro vizualizaci dat.

Vyčištění prostředků

Pokud jste už s prostředky Azure vytvořenými v tomto kurzu skončili, můžete je pomocí následujícího příkazu odstranit:

az group delete --name <resource group>

Další kroky

V tomto kurzu jste zjistili, jak nakonfigurovat aplikaci v Javě a služby Azure pro odesílání protokolů a metrik do Logz.io.

V dalším kurzu se dozvíte další informace o monitorování aplikace s využitím centra událostí: