Springboot簡易ドッキングefk(Elasticsearch,Filebeat,Kibana)-tcp方式
前に書いてあります:efkはElasticsearch、FileBeat、Kibanaの略称です ElasticSearchはLuceneベースの検索サーバです.RESTful Webインタフェースに基づいた分散型マルチユーザ能力の全文検索エンジンを提供します. FileBeatは、ログデータを転送および集中する軽量レベルのツールです.サーバ上のエージェントとしてインストールし、filebeatは指定したログファイルまたは場所を監視し、ログイベントを収集し、ElasticSearchまたはLogstashに転送してインデックスします.logstashは相対的に消費性能に優れているため、Filebeatを用いてデータ収集を行う. Kibanaはオープンソースの分析と可視化プラットフォームであり、Elasticsearchと一緒に動作するように設計されています.Kibanaで検索し、表示し、Elasticsearchインデックスに格納されたデータと対話する このテスト環境:centos 7、Elasticsearch 6.6.1、FileBeat 6.6.1、Kibana 6.6.1、テストマシンip:47.999.20.71、elkは大きなメモリを消費する必要があるので、テストアーキテクチャ図を提供するために2 gのメモリを確保してください.
一、efk環境構築(既存環境はスキップ可能)
1.elastcsearch環境
前提設定:JVMスレッド数制限数を上げるcentosウィンドウで、構成sysctl.confを変更する
最後の行に次の内容を追加します.
ファイルの保存を終了したら、設定を有効にします.
注意:コンテナの起動時にbootstrap checks failed max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
以下の操作は、対応するファイアウォールポートを自分で開くか、セキュリティグループのルールを構成してください.ここでは説明しません.
1.1 centosで対応するマッピングディレクトリ/home/software/es/dataを作成し、/home/software/elasticsearch/config/下es-single.ymlを作成します.内容は次のとおりです.
注意:他のアドレスへのアクセス、ドメイン間の問題の解決
1.2 centosで次のコマンドを実行してelasticsearch単例のインスタンスを構築する
注意:この文書は単一のモデルのみを提供し、読者は「docker簡易構築ElasticSearchクラスタ」を参照することができます.https://blog.csdn.net/belonghuang157405/article/details/83301937 注意:ELKが6.Xバージョンを選択した場合、では、読者はdataディレクトリを777権限=>chmod 777 dataを開く必要があります.java.nio.file.AccessDeniedException:/usr/share/elasticsearch/data/nodesエラーの発生を防止します.
2.FileBeat環境
2.1 centosの/home/software/filebeat/の下にfilebeat.ymlを作成します.ファイルの内容は次のとおりです.
注意:ここにはfilebeat入力方式が設定されています.ここではあまり説明しません.読者は必要に応じて構成をカスタマイズできます.具体的な構成は公式サイトを参照してください.https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html
2.2 centosで次のコマンドを実行してlogstash単例環境を構築する
3.kibana環境
3.1 centosで次のコマンドを実行してkibana環境を構築する
注意:ELASTICSCEARCH_URL elasticsearch環境のアドレス
二、springboot集積logstash
demoプロジェクトアドレス:https://github.com/Blankwhiter/elk-springbootを選択します.
1.springbootはlogstash-logback-encoder依存を加え、pom.xmlは以下の通りである.
2.アプリケーション.propertiesの作成
3.resourceディレクトリの下にlogback-spring.xmlを新規作成します.内容は次のとおりです.
4.テストコード
三、統合に成功したかどうかをテストする
1.http:/47.999.20.71:8088/app/kibanaへのアクセス
2.管理メニューをクリック
3.Kibanaの下にあるIndex Patternsを選択し、filebeat*構成のindexを記入し、ファジイマッチングを行えばよい
4.時間フィルタを選択して毎日のフィルタ選択を行い、読者は自分のニーズに応じて
5.Create Index patternボタンをクリックしてインデックスを作成
6.Discoverメニューをクリックして採集リストを見る
このメニューをクリックするとデータ結果が表示されます
一、efk環境構築(既存環境はスキップ可能)
1.elastcsearch環境
前提設定:JVMスレッド数制限数を上げるcentosウィンドウで、構成sysctl.confを変更する
vim /etc/sysctl.conf
最後の行に次の内容を追加します.
vm.max_map_count=262144
ファイルの保存を終了したら、設定を有効にします.
sysctl -p
注意:コンテナの起動時にbootstrap checks failed max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
以下の操作は、対応するファイアウォールポートを自分で開くか、セキュリティグループのルールを構成してください.ここでは説明しません.
1.1 centosで対応するマッピングディレクトリ/home/software/es/dataを作成し、/home/software/elasticsearch/config/下es-single.ymlを作成します.内容は次のとおりです.
network.bind_host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
注意:他のアドレスへのアクセス、ドメイン間の問題の解決
1.2 centosで次のコマンドを実行してelasticsearch単例のインスタンスを構築する
chmod 777 /home/software/es/data
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9210:9200 -p 9310:9300 -e "discovery.type=single-node" -v /home/software/es/data:/usr/share/elasticsearch/data -v /home/software/elasticsearch/config/es-single.yml:/usr/share/elasticsearch/config/elasticsearch.yml --name es-single elasticsearch:6.6.1
注意:この文書は単一のモデルのみを提供し、読者は「docker簡易構築ElasticSearchクラスタ」を参照することができます.https://blog.csdn.net/belonghuang157405/article/details/83301937 注意:ELKが6.Xバージョンを選択した場合、では、読者はdataディレクトリを777権限=>chmod 777 dataを開く必要があります.java.nio.file.AccessDeniedException:/usr/share/elasticsearch/data/nodesエラーの発生を防止します.
2.FileBeat環境
2.1 centosの/home/software/filebeat/の下にfilebeat.ymlを作成します.ファイルの内容は次のとおりです.
filebeat.inputs:
- type: tcp
max_message_size: 10MiB
host: "0.0.0.0:9000"
注意:ここにはfilebeat入力方式が設定されています.ここではあまり説明しません.読者は必要に応じて構成をカスタマイズできます.具体的な構成は公式サイトを参照してください.https://www.elastic.co/guide/en/beats/filebeat/current/configuration-filebeat-options.html
2.2 centosで次のコマンドを実行してlogstash単例環境を構築する
docker run -d -p 9000:9000 --name filebeat-single -v /home/software/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml elastic/filebeat:6.6.1 -e -strict.perms=false -E output.elasticsearch.hosts=["47.99.200.71:9210"]
3.kibana環境
3.1 centosで次のコマンドを実行してkibana環境を構築する
docker run -d --name kibana-single -p 5610:5601 -e ELASTICSEARCH_URL=http://47.99.200.71:9210 -d kibana:6.6.1
注意:ELASTICSCEARCH_URL elasticsearch環境のアドレス
二、springboot集積logstash
demoプロジェクトアドレス:https://github.com/Blankwhiter/elk-springbootを選択します.
1.springbootはlogstash-logback-encoder依存を加え、pom.xmlは以下の通りである.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0modelVersion>
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.1.3.RELEASEversion>
<relativePath/>
parent>
<groupId>com.examplegroupId>
<artifactId>elk-testartifactId>
<version>0.0.1-SNAPSHOTversion>
<name>elk-testname>
<description>Demo project for Spring Bootdescription>
<properties>
<java.version>1.8java.version>
properties>
<dependencies>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starterartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
<scope>testscope>
dependency>
<dependency>
<groupId>net.logstash.logbackgroupId>
<artifactId>logstash-logback-encoderartifactId>
<version>5.3version>
dependency>
dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-maven-pluginartifactId>
plugin>
plugins>
build>
project>
2.アプリケーション.propertiesの作成
logging.config=classpath:logback-spring.xml
LOGSTASH_HOST=47.99.200.71
LOGSTASH_PORT=9000
3.resourceディレクトリの下にlogback-spring.xmlを新規作成します.内容は次のとおりです.
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<property resource="application.properties">property>
<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
<destination>${LOGSTASH_HOST}:${LOGSTASH_PORT}destination>
<encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder"/>
appender>
<root level="INFO">
<appender-ref ref="LOGSTASH"/>
<appender-ref ref="CONSOLE"/>
root>
configuration>
4.テストコード
import org.junit.Test;
import org.junit.runner.RunWith;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@SpringBootTest
public class ElkTestApplicationTests {
@Value("${LOGSTASH_HOST}")
private String ip;
private final static Logger log = LoggerFactory.getLogger(ElkTestApplication.class);
@Test
public void test() {
log.info("ip:{} filebeat info !!!",ip);
log.warn("ip:{} filebeat warn !!!",ip);
log.error("ip:{} filebeat error !!",ip);
}
}
三、統合に成功したかどうかをテストする
1.http:/47.999.20.71:8088/app/kibanaへのアクセス
2.管理メニューをクリック
3.Kibanaの下にあるIndex Patternsを選択し、filebeat*構成のindexを記入し、ファジイマッチングを行えばよい
4.時間フィルタを選択して毎日のフィルタ選択を行い、読者は自分のニーズに応じて
5.Create Index patternボタンをクリックしてインデックスを作成
6.Discoverメニューをクリックして採集リストを見る
このメニューをクリックするとデータ結果が表示されます