【ELK】使用Docker搭建ELK

# 文章目录
# 概念:
那么,ELK 到底是什么呢? “ELK” 是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据,转换数据,然后将数据发送到诸如 Elasticsearch 等 “存储库” 中。Kibana 则可以让用户在 Elasticsearch 中使用图形和图表对数据进行可视化
- 工作流程

- 在后续 elk 引入了 beats (数据采集器) 后被称为 Elastic Stack 或者 ELK
# 安装 elk (这里通过 docker 进行安装)
# 安装 es
- 在 dockerhub 上搜索 es

- 找到需要的 es 版本

- 拉取 es 镜像
docker pull elasticsearch:tag


- 在 dockerhub 官网上可以看到 es 的启动命令

- 先创建自定义 docker 网络
docker network create elastic,默认是桥接模式

- 查看创建的网络

- 启动 es 镜像,这里我以单机的形式启动
docker run -d --name elasticsearch --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag

- 启动之后访问
localhost:9200,有数据返回说明启动成功,如下图

- 修改 es 配置,进入容器
docker exec -it a804 /bin/sh

- 在
config目录下的elasticsearch.yml文件添加
1 | http.cors.enabled: true |
- 修改完配置之后,退出容器并重启

# 安装 kikana
- 从 dockerhub 拉取与 es 对应版本的 kibana
docker pull kibana:tag

- 启动 kibana
docker run --name kib-7.6 --net elastic -d -p 5601:5601 kibana:tag - 启动之后访问

- 出现上图是由于 kibanakibana.yml,默认的地址是 http://elasticsearch:9200, 需要修改为 es 服务 ip
- 进入到 es 容器里面
docker -it 容器编号 /bin/sh

- 查看 es 的容器详情
docker inspect a80402dbe9f5 - 找到网络详情,找到 es 服务的 ip 地址

- 也可以通过
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' a804获取 ip

- 进入到 kibana 容器,切换到
/usr/share/kibana/config目录

- 修改 kibana.yml 文件


- 修改完 kibana.yml 之后重启 kibana 容器
- 访问 kibana
localhost:5601


- 到这里 kibana 就安装成功了
# 安装 logstash
- 从 dockerhub 拉取 logstash
docker pull logstash:7.6.2

# 关于我
Brath 是一个热爱技术的 Java 程序猿,公众号「InterviewCoder」定期分享有趣有料的精品原创文章!

非常感谢各位人才能看到这里,原创不易,文章如果有帮助可以关注、点赞、分享或评论,这都是对我的莫大支持!

