springboot + logback + filebeat + elk 实现分布式日志中心

前言:本文主要介绍docker搭建elk分布式日志平台,利用filebeat监听logback日志文件,传输到elk中,最终在kibana渲染展示。

主要思路:filebeat监听日志文件的变化,传输到logstash,logstash通过分析提取,将日志信息推送到elasticsearch指定索引中,最终kibana从elasticsearch索引中查询并展示日志信息。

一、docker搭建elk日志平台(v7.6.1)

1.1、准备镜像

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.6.1

docker pull docker.elastic.co/kibana/kibana:7.6.1

docker pull docker.elastic.co/logstash/logstash:7.6.1

1.2、创建elk网络

创建es-network网络主要用于在容器中可以直接通过容器名互相访问

docker network create es-network

1.3、创建宿主机目录,用于与容器目录映射

根目录:/Users/chenjiaming/data/docker,根据自身情况动态修改即可

授权:chmod 777 /Users/chenjiaming/data/docker

.
├── elasticsearch
│   ├── config
│   └── data
├── kibana
│   └── config
└── logstash
    └── config

1.4、部署elasticsearch

在elasticsearch/config目录下创建elasticsearch.yml文件,内容如下:

# 配置es的集群名称
cluster.name: "docker-cluster"
# 0.0.0.0为不限制,生产环境建议设置为固定IP
network.host: 0.0.0.0
# 是否开启x-pack安全认证,访问时需要密码
xpack.security.enabled: false
# 关闭跨域验证
http.cors.enabled: true
http.cors.allow-origin: "*"

启动容器: 

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "ES_JAVA_OPTS=-Xms2048m -Xmx2048m" -e "discovery.type=single-node" -e "TZ=Asia/Shanghai" \
--net es-network \
-v /Users/chenjiaming/data/docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /Users/chenjiaming/data/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config

你可能感兴趣的:(java,spring,linux,运维)