ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

springboot集成ELK

2021-07-06 17:04:38  阅读:224  来源: 互联网

标签:集成 ELK springboot 192.168 37.189 version elasticsearch logback logstash


ELK简介
ELK是Elasticsearch+Logstash+Kibana简称

Elasticsearch 是一个分布式的搜索和分析引擎,可以用于全文检索、结构化检索和分析,并能将这三者结合起来。Elasticsearch 基于 Lucene 开发,现在是使用最广的开源搜索引擎之一。

Logstash 简单来说就是一根具备实时数据传输能力的管道,负责将数据信息从管道的输入端传输到管道的输出端,与此同时这根管道还可以让你根据自己的需求在中间加上滤网,Logstash提供了很多功能强大的滤网以满足你的各种应用场景。

Kibana 是一个开源的分析与可视化平台,设计出来用于和Elasticsearch一起使用的。你可以用kibana搜索、查看、交互存放在Elasticsearch索引里的数据,使用各种不同的图标、表格、地图等,kibana能够很轻易的展示高级数据分析与可视化。

ELK下载安装
可以去官网分别下载安装:Past Releases of Elastic Stack Software | Elastic(我这里下载的elasticsearch-6.8.14 ])
需要提前安装JDK1.8。

启动顺序为:Logstash >= Elasticsearch > Kibana

1. Elasticsearch

下载地址: Past Releases of Elastic Stack Software | Elastic
# 解压
tar -zxvf elasticsearch-6.8.14.tar.gz
# 切换目录
cd elasticsearch-6.8.14/
修改配置文件 config/elasticsearch.yml

network.host: 192.168.37.189
http.port: 9200
启动es

启动的时候会报root权限不够、内存大小不够。报错关键字搜百度很多解决文章

1、root不能启动,就新建其他账号  

2、elasticsearch报错Exception BindTransportException[Failed to bind to [9300-9400]]

 解决办法:进入 config目录下 修改 

 vim elasticsearch.yml

 

network.host设置为 0.0.0.0 即可外网访问。

3、ElasticSearch启动报错,bootstrap checks failed

切换到root用户

编辑 /etc/security/limits.conf,追加以下内容;
* soft nofile 65536
* hard nofile 65536
此文件修改后需要重新登录用户,才会生效
[2]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

编辑 /etc/sysctl.conf,追加以下内容:
vm.max_map_count=655360
保存后,执行:
sysctl -p

重新启动,成功。也可以编写脚本,把命令放进去
bin/elasticsearch -d

4、如果新用户访问权限不足,记得使用root修改es文件的访问权限

 ./bin/elasticsearch -d 加-d后台运行
./bin/elasticsearch
启动成功,访问192.168.37.189:9200

{
  "name" : "cTP-_7z",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "6tnImaw3RyKHlErGQrtuvw",
  "version" : {
    "number" : "6.3.1",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "eb782d0",
    "build_date" : "2018-06-29T21:59:26.107521Z",
    "build_snapshot" : false,
    "lucene_version" : "7.3.1",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
2. Logstash

下载地址:Past Releases of Elastic Stack Software | Elastic

# 解压
tar -zxvf logstash-6.3.1.tar.gz
# 切换目录
cd logstash-6.3.1/
修改配置文件 config/logstash.yml

http.host: "192.168.37.189"
新建配置文件 vim logstash.conf

input {
  tcp {
    port => 9012
    #格式json
    codec => json_lines
  }
}
filter {
  #过滤器,根据需要填写
}
output {
  stdout {
    codec => rubydebug
  }
  elasticsearch {
    action => "index"
    #这里是es的地址,多个es要写成数组的形式
    hosts  => "192.168.1.100:9010"
    #用于kibana过滤,可以填项目名称
    index  => "applog"
  }
}

启动

./bin/logstash -f logstash.conf

后台启动 也可以编写脚本,把下面的命令放进去 

nohup ./bin/logstash -f logstash.conf &


访问http://192.168.37.189:9600,成功的话会显示一个JSON串

{
host: "gitlab.example.com",
version: "6.3.1",
http_address: "192.168.37.189:9600",
id: "004101d4-96cd-49c9-81c5-931c7327016e",
name: "gitlab.example.com",
build_date: "2018-06-29T22:43:59Z",
build_sha: "b79493047db01afca1e11c856fe8538d7ecb5787",
build_snapshot: false
}
3. Kibana

下载地址:Past Releases of Elastic Stack Software | Elastic
# 解压
tar -zxvf kibana-6.3.1-linux-x86_64.tar.gz
# 切换目录
cd kibana-6.3.1-linux-x86_64/
修改配置文件 config/logstash.yml

http.host: "192.168.37.189"
#修改为es的地址
elasticsearch.url: http://192.168.37.189:9200
启动

./bin/kibana

后台启动,可以编写成脚本

nohup ./bin/kibana &
启动成功访问页面:http://192.168.37.189:5601

三、SpringBoot相关
1. pom.xml

<properties>
  <ch.qos.logback.version>1.2.3</ch.qos.logback.version>
</properties>
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-logging</artifactId>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
        <version>${ch.qos.logback.version}</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${ch.qos.logback.version}</version>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-access</artifactId>
        <version>${ch.qos.logback.version}</version>
    </dependency>
    <dependency>
        <groupId>net.logstash.logback</groupId>
        <artifactId>logstash-logback-encoder</artifactId>
        <version>5.1</version>
    </dependency>
</dependencies>


2. logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="false" scan="true" scanPeriod="1 seconds">
    <include resource="org/springframework/boot/logging/logback/base.xml" />
    <contextName>logback</contextName>
 
    <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>192.168.37.189:4560</destination>
        <!-- encoder必须配置,有多种可选 -->
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
    </appender>
    
    <root level="info">
        <appender-ref ref="stash" />
    </root>
</configuration>


3. Test.java
@RequestMapping("/test1")
    public String test(){
        logger.info("你好啊e");
        logger.warn("This is a warn message!");
        logger.error("This is error message!");
        return "server被调用了!:" +port;
    }
 
四、测试
运行测试用例后回到kibana界面,Management --> Index Patterns,填入Logstash配置中index的值,此处为applog

第二步  此处选择"@timestamp"

回到Discover,大功告成!

查询过滤 level:"ERROR"  and  module_name:"app-server"

本文档大部分是参考的下面的地址。有一部分是我做过了修改,本文只做参考,

参考链接:https://blog.csdn.net/papima/article/details/90670110

标签:集成,ELK,springboot,192.168,37.189,version,elasticsearch,logback,logstash
来源: https://blog.csdn.net/lu1171901273/article/details/118416091

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有