Självstudie: Komma igång med övervakning och loggning med hjälp av Logz.io för Java-appar som körs i Azure
Den här självstudien visar hur du konfigurerar ett klassiskt Java-program för att skicka loggar till Logz.io-tjänsten för inmatning och analys. Logz.io tillhandahåller en fullständig övervakningslösning baserad på Elasticsearch/Logstash/Kibana (ELK) och Grafana.
Denna handledning utgår ifrån att du använder Log4J eller Logback. De här biblioteken är de två som används mest för loggning i Java, så självstudien bör fungera för de flesta program som körs i Azure. Om du redan använder Elastic Stack för att övervaka ditt Java-program visar den här handledningen hur du konfigurerar om för att rikta in mot Logz.io-slutpunkten.
I den här handledningen lär du dig:
- Skicka loggar från ett befintligt Java-program till Logz.io.
- Skicka diagnostikloggar och mått från Azure-tjänster till Logz.io.
Förutsättningar
- Java Developer Kit, version 11 eller senare
- Ett Logz.io konto från Azure Marketplace
- Ett befintligt Java-program som använder Log4J eller Logback
Skicka Java-programloggar till Logz.io
Först får du lära dig hur du konfigurerar ditt Java-program med en token som ger det åtkomst till ditt Logz.io-konto.
Hämta din Logz.io åtkomsttoken
Om du vill hämta din token loggar du in på ditt Logz.io konto, väljer kugghjulsikonen i det nedre vänstra hörnet och väljer sedan Inställningar>Hantera token och väljer fliken Dataöverföringstoken. Kopiera standardåtkomsttoken visas och lyssnar-URL:en så att du kan använda dem senare.
Installera och konfigurera Logz.io-biblioteket för Log4J eller Logback
Det Logz.io Java-biblioteket finns på Maven Central, så du kan lägga till det som ett beroende i din appkonfiguration. Kontrollera versionsnumret på Maven Central och använd den senaste versionen i följande konfigurationsinställningar.
Om du använder Maven lägger du till följande beroende i din pom.xml-fil:
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>
Om du använder Gradle lägger du till följande beroende i byggskriptet:
Log4J:
implementation 'io.logz.log4j:logzio-log4j-appender:2.0.0'
Logback:
implementation 'io.logz.logback:logzio-logback-appender:2.0.0'
Uppdatera sedan konfigurationsfilen för Log4J eller 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>
Ersätt platshållaren <your-logz-io-token>
med din åtkomsttoken och platshållaren <your-logz-io-listener-host>
med din regions lyssnarvärd (till exempel listener.logz.io). Mer information om hur du hittar ditt kontos region finns i kontoregion.
Elementet logzioType
refererar till ett logiskt fält i Elasticsearch som används för att separera olika dokument från varandra. Det är viktigt att konfigurera den här parametern korrekt för att få ut mesta möjliga av Logz.io.
En Logz.io "typ" är ditt loggformat (till exempel Apache, NGinx, MySQL) och inte källan (till exempel: server1
, server2
, server3
). I den här självstudien anropar vi typen java
eftersom vi konfigurerar Java-program, och vi förväntar oss att alla dessa program har samma format.
För avancerad användning kan du gruppera dina Java-program i olika typer, som alla har ett eget specifikt loggformat (kan konfigureras med Log4J och Logback). Du kan till exempel ha en spring-boot-monolith
typ och en spring-boot-microservice
typ.
Testa konfigurations- och logganalysen på Logz.io
När Logz.io biblioteket har konfigurerats bör ditt program nu skicka loggar direkt till det. Om du vill testa att allt fungerar korrekt går du till Logz.io-konsolen, välj fliken Loggar>Live tail och välj sedan kör. Du bör se ett meddelande som liknar följande och tala om för dig att anslutningen fungerar:
Requesting Live Tail access...
Access granted. Opening connection...
Connected. Tailing...
Starta sedan programmet eller använd det för att skapa några loggar. Loggarna ska visas direkt på skärmen. Här är till exempel de första startmeddelandena i ett Spring Boot-program:
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 när Logz.io bearbetar loggarna kan du dra nytta av alla plattformens tjänster.
Skicka Azure-tjänstdata till Logz.io
Härnäst får du lära dig hur du skickar loggar och mått från dina Azure-resurser till Logz.io.
Distribuera mallen
Det första steget är att distribuera Logz.io – Azure-integreringsmallen. Integreringen baseras på en färdig Azure-distributionsmall som konfigurerar alla nödvändiga byggstenar i pipelinen. Mallen skapar ett Event Hub-namnområde, en händelsehubb, två lagringsblobar och alla rätt behörigheter och anslutningar som krävs. De resurser som konfigureras av den automatiserade distributionen kan samla in data för en enda Azure-region och skicka dessa data till Logz.io.
Hitta knappen Deploy to Azure som visas i första steget i lagringsplatsens readme.
När du väljer Distribuera till Azurevisas sidan anpassad distribution i Azure-portalen med en lista över förfyllda fält.
Du kan lämna de flesta fälten as-is men ange följande inställningar:
- Resursgrupp: Välj antingen en befintlig grupp eller skapa en ny.
-
Logzio-loggar/Metrics-värd: Ange URL:en för Logz.io lyssnare. Om du inte är säker på vad den här URL:en är kontrollerar du inloggnings-URL:en. Om det är
app.logz.io
använder dulistener.logz.io
(vilket är standardinställningen). Om det ärapp-eu.logz.io
använder dulistener-eu.logz.io
. - Logzio-loggar/måtttoken: Ange token för det Logz.io konto som du vill skicka Azure-loggar eller -mått till. Du hittar den här token på kontosidan i Logz.io användargränssnittet.
Godkänn villkoren längst ned på sidan och välj Köp. Azure distribuerar sedan mallen, vilket kan ta en minut eller två. Meddelandet "Distributionen lyckades" visas längst upp i portalen.
Du kan gå till den definierade resursgruppen för att granska de distribuerade resurserna.
Information om hur du konfigurerar logzio-azure-serverless
för att säkerhetskopiera data till Azure Blob Storage finns i Skicka Azure-aktivitetsloggar.
Strömma Azure-loggar och mått till Logz.io
Nu när du har distribuerat integreringsmallen måste du konfigurera Azure för att strömma diagnostikdata till den händelsehubb som du precis distribuerade. När data kommer in i händelsehubben vidarebefordrar funktionsappen dessa data till Logz.io.
I sökfältet skriver du Diagnostikoch väljer sedan Diagnostikinställningar.
Välj en resurs i listan över resurser och välj sedan Lägg till diagnostikinställning för att öppna Diagnostikinställningar panelen för den resursen.
Ge dina diagnostikinställningar ett namn .
Välj Stream till en händelsehubboch välj sedan Konfigurera för att öppna panelen Välj händelsehubb.
Välj din händelsehubb:
-
Välj namnområde för händelsehubb: Välj det namnområde som börjar med Logzio (
LogzioNS6nvkqdcci10p
, till exempel). - Välj händelsehubbnamn: För loggar väljer du insights-operational-logs och för mått väljer du insights-operational-metrics.
- Välj händelsehubbens principnamn: Välj LogzioSharedAccessKey.
-
Välj namnområde för händelsehubb: Välj det namnområde som börjar med Logzio (
Välj OK för att återgå till Diagnostikinställningar panelen.
I avsnittet Logg väljer du de data som du vill strömma och väljer sedan Spara.
De valda data strömmar nu till händelsehubben.
Visualisera dina data
Ge sedan dina data lite tid att komma från systemet till Logz.io och öppna sedan Kibana. Du bör se data (med typen eventhub
) som fyller dina instrumentpaneler. Mer information om hur du skapar instrumentpaneler finns i Kibana – Skapa instrumentpanel.
Därifrån kan du fråga efter specifika data på fliken Identifiera eller skapa Kibana-objekt för att visualisera dina data på fliken Visualisera.
Rensa resurser
När du är klar med de Azure-resurser som du skapade i den här självstudien kan du ta bort dem med hjälp av följande kommando:
az group delete --name <resource group>
Nästa steg
I den här självstudien har du lärt dig hur du konfigurerar Java-programmet och Azure-tjänsterna för att skicka loggar och mått till Logz.io.
Läs mer om hur du använder Event Hub för att övervaka ditt program: