Oktatóanyag: Bevezetés az Azure-ban futó Java-alkalmazások Logz.io használatával történő monitorozásba és naplózásba

Ez az oktatóanyag bemutatja, hogyan konfigurálhatja a klasszikus Java-alkalmazásokat úgy, hogy naplókat küldjenek a Logz.io szolgáltatásnak adatfeldolgozáshoz és elemzéshez. A Logz.io egy teljes körű, az Elasticsearch, a Logstash, a Kibana (ELK) és Grafana szolgáltatásokon alapuló monitorozási megoldást kínál.

Az oktatóanyag feltételezi, hogy Log4J-t vagy Logbacket használ. Ezt a két kódtárat használják a legszélesebb körben a Javában való naplózáshoz, ezért az oktatóanyagnak a legtöbb Azure-on futó alkalmazás esetében működnie kell. Ha az Elastic Stacket használja a Java-alkalmazás monitorozásához, ez az oktatóanyag bemutatja, hogyan konfigurálhatja újra úgy, hogy a Logz.io-végpontot célozza meg.

Ebből az oktatóanyagból az alábbiakat sajátíthatja el:

  • Naplókat küldhet egy meglévő Java-alkalmazásból a Logz.io-ba.
  • Diagnosztikai naplókat és metrikákat küldhet az Azure-szolgáltatásokból a Logz.io-ba.

Előfeltételek

Java-alkalmazásnaplók küldése a Logz.io-ba

Először megismeri, hogyan konfigurálhatja Java-alkalmazását egy olyan jogkivonattal, amely hozzáférést biztosít a Logz.io-fiókjához.

Logz.io hozzáférési jogkivonat beszerzése

A jogkivonat beszerzéséhez jelentkezzen be Logz.io fiókjába, válassza a fogaskerék ikont a jobb oldali sarokban, majd válassza Gépház > Általános lehetőséget. Másolja ki a fiókbeállításokban megjelenített hozzáférési jogkivonatot a későbbi használathoz.

Logz.io-kódtár telepítése és konfigurálása Log4J-hez vagy Logbackhez

A Logz.io-beli Java-kódtár elérhető a Maven Centralon, így hozzáadhatja függőségként az alkalmazáskonfigurációhoz. A Maven Centralon ellenőrizze a verziószámot, és a legújabb verziót használja az alábbi konfigurációs beállításokban.

Ha Mavent használ, adja hozzá az alábbi függőségeket a pom.xml fájlhoz:

Log4J:

<dependency>
    <groupId>io.logz.log4j2</groupId>
    <artifactId>logzio-log4j2-appender</artifactId>
    <version>1.0.11</version>
</dependency>

Logback:

<dependency>
    <groupId>io.logz.logback</groupId>
    <artifactId>logzio-logback-appender</artifactId>
    <version>1.0.22</version>
</dependency>

Ha Gradle-t használ, adja hozzá az alábbi függőségeket a buildszkripthez:

Log4J:

implementation 'io.logz.log4j:logzio-log4j-appender:1.0.11'

Logback:

implementation 'io.logz.logback:logzio-logback-appender:1.0.22'

Ezután frissítse a Log4J-et vagy Logbacket a konfigurációs fájlból:

Log4J:

<Appenders>
    <LogzioAppender name="Logzio">
        <logzioToken><your-logz-io-token></logzioToken>
        <logzioType>java-application</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-application</logzioType>
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
    </appender>

    <root level="debug">
        <appender-ref ref="LogzioLogbackAppender"/>
    </root>
</configuration>

Cserélje le a <your-logz-io-token> helyőrzőt a hozzáférési jogkivonattal, a <your-logz-io-listener-host> helyőrzőt pedig a régió figyelőjének gazdagépére (például: listener.logz.io). A fiók régiójának megállapításával kapcsolatos további információkért tekintse meg az Account region (Fiók régiója) szakaszt.

