1. 程式人生 > 實用技巧 >Docker+ELK搭建 :一

Docker+ELK搭建 :一

親測可以安裝:ELK:分散式日誌蒐集分析系統

換了個執行環境,重新搭建一套公司本地內部的ELK,之前也搭過(可訪問:https://yanganlin.com/31.html),最近做什麼事情都想用Docker,這次也用Docker,還算順利,沒掉什麼坑裡,上次搭建,也用用的6.2+的版本,這都過了一年,Elk這三個產品,都已經上7了,用docker搭建的還是用6.2.4,穩定不落伍就好

安裝elasticsearch

安裝

docker run \
    -d \
    --name elasticsearch \
    -p 9200:9200 \
    -p 9300:9300 \
    -e "
discovery.type=single-node" \ docker.elastic.co/elasticsearch/elasticsearch:6.2.4

訪問http://localhost:9200

安裝kibana

安裝

docker run \
    -d \
    -u 0 \
    --name kibana \
    -p 5601:5601\
    docker.elastic.co/kibana/kibana:6.2.4

進入到容器內部:docker exec -it kibana /bin/bash
找到kibana的配置檔案:/usr/share/kibana/config/ kibana.yml


重啟容器:doccker restart kibana

修改配置檔案,因為要繞過x-pack的安全檢查

elasticsearch.url: http://localhost:9200
xpack.monitoring.ui.container.elasticsearch.enabled: false

安裝logstash

安裝

docker run \
    -d \
    -u 0 \
    --name logstash \
    -p 5044:5044\
    docker.elastic.co/logstash/logstash:6.2.4

進入容器:docker exec -it logstash /bin/bash

找到檔案:/usr/share/logstash/pipeline

修改配置檔案logstash.conf

input {
    tcp {
        port => 5044
        codec => json_lines
    }
}

output{
    elasticsearch {
        hosts => ["localhost:9200"]
        action => "index"
        index => "%{[appname]}"
    }
  stdout { codec => rubydebug }
}

重啟容器:doccker restart logstash

SpringBoot配置Logstash

logback.xml

<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>localhost:5044</destination>
    <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
        <customFields>{"appname":"eureka-server"}</customFields>
    </encoder>
</appender>

<root level="INFO">
    <appender-ref ref="LOGSTASH"/>
</root>

pom.xml

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>4.9</version>
</dependency>

在Kibana建立索引

參考:https://yanganlin.com/31.html