前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker 搭建 ELK 日志搜索平台

Docker 搭建 ELK 日志搜索平台

作者头像
二哥聊运营工具
发布2021-12-17 09:56:49
3850
发布2021-12-17 09:56:49
举报
文章被收录于专栏:程序员泥瓦匠

ELK 图文简介

最终效果预览

ELK 搭建流程

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

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

代码语言:javascript
复制
<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>

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

代码语言:javascript
复制
<Property name="LOG_PATTERN">%d{yyyy-MM-dd HH:mm:ss.SSS} | %5p | ${sys:PID} | %15.15t | %-40.40c{1.} | %m%n%xwEx</Property>
2、ELK - 部署 ElasticSearch

获取镜像

代码语言:javascript
复制
docker pull elasticsearch

创建数据卷

代码语言:javascript
复制
docker volume create elasticsearch_data

启动

代码语言:javascript
复制
docker run \
-d \
-p 9200:9200 \
-v elasticsearch_data:/usr/share/elasticsearch/data \
--name elasticsearch \
elasticsearch
3、ELK - 部署 Logstash

获取镜像

代码语言:javascript
复制
docker pull logstash

添加配置文件 logstash.conf

代码语言:javascript
复制
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}"
  }
}

启动

代码语言:javascript
复制
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

获取镜像

代码语言:javascript
复制
docker pull kibana

启动

代码语言:javascript
复制
docker run \
-d \
-p 5601:5601 \
--link elasticsearch:elasticsearch \
-e ELASTICSEARCH_URL=http://elasticsearch:9200 \
--name kinaba \
kibana

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

参考文档

  • 《架构探险:轻量级微服务架构》下册
  • logstash 文件输入
  • logstash 字符串处理
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-08-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员泥瓦匠 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • ELK 图文简介
  • 最终效果预览
  • ELK 搭建流程
    • 1、规范化 Spring Boot 应用的日志
      • 2、ELK - 部署 ElasticSearch
        • 3、ELK - 部署 Logstash
          • 4、ELK - 部署 Kibana
          • 参考文档
          相关产品与服务
          Elasticsearch Service
          腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档