A logzioType elem egy Elasticsearch-beli logikai mezőre hivatkozik, amely a különböző dokumentumok egymástól való szétválasztására szolgál. A paraméter megfelelő konfigurálása kiemelten fontos annak érdekében, hogy kihozhassa a legtöbbet a Logz.io-ból.

A Logz.io "Típus" a naplóformátum (például Apache, NGinx, MySQL), és nem a forrás (például: server1, server2, server3). Ebben az oktatóanyagban a java-application típust hívjuk meg, mivel Java-alkalmazásokat konfigurálunk, és azt szeretnénk, hogy ezek az alkalmazások azonos formátummal rendelkezzenek.

Speciális használat esetén különböző típusonként csoportosíthatja a Java-alkalmazásait, amelyek mindegyike saját jellemző (Log4J-vel és Logbackkel konfigurálható) naplóformátummal rendelkezik. Rendelkezhet például egy „spring-boot-monolith” típussal és egy „spring-boot-microservice” típussal.

A konfiguráció és a naplóelemzés tesztelése a Logz.io-ban

A Logz.io-kódtár konfigurálása után az alkalmazás közvetlenül a kódtárba küldi a naplókat. Annak teszteléséhez, hogy minden megfelelően működik-e, nyissa meg a Logz.io-konzolt, válassza a Live tail (Élő követés) lapot, majd válassza a run (futtatás) lehetőséget. Az alábbihoz hasonló üzenet jelenik meg, amely arról tájékoztatja, hogy a kapcsolat működik:

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

Ezután indítsa el az alkalmazást, vagy a használatával hozzon létre néhány naplót. A naplók közvetlenül a képernyőn jelennek meg. Itt láthatja például a Spring Boot-alkalmazás első indítási üzeneteit:

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)

Most, hogy a naplókat a Logz.io dolgozza fel, kihasználhatja a platform összes szolgáltatásának előnyeit.

Azure-szolgáltatások adatainak küldése a Logz.io-ba

Ezután megismeri, hogyan küldhet naplókat és metrikákat az Azure-erőforrásokból a Logz.io-ba.

A sablon üzembe helyezése

Az első lépés a Logz.io – Azure-integrációs sablon üzembe helyezése. Az integráció egy használatra kész Azure-beli üzembehelyezési sablonon alapul, amely telepíti a folyamat összes szükséges építőelemét. A sablon létrehoz egy Event Hub-névteret, egy eseményközpontot, két tárolóblobot, valamint az összes szükséges és megfelelő engedélyt és kapcsolatot. Az automatikus üzembe helyezés által telepített erőforrások egyetlen Azure-régió adatait képesek összegyűjteni és azokat a Logz.io-ba elküldeni.

Keresse meg az adattár readme fájljának első lépésében szereplő Deploy to Azure (Üzembe helyezés az Azure-ban) gombot.

A Deploy to Azure (Üzembe helyezés az Azure-ban) lehetőség kiválasztásakor megjelenik a Custom Deployment (Egyéni üzembe helyezés) oldal az Azure Portalon egy előre kitöltött mezőket tartalmazó listával.

A legtöbb mezőt nem kell módosítania, azonban az alábbi beállításokat mindenképp adja meg:

  • Erőforráscsoport: Válasszon ki egy meglévő csoportot, vagy hozzon létre egy újat.
  • Logzio-naplók/metrikák gazdagépe: Adja meg a Logz.io figyelő URL-címét. Ha nem biztos az URL-címben, tekintse meg a bejelentkezési URL-címet. Ha ez az app.logz.io, használja a listener.logz.io URL-címet (ez az alapértelmezett beállítás). Ha ez az app-eu.logz.io, használja a listener-eu.logz.io címet.
  • Logzio-naplók/metrikák jogkivonata: Adja meg annak a Logz.io fióknak a jogkivonatát, amelyhez Azure-naplókat vagy metrikákat szeretne küldeni. Ezt a jogkivonatot a Logz.io felhasználói felületének fiókoldalán találja.

