ELK配置

安装logstash

docker pull logstash

docker run -it --rm logstash -e 'input { stdin { } } output { stdout { } }'

docker run -it --rm -v "$PWD":/logstash.conf -p 4560:4560 logstash -f /logstash.conf

配置测试

input {
      stdin{}
}
output {
    stdout{
        codec => rubydebug
    }
}

配置spring boot的日志到logstash

input {
  stdin{}
  tcp {
      port => 4560
      codec => json_lines
  }
}
output {
    stdout{
        codec => rubydebug
    }
}

tips: 开启1-1024之间的端口,必须使用root用户

spring boot 配置

compile('net.logstash.logback:logstash-logback-encoder:4.7')

logback 配置

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="3 seconds">
       <logger name="org.springframework.web" level="INFO"/>
       <logger name="logging.level.org.hibernate" level="ERROR"/>

       <appender name="stash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
              <destination>127.0.0.1:4560</destination>
              <encoder class="net.logstash.logback.encoder.LogstashEncoder" />
       </appender>

       <root level="DEBUG">
              <appender-ref ref="stash" />
       </root>
</configuration>

在配置过程中,发现logback 1.1.7 存在一个bug,而spring boot 1.4.1恰好使用了这个版本,作者说在1.1.8的时候修复,所以指定logback的版本为之前版本

  buildscript {
        ext {
            springBootVersion = "1.4.1.RELEASE"
        }
        //指定logback 的版本
        ext['logback.version'] = '1.1.6'
      	 //其它
    }

安装 elasticsearch

docker pull elasticsearch

docker run --rm -it -p 9200:9200 -p 9300:9300 -v "$PWD/esdata":/usr/share/elasticsearch/data elasticsearch

测试 http://127.0.0.1:9200

安装 kibana

docker pull kibana
docker run --rm -it --link some-elasticsearch:elasticsearch -p 5601:5601 kibana

测试 http://127.0.0.1:5601

posted @ 2018-08-20 10:13  骨头  阅读(133)  评论(0编辑  收藏  举报