Springboot ELK(logback-> redis-> logstash-> ES)完全な記録

免責事項:この記事はブロガーオリジナル記事です、続くBY-SAのCC 4.0を著作権契約、複製、元のソースのリンクと、この文を添付してください。
このリンク: https://blog.csdn.net/h_sn9999/article/details/102757994

プロジェクトのインストール:Redisの、logstash、ES、kibanaのインストールは、公式ドキュメントを参照してください。

 

プロジェクトSpringbootバージョン:

<親>
        <のgroupId> org.springframework.boot </のgroupId>
        <たartifactId>ばねブートスタータ親</たartifactId>
        <バージョン>
2.1.5.RELEASE </バージョン>
 </親>

<春-cloud.version> Greenwich.SR1 </spring-cloud.version>

pom.xml導入

    <依存性>
            <のgroupId> com.cwbase </のgroupId>
            <たartifactId> logback-Redisの-アペンダ</たartifactId>
            <バージョン> 1.1.5 </バージョン>
    </依存>

 

logback.xml、次のソースでこのファイル

<?xml version = "1.0"エンコード= "UTF-8"?>
<設定のデバッグ= "false"に>

    <アペンダ名= "STDOUT"
        クラス= "ch.qos.logback.core.ConsoleAppender">
        <エンコーダの
            クラス= "ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <パターン>%日付[%の10thread]% - 5levelの%ロガー{36} - %のMSGの%N </パターン>
        </エンコーダ>
    </アペンダ>

    <アペンダ名= "FILE"
        クラス= "ch.qos.logback.core.rolling.RollingFileAppender">
        <ファイル>ログ/ backend.log </ファイル>
        <rollingPolicyの
            クラス= "ch.qos.logback.core.rolling。 TimeBasedRollingPolicy ">
            <fileNamePattern>ログ/バックエンド%のD {YYYY-MM-DD} .log.zip
            </ fileNamePattern>
            <maxHistory> 1 </ maxHistory>
        </ rollingPolicy>
        <エンコーダの
            クラス=" ch.qos.logback。 classic.encoder.PatternLayoutEncoder ">
            <パターン>%のD {YYYY-MM-DD HH:MM:SS.SSS} [%スレッド]%-5level%C.%以下のM:%のL -
                %のM%N </パターン>
        </エンコーダ>
    </アペンダ>

    <! - <アペンダ名= "LOGSTASH"クラス= "net.logstash.logback.appender.LogstashTcpSocketAppender"> 
        <送信先> 127.0.0.1:9250 </宛先> <エンコーダのcharset = "UTF-8"クラス= "ネット.logstash.logback.encoder.LogstashEncoder」 
        /> </アペンダ> - >

    <アペンダ名= "LOGSTASH"
        クラス= "com.cwbase.logback.RedisAppender">
        <ソース> user_common_service </ソース>
        <sourcePathは>ノード1 </ sourcePathは>
        <タイプ>サービス</タイプ>
        <タグ>生産</タグ>
        <ホスト> 127.0.0.1 </ホスト>
        <ポート> 6379 </ポート>
        <キー> logstash </ KEY>
        <additionalField>
            <キー> TEAMNAME </ KEY>
            <値> mobile_app </ value>の
        </ additionalField>
    </アペンダ>

    <ルートレベル= "INFO">
        <アペンダ-REF REF = "STDOUT" />
        <! - <アペンダ-REF REF = "FILE" /> - >
        <アペンダ-REF REF = "LOGSTASH" />
    </ルート>

</設定>

 

次のキーポイントに注意:

        <ソース> user_common_service </ソース>    ####小文字に注意し、インデックス名を作成するために、ESが続くアプリケーション名、設定することができます
        。<sourcePathは>ノード1 </ sourcePathは>
        <種類の>サービス</タイプのを>
        <タグ>生産者< /タグ>
        <ホスト> 127.0.0.1 </ホスト>  ### Redisのアドレス
        <ポート> 6379 </ポート>     ### Redisのポート
        <キー> logstash </キー>
        <additionalField>    ###カスタマイズプロパティ!
            <キー> TEAMNAME </キー>
            <値> mobile_app </ value>の
        </ additionalField>

 

logstah構成:

入力{
 Redisの{
  コーデック=> JSONの
  ホスト=> "192.168.1.98"
  ポート=> 6379
  キー=> "logstash"
  DATA_TYPE => "リスト"
 }
}

フィルタ{

出力{
    elasticsearch {
    インデックス=> "ログ- %{[ソース]} - %{+ YYYY.MM.DD}"
    ホスト=> [ "192.168.1.98:9200"]
    }
    STDOUT {コーデック=> rubydebug}
}

インデックスモードを作成し、「ログ- %{[ソース]} - YYYY.MM.DDの%{+}」ここでは定義するそれらの必要に応じて、ソース及びアプリケーションの日付に応じてインデックスを作成

kibana中のインデックスパターンを作成します。

 

 

破片を変更elasticsearch

curl -XPUT 'http://172.28.161.90:19200/_template/logstash-*' -H 'Content-Type: application/json' -d'{
    "index_patterns" : ["*"],
    "order" : 0,
    "settings" : {
        "number_of_shards" : 5
    }
}'

 

代码请参考:https://github.com/hsn999/SpringCloud_ELK

 

おすすめ

転載: blog.csdn.net/h_sn9999/article/details/102757994