ELKの紹介
ELKはElasticsearch + Logstash + Kibanaの略語です。
Elasticsearchは、全文検索、構造化検索、および分析に使用できる分散型の検索および分析エンジンであり、3つを組み合わせることができます。ElasticsearchはLuceneに基づいており、現在最も広く使用されているオープンソース検索エンジンの1つです。
Logstashは、リアルタイムのデータ送信機能を備えた単なるパイプラインです。パイプラインの入力端から出力端にデータ情報を送信する役割を果たします。同時に、このパイプラインでは、フィルタリングを追加することもできます。 Logstashは、さまざまなアプリケーションシナリオに対応するために、多くの強力なフィルターを提供します。
Kibanaは、Elasticsearchで使用するために設計されたオープンソースの分析および視覚化プラットフォームです。kibanaを使用すると、Elasticsearchインデックスに保存されているデータを検索、表示、操作できます。さまざまなアイコン、テーブル、マップなどを使用して、kibanaで高度なデータ分析と視覚化を簡単に表示できます。
ELKのダウンロードとインストール
公式ウェブサイトのダウンロードセンターにアクセスして、ダウンロードしてインストールできます。https://elasticsearch.cn/download/(ここで6.2.2をダウンロードし、logstashでzipバージョンをダウンロードします)
JDK1.8を事前にインストールする必要があります。
ELK解凍インストール
3つの圧縮パッケージを解凍します
開始es..elasticsearch-6.2.2 \ bin \ディレクトリでelasticsearch.batを開始すると、ブラウザは次のように要求します:http:// localhost:9200 /
Kibanaの起動構成を変更せずに、.. kibana-6.2.2-windows-x86_64 \ bin \ディレクトリでkibana.batを起動します。ブラウザはhttp:// localhost:5601 /にアクセスします
logstashを解凍し、configディレクトリにlogstash.confファイルを作成します
input {
tcp {
#模式选择为server
mode => "server"
#ip和端口根据自己情况填写,端口默认4560,对应下文logback.xml里appender中的destination
host => "localhost"
port => 4560
#格式json
codec => json_lines
}
}
filter {
#过滤器,根据需要填写
}
output {
elasticsearch {
action => "index"
#这里是es的地址,多个es要写成数组的形式
hosts => "localhost:9200"
#用于kibana过滤,可以填项目名称
index => "applog"
}
}
cmdコマンドウィンドウを開いて、binディレクトリで実行します
logstash.bat -f ../config/logstash.conf
エラーを報告する
解決策:logstash-6.2.2 \ binディレクトリのlogstash.bat行52を開き、%CLASSPATH%に二重引用符を追加します。
再起動
エラーが報告されない場合、起動は成功しています。このようにして、ELKログ収集システムがセットアップされます。
springbootプロジェクトをビルドし、logback.xmlを変更して追加します
<appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>localhost:4560</destination>
<!-- encoder必须配置,有多种可选 -->
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>
<root level="TRACE">
<appender-ref ref="stash" />
</root>
注:宛先は、前の構成ファイルと同じである必要があります。
pom.xmlに依存関係を追加します
<dependency>
<groupId>net.logstash.logback</groupId>
<artifactId>logstash-logback-encoder</artifactId>
<version>5.1</version>
</dependency>
@ApiOperation(value = "查看举报列表", notes = "根据用户code 获取举报列表 reportStatus 不需要传值")
@PostMapping(value = "/list")
public Wrapper reportList(@RequestBody ReportInfoBaseListDto listDto) {
log.info("查看举报列表,参数:==>>" + listDto);
try {
List<Map<String, Object>> list = reportInfoService.queryListByUserInstitutionCode(listDto);
PageInfo pageInfo = new PageInfo(list);
return WrapMapper.wrap(Wrapper.SUCCESS_CODE, Wrapper.SUCCESS_MESSAGE, pageInfo);
} catch (Exception e) {
e.printStackTrace();
return WrapMapper.wrap(Wrapper.ERROR_CODE, e.getMessage());
}
}
ここでは、lombokコントローラーを使用して@Logzhuアノテーションを追加します
プロジェクトを開始して、このインターフェースを要求します。
テストケースを実行した後、kibanaインターフェースの[管理]-> [インデックスパターン]に戻り、Logstash構成にインデックス値を入力します。これがapplogです。
ステップ2ここで、「@ timestamp」を選択します
発見に戻る
このようにして、ログが収集されます。