チュートリアル:Azure で実行される Java アプリ用の Logz.io を使用した監視とログ記録の概要Tutorial: Getting started with monitoring and logging using Logz.io for Java apps running on Azure

このチュートリアルでは、インジェストと分析のために Logz.io サービスにログを送信するように、クラシック Java アプリケーションを構成する方法について説明します。This tutorial shows you how to configure a classical Java application to send logs to the Logz.io service for ingestion and analysis. Logz.io により、Elasticsearch/Logstash/Kibana (ELK) および Grafana に基づく完全な監視ソリューションが提供されます。Logz.io provides a full monitoring solution based on Elasticsearch/Logstash/Kibana (ELK) and Grafana.

このチュートリアルは、Log4J または Logback の使用を前提としています。The tutorial assumes you're using Log4J or Logback. これらのライブラリは、Java でのログ記録に最も広く使用されています。そのため、このチュートリアルは Azure で実行されるほとんどのアプリケーションに適用できます。These libraries are the two most widely used for logging in Java, so the tutorial should work for most applications running on Azure. 既に Elastic スタックを使用して Java アプリケーションを監視している場合、このチュートリアルでは、Logz.io エンドポイントをターゲットにするように再構成する方法を示します。If you're already using the Elastic stack to monitor your Java application, this tutorial shows you how to reconfigure to target the Logz.io endpoint.

このチュートリアルで学習する内容は次のとおりです。In this tutorial, you'll learn how to:

  • 既存の Java アプリケーションから Logz.io にログを送信する。Send logs from an existing Java application to Logz.io.
  • 診断ログとメトリックを Azure サービスから Logz.io に送信する。Send diagnostic logs and metrics from Azure services to Logz.io.

前提条件Prerequisites

Java アプリケーションログを Logz.io に送信するSend Java application logs to Logz.io

まず、Logz.io アカウントへのアクセス権を付与するトークンを使用して Java アプリケーションを構成する方法について説明します。First, you'll learn how to configure your Java application with a token that gives it access to your Logz.io account.

Logz.io アクセス トークンを取得するGet your Logz.io access token

トークンを取得するには、Logz.io アカウントにログインし、右上隅の歯車アイコンを選択します。次に、 [Settings](設定) > [General](全般) を選択します。To get your token, log in to your Logz.io account, select the cog icon in the right-hand corner, then select Settings > General. アカウント設定に表示されているアクセス トークンをコピーして、後で使用できるようにします。Copy the access token displayed in your account settings so you can use it later.

Log4J または Logback 用の Logz.io ライブラリをインストールして構成するInstall and configure the Logz.io library for Log4J or Logback

Logz.io Java ライブラリは Maven Central で入手できるため、依存関係としてアプリ構成に追加できます。The Logz.io Java library is available on Maven Central, so you can add it as a dependency to your app configuration. Maven Central でバージョン番号を確認し、次の構成設定で最新バージョンを使用します。Check the version number on Maven Central and use the latest version in the following configuration settings.

Maven を使用している場合は、pom.xml ファイルに次の依存関係を追加します。If you're using Maven, add the following dependency to your pom.xml file:

Log4J:Log4J:

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

Logback:Logback:

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

Gradle を使用している場合は、ビルド スクリプトに次の依存関係を追加します。If you're using Gradle, add the following dependency to your build script:

Log4J:Log4J:

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

Logback:Logback:

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

次に、Log4J または Logback の構成ファイルを更新します。Next, update your Log4J or Logback configuration file:

Log4J: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: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>

<your-logz-io-token> プレースホルダーを実際のアクセス トークンに、<your-logz-io-listener-host> プレースホルダーを自分の地域のリスナー ホスト (listener.logz.io など) に置き換えます。Replace the <your-logz-io-token> placeholder with your access token and the <your-logz-io-listener-host> placeholder with your region’s listener host (for example, listener.logz.io). アカウントのリージョンを検索する方法の詳細については、「アカウント リージョン」を参照してください。For more information on finding your account’s region, see Account region.

logzioType 要素は、異なるドキュメントを相互に分離するために使用される Elasticsearch の論理フィールドを参照します。The logzioType element refers to a logical field in Elasticsearch that is used to separate different documents from one another. Logz.io を最大限に活用するには、このパラメーターを適切に構成することが不可欠です。It's essential to configure this parameter properly to get the most out of Logz.io.

