windows7 本地搭建ELK 收集项目运行日志

ELK简介

ELK是Elasticsearch+Logstash+Kibana简称

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

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

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

ELK下载安装

可以去官网下载中心下载安装:https://elasticsearch.cn/download/(我这里下载的6.2.2,logstash下载zip版本)
需要提前安装JDK1.8。

ELK解压安装

将三个压缩包fen别解压

启动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"
  }
}

在bin 目录下 打开 cmd  命令窗口 执行

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>

注意:destination 要与前边配置文件中的相同。

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  controller  添加 @Log  zhu注解

启动项目请求该接口。

运行测试用例后回到kibana界面,Management --> Index Patterns,填入Logstash配置中index的值,此处为applog

第二步  此处选择"@timestamp"

回到Discover

这样日志就收集过来了。

猜你喜欢

转载自blog.csdn.net/qq_27828675/article/details/105248305
今日推荐