A lap alján fogadja le a használati feltételeket, és válassza a Purchase (Vásárlás) lehetőséget. Az Azure üzembe helyezi a sablont, ami egy-két percet vesz igénybe. Végül a portál tetején megjelenik az „Deployment succeeded” (Az üzembe helyezés sikerült) üzenet.

Az üzembe helyezett erőforrások áttekintéséhez megtekintheti a definiált erőforráscsoportot.

Tekintse meg a Ship Azure activity logs (Azure-tevékenységnaplók küldése) szakaszt, ha meg szeretné tudni, hogyan konfigurálhatja a logzio-azure-serverless függvényt az adatok Azure Blob Storage-ba való biztonsági mentéséhez.

Naplók és metrikák streamelése az a Logz.io-ba

Most, hogy üzembe helyezte az integrációs sablont, konfigurálnia kell az Azure-t, hogy a diagnosztikai adatokat az imlnt üzembe helyezett eseményközpontba streamelje. Amikor az adatok beérkeznek az eseményközpontba, a függvényalkalmazás továbbítja az adatokat a Logz.io-ba.

  1. A keresősávba írja be a „Diagnostic” kifejezést, majd válassza Diagnostic settings (Diagnosztikai beállítások) lehetőséget.

  2. Válasszon ki egy erőforrást az erőforráslistából, majd válassza az Add diagnostic setting (Diagnosztikai beállítás hozzáadása) elemet az erőforráshoz tartozó Diagnostics settings (Diagnosztikai beállítások) panel megnyitásához.

    Diagnostics settings panel

  3. Adja meg a diagnosztikai beállítások Name (Név) tulajdonságának értékét.

  4. Válassza a Stream to an event hub (Streamelés eseményközpontba) lehetőséget, majd válassza a Configure (Konfigurálás) lehetőséget a Select Event Hub (Eseményközpont kiválasztása) panel megnyitásához.

  5. Válassza ki az eseményközpontot:

    • Válassza ki az eseményközpont névterét: Válassza ki a Logzio kezdetű névteret (LogzioNS6nvkqdcci10ppéldául).
    • Válassza ki az eseményközpont nevét: A naplókhoz válassza az insights-operational-logs , a metrikákhoz pedig az insights-operational-metrics elemet.
    • Válassza ki az eseményközpont házirendjének nevét: Válassza a LogzioSharedAccessKey lehetőséget.
  6. A Diagnostics settings (Diagnosztikai beállítások) panelre való visszatéréshez kattintson az OK gombra.

  7. A Log (Napló) szakaszban válassza ki a streamelni kívánt adatokat, majd kattintson a Save (Mentés) gombra.

A rendszer mostantól az eseményközpontba streameli a kiválasztott adatokat.

Adatok vizualizációja

Várjon egy kis ideig, hogy az adatok a rendszerből a Logz.io-ba kerüljenek, majd nyissa meg a Kibanát. Láthatja, ahogy az (eventhub típusú) adatok feltöltik az irányítópultokat. Az irányítópultok létrehozásával kapcsolatos további információkért tekintse meg a Creating the Perfect Kibana Dashboard (A tökéletes Kibana-irányítópult létrehozása) szakaszt.

Innen lekérdezhet konkrét adatokat a Discover (Felderítés) lapon, vagy létrehozhat Kibana-objektumokat az adatok Visualize (Vizualizáció) lapon való vizualizálásához.

Az erőforrások eltávolítása

Ha végzett az oktatóanyagban létrehozott Azure-erőforrásokkal, az alábbi parancs használatával törölheti őket:

az group delete --name <resource group>

Következő lépések

Ebben az oktatóanyagban megismerte, hogyan konfigurálhatja a Java-alkalmazást és az Azure-szolgáltatásokat úgy, hogy naplókat és metrikákat küldjenek a Logz.io-ba.

Ezután ismerje meg az eseményközpont alkalmazásmonitorozáshoz való használatát: