ELK快速搭建与集成-windows

一、ELK应用场景

在复杂的企业应用服务群中,记录日志方式多种多样(如写到文件、MongoDB、Redis等),并且不易归档以及提供日志监控的机制。无论是开发人员还是运维人员都无法准确的定位服务、服务器上面出现的种种问题,也没有高效搜索日志内容从而快速定位问题的方式。因此需要一个集中式、独立的、搜集管理各个服务和服务器上的日志信息,集中管理,并提供良好的UI界面进行数据展示,处理分析。

ELK为此提供一套开源的解决方案,能高效、简便的满足以上场景。

二、ELK简介

ELK分别是ElasticsearchLogstashKibana三个开源框架缩写。

框架 简介 作用
Elasticsearch 开源分布式搜索引擎,提供存储、分析、搜索功能。特点:分布式、基于reasful风格、支持海量高并发的准实时搜索场景、稳定、可靠、快速、使用方便等。 接收搜集的海量结构化日志数据,并提供给kibana查询分析
Logstash 开源日志搜集、分析、过滤框架,支持多种数据输入输出方式。 用于收集日志,对日志进行过滤形成结构化数据,并转发到elasticsearch中
Kibana 开源日志报表系统,对elasticsearch以及logstash有良好的web页面支持。 对elasticsearch提供的数据进行分析展示

三、快速安装

ELK下载地址:https://www.elastic.co/downloads/

本人下载的版本是:``

我的安装环境:

  • jdk:1.8

  • win10

  • ELK版本:7.3.2

Elasticsearch安装启动

  • 下载Elasticsearch并解压。

  • 修改config/elasticsearch.yml配置文件(也是默认配置,可以不做修改)

network.host=localhost
network.port=9200
  • 双击elasticsearch.bat,启动成功,访问localhost:9200
{
  "name" : "MicroWin10-1838",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "c8K5_DQeQP-8ktjsMUODLQ",
  "version" : {
    "number" : "7.3.2",
    "build_flavor" : "default",
    "build_type" : "zip",
    "build_hash" : "1c1faf1",
    "build_date" : "2019-09-06T14:40:30.409026Z",
    "build_snapshot" : false,
    "lucene_version" : "8.1.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

Logstash安装启动

  • 下载Logstash并解压

  • 在bin目录下添加logstash.conf文件:

input {
    tcp {  
        ##host:port就是上面appender中的 destination,这里其实把logstash作为服务,开启8080端口接收logback发出的消息  
        host => "localhost"  
        port => 8080  
        #模式选择为server  
        mode => "server"  
        tags => ["tags"]  

        ##格式json  
        codec => json_lines         
    }  

} 

output {
    elasticsearch {
        #ES地址
        hosts => "127.0.0.1:9200"
        #指定索引名字
        index => "applog"
    }
    stdout { codec => rubydebug}
}
  • 新建start-logstash.bat启动脚本:
logstash -f logstash.conf
  • 双击start-logstash.bat启动Logstash,访问localhost:9600
{
"host": "MicroWin10-1838",
"version": "7.3.2",
"http_address": "127.0.0.1:9600",
"id": "dd208a87-ae74-4185-84f0-06211451d615",
"name": "MicroWin10-1838",
"ephemeral_id": "a67ad029-7f6c-46ab-95a9-f8fff4b3124e",
"status": "green",
"snapshot": false,
"pipeline": {
"workers": 4,
"batch_size": 125,
"batch_delay": 50
},
"build_date": "2019-09-06T16:42:57+00:00",
"build_sha": "1071165b526bcd43b475caed0b4289e3d32dc52f",
"build_snapshot": false
}

kibana安装启动

  • 下载kibana并解压

  • 汉化

    kibana/config/kibana.yml中的默认配置#i18n.locale: "en"改为i18n.locale: "zh-CN"

#汉化
i18n.locale: "zh-CN"
  • 其他配置直接默认即可,bin/kibana.bat双击运行,启动成功,访问localhost:5601

    也可以在kibana/config/kibana.yml中修改配置

server.port: 5601       ##服务端口
server.host: "0.0.0.0"  ##服务器ip  本机
elasticsearch.url: "http://localhost:9200" ##elasticsearch服务地址 与elasticsearch对应
elk1.png

软件的安装到此就完成了

四、SpringBoot集成ELK

1.pom.xml添加依赖


    net.logstash.logback
    logstash-logback-encoder
    4.9

2.配置logback.xml

这里是直接把日志推送到了Logstash。



    
        localhost:8080
        
    
    
         
            %d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n
        
    

    
        
        
    


3.测试代码

@RunWith(SpringRunner.class)
@SpringBootTest
public class LogTest {
    // 定义一个全局的记录器,通过LoggerFactory获取
    private final static Logger log = LoggerFactory.getLogger(Test.class);

    @Test
    public void test() {
        log.trace("trace 成功了");
        log.debug("debug 成功了");
        log.info("info 成功了");
        log.warn("warn 成功了");
        log.error("error 成功了");
    }
}

4.查看新生成的日志

访问localhost:5601

elk2.png

你可能感兴趣的:(ELK快速搭建与集成-windows)