Osheep

时光不回头,当下最重要。

Docker 搭建实时日志平台 ELK

《Docker 搭建实时日志平台 ELK》

万圣节

ELK 图文简介

《Docker 搭建实时日志平台 ELK》

图文简介

最终效果预览

《Docker 搭建实时日志平台 ELK》

kibana

ELK 搭建流程

1、规范化 Spring Boot 应用的日志

请参考 《Spring Boot Log4j2 日志性能之巅》,此处为了收集、处理日志信息,所以修改下日志的 Pattern,将

<Property name="LOG_PATTERN">%clr{%d{yyyy-MM-dd HH:mm:ss.SSS}}{faint} %clr{%5p} %clr{${sys:PID}}{magenta} %clr{---}{faint} %clr{[%15.15t]}{faint} %clr{%-40.40c{1.}}{cyan} %clr{:}{faint} %m%n%xwEx</Property>

改为(去除颜色,用 “ | ” 分隔)

<Property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} | %5p | ${sys:PID} | %15.15t | %-40.40c{1.} | %m%n%xwEx</Property>
《Docker 搭建实时日志平台 ELK》

日志信息
2、ELK – 部署 ElasticSearch

获取镜像

docker pull elasticsearch

创建数据卷

docker volume create elasticsearch_data

启动

docker run \
-d \
-p 9200:9200 \
-v elasticsearch_data:/usr/share/elasticsearch/data \
--name elasticsearch \
elasticsearch
3、ELK – 部署 Logstash

获取镜像

docker pull logstash

添加配置文件 logstash.conf

input {
  file {
    id => "spring-boot-info"
    path => [ "/Users/admin/code/log/*-info.log" ]
    type => "info"
    start_position => "beginning"
  }
  file {
    id => "spring-boot-error"
    path => [ "/Users/admin/code/log/*-error.log" ]
    type => "error"
    start_position => "beginning"
  }
}

filter {
  mutate {
    split => ["message", " | "]
    add_field => {
      "curr_time" => "%{[message][0]}"
    }
    add_field => {
      "level" => "%{[message][1]}"
    }
    add_field => {
      "pid" => "%{[message][2]}"
    }
    add_field => {
      "thread" => "%{[message][3]}"
    }
    add_field => {
      "class" => "%{[message][4]}"
    }
    add_field => {
      "content" => "%{[message]5[]}"
    }
  }
}

output{
  elasticsearch {
    hosts => [ "elasticsearch:9200" ]
    index => "logstash-%{type}-%{+YYYY.MM.dd}"
    document_type => "%{type}"
  }
}

启动

docker run \
-d \
-p 4560:4560 \
-v /Users/admin/docker/logstash/logstash.conf:/etc/logstash.conf \
-v /Users/admin/code/log:/Users/admin/code/log \
--link elasticsearch:elasticsearch \
--name logstash \
logstash \
logstash -f /etc/logstash.conf

-v /Users/admin/code/log:/Users/admin/code/log
日志目录一定要挂载, /Users/admin/code/log 为日志文件的目录

4、ELK – 部署 Kibana

获取镜像

docker pull elasticsearch

启动

docker run \
-d \
-p 5601:5601 \
--link elasticsearch:elasticsearch \
-e ELASTICSEARCH_URL=http://elasticsearch:9200 \
--name kinaba \
kibana

至此,基本的 ELK 平台搭建完毕, 访问 http://localhost:5601/ 查看吧。

参考文档

点赞