概念:
那么,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
文件添加
http.cors.enabled: true
http.cors.allow-origin: "*"
- 修改完配置之后,退出容器并重启
安装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