Logz.io の "Type" は、ログの形式 (例: Apache、NGinx、MySQL) であり、ソース (例: server1、server2、server3) ではありません。A Logz.io "Type" is your log format (for example: Apache, NGinx, MySQL) and not your source (for example: server1, server2, server3). このチュートリアルでは、Java アプリケーションを構成しているため java-application 型を呼び出しています。これらのアプリケーションはすべて同じ形式であると想定されています。For this tutorial, we are calling the type java-application because we are configuring Java applications, and we expect those applications will all have the same format.

高度な使用方法として、Java アプリケーションをさまざまな型にグループ化することができます。各グループは独自のログ形式 (Log4J と Logback で構成可能) を持ちます。For advanced usage, you could group your Java applications into different types, which all have their own specific log format (configurable with Log4J and Logback). たとえば、"spring-boot-monolith" という型と "spring-boot-microservice" という型を使用できます。For example, you could have a "spring-boot-monolith" type and a "spring-boot-microservice" type.

Logz.io で構成とログ分析をテストするTest your configuration and log analysis on Logz.io

Logz.io ライブラリの構成が完了すると、アプリケーションはログを直接送信するようになります。After the Logz.io library is configured, your application should now send logs directly to it. すべてが正しく動作することをテストするには、Logz.io コンソールにアクセスし、 [Live tail](ライブ テイル) タブを選択し、 [run](実行) を選択します。To test that everything works correctly, go to the Logz.io console, select the Live tail tab, then select run. 接続が機能していることを示す次のようなメッセージが表示されます。You should see a message similar to the following, telling you the connection is working:

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

次に、アプリケーションを起動するか、ログを生成するために使用します。Next, start your application, or use it in order to produce some logs. ログが画面に直接表示されます。The logs should appear directly on your screen. たとえば、Spring Boot アプリケーションの最初の起動メッセージは次のようになります。For example, here are the first startup messages of a Spring Boot application:

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)

ログが Logz.io によって処理されたので、プラットフォームのすべてのサービスを活用できます。Now that your logs are processed by Logz.io, you can benefit from all the platform's services.

Azure サービスのデータを Logz.io に送信するSend Azure services data to Logz.io

次に、Azure リソースから Logz.io にログとメトリックを送信する方法について説明します。Next you'll learn how to send logs and metrics from your Azure resources to Logz.io.

テンプレートのデプロイDeploy the template

最初の手順では、Logz.io と Azure の統合テンプレートをデプロイします。The first step is to deploy the Logz.io - Azure integration template. 統合は、既製の Azure デプロイ テンプレートに基づいており、パイプラインのすべての必要な構成要素を設定します。The integration is based on a ready-made Azure deployment template that sets up all the necessary building blocks of the pipeline. このテンプレートは、イベント ハブ名前空間、イベント ハブ、2 つのストレージ BLOB、および必要なすべての適切なアクセス許可と接続を作成します。The template creates an Event Hub namespace, an Event Hub, two storage blobs, and all the correct permissions and connections required. 自動化されたデプロイによって設定されたリソースは、1 つの Azure リージョンのデータを収集し、そのデータを Logz.io に送信できます。The resources set up by the automated deployment can collect data for a single Azure region and ship that data to Logz.io.

リポジトリの readme の最初の手順に表示されている [Deploy to Azure] ボタンを見つけます。Find the Deploy to Azure button displayed in the first step of the repo’s readme.

[Deploy to Azure] を選択すると、Azure portal の [カスタム デプロイ] ページに、入力済みのフィールドの一覧が表示されます。When you select Deploy to Azure, the Custom Deployment page in the Azure portal will appear with a list of pre-filled fields.

ほとんどのフィールドはそのままにしておくことができますが、次の設定を入力してください。You can leave most of the fields as-is but be sure to enter the following settings:

  • [リソース グループ] :既存のグループを選択するか、新しいグループを作成します。Resource group: Either select an existing group or create a new one.
  • Logzio Logs/Metrics Host (Logzio ログ/メトリック ホスト) :Logz.io リスナーの URL を入力します。Logzio Logs/Metrics Host: Enter the URL of the Logz.io listener. この URL がわからない場合は、ログイン URL を確認してください。If you’re not sure what this URL is, check your login URL. それが app.logz.io の場合、listener.logz.io (既定の設定) を使用します。If it’s app.logz.io, use listener.logz.io (which is the default setting). app-eu.logz.io の場合は listener-eu.logz.io を使用します。If it’s app-eu.logz.io, use listener-eu.logz.io.
  • Logzio Logs/Metrics Token (Logzio ログ/メトリック トークン) :Azure のログまたはメトリックを送付する Logz.io アカウントのトークンを入力します。Logzio Logs/Metrics Token: Enter the token of the Logz.io account you want to ship Azure logs or metrics to. このトークンは、Logz.io UI のアカウント ページで見つけることができます。You can find this token on the account page in the Logz.io UI.

