【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」定期分享有趣有料的精品原创文章!
非常感谢各位人才能看到这里,原创不易,文章如果有帮助可以关注、点赞、分享或评论,这都是对我的莫大支持!