プロジェクトのインストール: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