1概要

このクイックチュートリアルでは、アプリケーションログをElastic Stack(ELK)に送信する方法を段階的に説明します。

リンク:/tomcat-jmx-elastic-stack[以前の記事]では、Elastic Stackの設定とそこへのJMXデータの送信に焦点を当てました。


2ログバックを設定する


FileAppender

を使用してアプリのログをファイルに書き込むようにLogbackを設定することから始めましょう。

<appender name="STASH" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>logback/redditApp.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>logback/redditApp.%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>7</maxHistory>
    </rollingPolicy>
    <encoder class="net.logstash.logback.encoder.LogstashEncoder"/>
</appender>
<root level="DEBUG">
    <appender-ref ref="STASH"/>
</root>

ご了承ください:

  • 私たちは、を使って毎日のログを別々のファイルに保存します。


RollingFileAppender

with

TimeBasedRollingPolicy

(詳細については
アペンダリンク:/java-logging-rolling-file-appenders[ここ])
**

maxHistory

を設定して、1週間(7日)だけ古いログを保存します。

7まで

また、https://github.com/logstash/logstash-logback-encoder[

LogstashEncoder

]を使用してJSON形式にエンコードしていることにも注目してください。これはLogstashでより簡単に使用できます。

このエンコーダを利用するには、

pom.xml

に次の依存関係を追加する必要があります。

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>4.11</version>
</dependency>

最後に、アプリにログディレクトリへのアクセス許可があることを確認しましょう。

sudo chmod a+rwx/var/lib/tomcat8/logback


3 Logstash

を構成する

今、私たちは我々のアプリによって作成されたログファイルからデータを読み込み、それをElasticSearchに送信するようにLogstashを設定する必要があります。

これが私たちの設定ファイル

logback.conf

です:

input {
    file {
        path => "/var/lib/tomcat8/logback/** .log"
        codec => "json"
        type => "logback"
    }
}

output {
    if[type]=="logback" {
         elasticsearch {
             hosts =>["localhost:9200"]             index => "logback-%{+YYYY.MM.dd}"
        }
    }
}

ご了承ください:

Logstashは今回ロギングからログを読み込むので** input

file

が使用されます。

ファイル
**

path

は、ロギングディレクトリと.logを持つすべてのファイルに設定されます

拡張子が処理されます
**

index

は、新しいインデックス「logback – %\ {YYYY.MM.dd}」に設定されます。

デフォルト“ logstash – %\ {YYYY.MM.dd}”

Logstashを新しい構成で実行するには、以下を使用します。

bin/logstash -f logback.conf


4 Kibana

を使用してログを視覚化する

ログバックデータは、 ‘

logback – **

‘インデックスで確認できます。

次のクエリを使用してログバックデータを確実に分離するために、新しい検索「ログバックログ」を作成します。

type:logback

最後に、Logbackデータの簡単な視覚化を作成できます。

  • [視覚化]タブに移動します

  • [縦棒グラフ]を選択します

  • [保存した検索から]を選択します

  • 先ほど作成した[Logback logs]検索を選択します。

Y軸の場合は、必ず集計:

Count

を選択してください。

X軸の場合は、次のように選択します。

  • 集計:__条件

  • フィールド:

    level

視覚化を実行すると、レベルごとのログ数を表す複数のバーが表示されます(DEBUG、INFO、ERRORなど)。


5結論

この記事では、私たちのシステムでLogstashを設定して、それが生成するログ・データをElasticsearchにプッシュし、そのデータをKibanaの助けを借りて視覚化することの基本を学びました。