ページの下部にある条項に同意し、 [Purchase](購入) を選択します。Agree to the terms at the bottom of the page, and select Purchase. その後、Azure によってテンプレートがデプロイされます。これには 1 - 2 分かかる場合があります。Azure will then deploy the template, which may take a minute or two. 最終的には、ポータルの上部に "デプロイに成功しました" というメッセージが表示されます。You'll eventually see the "Deployment succeeded" message at the top of the portal.

定義されたリソース グループにアクセスして、デプロイされたリソースを確認できます。You can visit the defined resource group to review the deployed resources.

Azure Blob Storage にデータをバックアップするように logzio-azure-serverless を構成する方法については、「Ship Azure activity logs」を参照してください。To learn how to configure logzio-azure-serverless to back up data to Azure Blob Storage, see Ship Azure activity logs.

Azure のログとメトリックを Logz.io にストリーム配信するStream Azure logs and metrics to Logz.io

統合テンプレートをデプロイしたので、デプロイしたイベント ハブに診断データをストリーム配信するように Azure を構成する必要があります。Now that you’ve deployed the integration template, you’ll need to configure Azure to stream diagnostic data to the Event Hub you just deployed. データがイベント ハブに送られると、関数アプリがそのデータを Logz.io に転送します。When data comes into the Event Hub, the function app will then forward that data to Logz.io.

  1. 検索バーに「診断」と入力し、 [診断設定] を選択します。In the search bar, type “Diagnostic”, then select Diagnostic settings.

  2. リソースの一覧からリソースを選択し、 [診断設定を追加する] を選択して、 [診断設定] パネルを開きます。Choose a resource from the list of resources, then select Add diagnostic setting to open the Diagnostics settings panel for that resource.

    [診断設定] パネル

  3. 診断設定の名前を付けます。Give your diagnostic settings a Name.

  4. [イベントハブへのストリーム] を選択し、 [構成] を選択して [イベント ハブの選択] パネルを開きます。Select Stream to an event hub, then select Configure to open the Select Event Hub panel.

  5. イベント ハブを選択します。Choose your Event Hub:

    • イベント ハブの名前空間の選択:先頭が Logzio の名前空間 (LogzioNS6nvkqdcci10p, など) を選択します。Select event hub namespace: Choose the namespace that starts with Logzio (LogzioNS6nvkqdcci10p, for example).
    • イベント ハブ名を選択する:ログ用に insights-operational-logs を選択し、メトリック用に insights-operational-metrics を選択します。Select event hub name: For logs choose insights-operational-logs and for metrics choose insights-operational-metrics.
    • イベント ハブ ポリシー名の選択:LogzioSharedAccessKey を選択します。Select event hub policy name: Choose LogzioSharedAccessKey.
  6. [OK] を選択して、 [診断設定] パネルに戻ります。Select OK to return to the Diagnostics settings panel.

  7. [ログ] セクションで、ストリーム配信するデータを選択し、 [保存] を選択します。In the Log section, select the data you want to stream, then select Save.

これで、選択したデータがイベント ハブにストリーム配信されるようになります。The selected data will now stream to the Event Hub.

データを視覚化するVisualize your data

次に、少し時間をおいてデータをシステムから Logz.io に送信してから、Kibana を開きます。Next, give your data some time to get from your system to Logz.io, and then open Kibana. データ (種類 eventhub) がダッシュボードに表示されます。You should see data (with the type eventhub) filling up your dashboards. ダッシュボードを作成する方法の詳細については、「Creating the Perfect Kibana Dashboard」を参照してください。For more information on how to create dashboards, see Creating the Perfect Kibana Dashboard.

そこから、 [検出] タブで特定のデータを照会したり、Kibana オブジェクトを作成して [視覚化] タブでデータを視覚化したりできます。From there, you can query for specific data in the Discover tab, or create Kibana objects to visualize your data in the Visualize tab.

リソースのクリーンアップClean up resources

このチュートリアルで作成した Azure リソースの使用が完了したら、次のコマンドを使用して削除できます。When you're finished with the Azure resources you created in this tutorial, you can delete them using the following command:

az group delete --name <resource group>

次の手順Next steps

このチュートリアルでは、Logz.io にログとメトリックを送信するように Java アプリケーションと Azure サービスを構成する方法について学習しました。In this tutorial, you learned how to configure your Java application and Azure services to send logs and metrics to Logz.io.

次に、イベント ハブを使用してアプリケーションを監視する方法について詳しく説明します。Next, learn more about using Event Hub to monitor your application: