Delen via


Zelfstudie: Aan de slag met bewaking en logboekregistratie met behulp van Logz.io voor Java-apps die worden uitgevoerd in Azure

In deze zelfstudie leert u hoe u een klassieke Java-toepassing configureert voor het verzenden van logboeken naar de Logz.io-service voor opname en analyse. Logz.io biedt een volledige bewakingsoplossing op basis van Elasticsearch/Logstash/Kibana (ELK) en Grafana.

In de zelfstudie wordt ervan uitgegaan dat u Log4J of Logback gebruikt. Deze bibliotheken worden het meest gebruikt voor logboekregistratie in Java. De zelfstudie moet dus werken voor de meeste toepassingen die worden uitgevoerd in Azure. Als u de Elastische stack al gebruikt om uw Java-toepassing te bewaken, ziet u in deze zelfstudie hoe u het Logz.io-eindpunt opnieuw configureert.

In deze zelfstudie leert u het volgende:

  • Logboeken verzenden vanuit een bestaande Java-toepassing naar Logz.io.
  • Verzend diagnostische logboeken en metrische gegevens van Azure-services naar Logz.io.

Voorwaarden

Java-toepassingslogboeken verzenden naar Logz.io

Eerst leert u hoe u uw Java-toepassing configureert met een token waarmee deze toegang krijgt tot uw Logz.io-account.

Uw Logz.io-toegangstoken ophalen

Als u uw token wilt ophalen, meldt u zich aan bij uw Logz.io-account, selecteert u het tandwielpictogram in de linkerbenedenhoek, selecteert u vervolgens Instellingen>Tokens beheren en selecteert u het tabblad Gegevensverzendingstokens. Kopieer het standaardtoegangstoken weergegeven en de listener-URL zodat u deze later kunt gebruiken.

De Logz.io-bibliotheek voor Log4J of Logback installeren en configureren

De Logz.io Java-bibliotheek is beschikbaar op Maven Central, zodat u deze kunt toevoegen als een afhankelijkheid aan uw app-configuratie. Controleer het versienummer op Maven Central en gebruik de nieuwste versie in de volgende configuratie-instellingen.

Als u Maven gebruikt, voegt u de volgende afhankelijkheid toe aan uw pom.xml-bestand:

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>

Als u Gradle gebruikt, voegt u de volgende afhankelijkheid toe aan uw buildscript:

Log4J:

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

Logback:

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

Werk vervolgens uw Log4J- of Logback-configuratiebestand bij:

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>

Vervang de tijdelijke aanduiding <your-logz-io-token> door uw toegangstoken en de tijdelijke aanduiding <your-logz-io-listener-host> door de listenerhost van uw regio, bijvoorbeeld listener.logz.io. Zie Accountregiovoor meer informatie over het vinden van de regio van uw account.

Het element logzioType verwijst naar een logisch veld in Elasticsearch dat wordt gebruikt om verschillende documenten van elkaar te scheiden. Het is essentieel dat u deze parameter juist configureert om optimaal gebruik te maken van Logz.io.

Een Logz.io 'type' is uw logboekindeling, bijvoorbeeld Apache, NGinx, MySQL, en niet uw bron, bijvoorbeeld: server1, server2, server3. Voor deze zelfstudie roepen we het type java aan omdat we Java-toepassingen configureren en we verwachten dat deze toepassingen allemaal dezelfde indeling hebben.

Voor geavanceerd gebruik kunt u uw Java-toepassingen groeperen in verschillende typen, die allemaal hun eigen specifieke logboekindeling hebben (configureerbaar met Log4J en Logback). U kunt bijvoorbeeld een spring-boot-monolith en een spring-boot-microservice type hebben.

Uw configuratie- en logboekanalyse testen op Logz.io

Nadat de Logz.io-bibliotheek is geconfigureerd, moet uw toepassing nu rechtstreeks logboeken naar de bibliotheek verzenden. Als u wilt testen of alles correct werkt, gaat u naar de Logz.io-console, selecteert u het tabblad Logboeken>Live tail en selecteert u vervolgens uitvoeren. Als het goed is, ziet u een bericht dat lijkt op het volgende, waarin wordt opgegeven dat de verbinding werkt:

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

Start vervolgens uw toepassing of gebruik deze om enkele logboeken te produceren. De logboeken moeten rechtstreeks op het scherm worden weergegeven. Hier volgen bijvoorbeeld de eerste opstartberichten van een Spring Boot-toepassing:

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)

Nu Logz.io uw logboeken verwerkt, kunt u profiteren van alle services van het platform.

Gegevens van Azure-services verzenden naar Logz.io

Vervolgens leert u hoe u logboeken en metrische gegevens van uw Azure-resources naar Logz.io verzendt.

De sjabloon implementeren

De eerste stap is het implementeren van de Logz.io - Azure-integratiesjabloon. De integratie is gebaseerd op een kant-en-klare Azure-implementatiesjabloon waarmee alle benodigde bouwstenen van de pijplijn worden ingesteld. Met de sjabloon maakt u een Event Hub-naamruimte, een Event Hub, twee opslagblobs en alle juiste machtigingen en verbindingen die vereist zijn. De resources die door de geautomatiseerde implementatie zijn ingesteld, kunnen gegevens verzamelen voor één Azure-regio en die gegevens verzenden naar Logz.io.

Zoek de knop Implementeren in Azure die wordt weergegeven in de eerste stap van de leesmij-van de opslagplaats.

Wanneer u Implementeren in Azureselecteert, wordt de pagina aangepaste implementatie in Azure Portal weergegeven met een lijst met vooraf ingevulde velden.

U kunt de meeste velden as-is laten, maar zorg ervoor dat u de volgende instellingen invoert:

  • Resourcegroep: Selecteer een bestaande groep of maak een nieuwe.
  • Logzio Logs/Metrics Host: Voer de URL van de Logz.io-listener in. Als u niet zeker weet wat deze URL is, controleert u de aanmeldings-URL. Als het app.logz.iois, gebruikt u listener.logz.io (de standaardinstelling). Als het app-eu.logz.iois, gebruikt u listener-eu.logz.io.
  • Logzio Logs/Metrics Token: Voer het token in van het Logz.io-account waarnaar u Azure-logboeken of metrische gegevens wilt verzenden. U vindt dit token op de accountpagina in de gebruikersinterface van Logz.io.

Ga akkoord met de voorwaarden onderaan de pagina en selecteer Koop. Vervolgens implementeert Azure de sjabloon, die een paar minuten kan duren. Uiteindelijk wordt het bericht Implementatie voltooid boven aan de portal weergegeven.

U kunt de gedefinieerde resourcegroep bezoeken om de geïmplementeerde resources te controleren.

Zie voor meer informatie over hoe u logzio-azure-serverless kunt configureren om gegevens naar Azure Blob Storage te back-uppen, Activiteitenlogboeken van Azure verzenden.

Azure-logboeken en metrische gegevens streamen naar Logz.io

Nu u de integratiesjabloon hebt geïmplementeerd, moet u Azure configureren om diagnostische gegevens te streamen naar de Event Hub die u zojuist hebt geïmplementeerd. Wanneer gegevens in de Event Hub binnenkomen, stuurt de functie-app die gegevens door naar Logz.io.

  1. Typ in de zoekbalk Diagnostischeen selecteer vervolgens Diagnostische instellingen.

  2. Kies een resource in de lijst met resources en selecteer vervolgens Diagnostische instelling toevoegen om het Diagnostische instellingen-deelvenster voor die resource te openen.

    Diagnostische instellingen deelvenster

  3. Geef uw diagnostische instellingen een naam.

  4. Selecteer Stream naar een Event Hub-en selecteer vervolgens configureren om het deelvenster Event Hub selecteren te openen.

  5. Kies uw Event Hub:

    • Event Hub-naamruimte selecteren: kies de naamruimte die begint met Logzio- (bijvoorbeeldLogzioNS6nvkqdcci10p).
    • Event Hub-naam selecteren: kies voor logboeken insights-operational-logs en kies voor metrische gegevens insights-operational-metrics.
    • Selecteer de naam van het Event Hub-beleid: kies LogzioSharedAccessKey.
  6. Selecteer OK- om terug te keren naar de diagnostische instellingen deelvenster.

  7. Selecteer in de sectie Logboek de gegevens die u wilt streamen en selecteer vervolgens Opslaan.

De geselecteerde gegevens worden nu naar de Event Hub gestreamd.

Uw gegevens visualiseren

Geef vervolgens uw gegevens wat tijd om van uw systeem naar Logz.io te gaan en open vervolgens Kibana. U zou gegevens (met het type eventhub) moeten zien die uw dashboards vullen. Zie Kibana - Dashboard makenvoor meer informatie over het maken van dashboards.

Hier kunt u query's uitvoeren op specifieke gegevens op het tabblad Ontdekken of Kibana-objecten maken om uw gegevens te visualiseren op het tabblad Visualiseren.

Middelen opschonen

Wanneer u klaar bent met de Azure-resources die u in deze zelfstudie hebt gemaakt, kunt u ze verwijderen met behulp van de volgende opdracht:

az group delete --name <resource group>

Volgende stappen

In deze zelfstudie hebt u geleerd hoe u uw Java-toepassing en Azure-services configureert om logboeken en metrische gegevens te verzenden naar Logz.io.

Lees vervolgens meer over het gebruik van Event Hub om uw toepassing te bewaken: