ELK是由 Elasticsearch、Logstash和Kibana 三部分组件组成。
-
Elasticsearch 是个开源分布式搜索引擎,它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。
-
Logstash 是一个完全开源的工具,它可以对你的日志进行收集、分析,并将其存储供以后使用
-
kibana 是一个开源和免费的工具,它可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助您汇总、分析和搜索重要数据日志。
-
Filebeat 是用于单用途数据托运人的平台。它们以轻量级代理的形式安装,并将来自成百上千台机器的数据发送到 Logstash 或 Elasticsearch。 本人是在ubantu18.0 ,docker已提前装好
安装Elasticsearch:
docker search elasticsearch #拉取不到在后附加详细版本号 例如 :7.6.1 不加默认最新
查看本地镜像 : docker images
已经下载完成 开始安装
创建用户定义网络:docker network create somenetwork
创建配置文件,记住位置,方便修改
makedir /etc/elasticsearch.yml
vim打开配置如下
cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 允许任何端口访问
transport.host: 0.0.0.0
#允许跨域,kibana和es-head需要
http.cors.enabled: true
http.cors.allow-origin: "*"
创建es服务:
docker run -di --name=myelasticsearch --net somenetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -v /etc/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.6.1
ES安装完成 页面访问验证(记得开放端口) crul http://127.0.0.1:9200/ 或则浏览器(自己服务器ip地址)
进入容器
docker exec -it myelasticsearch /bin/bash
安装ik分词器: /usr/share/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip
安装Logstas
docker pull logstash:7.6.1 #拉取镜像
docker run --rm -di logstash:7.6.1 #创建容器
# 创建用于存放配置的目录
mkdir -p /etc/logstash
docker cp a2b57db59271:/usr/share/logstash/config /etc/logstash/config/ # 复制配置文件,冒号前面为容器ID
docker cp a2b57db59271:/usr/share/logstash/pipeline /etc/logstash/pipeline # 复制logstash管道文件
docker stop a2b57db59271 # 停止原有容器,否则无法删除
docker rm a2b57db59271 # 删除原有容器,使用容器ID删除
# 创建新容器并挂载目录
docker run -di --name=mylogstash -v /etc/logstash/config:/usr/share/logstash/config -v /etc/logstash/pipeline:/usr/share/logstash/pipeline logstash:7.6.1
安装Kibana
docker pull kibana:7.6.1 #拉取镜像
docker run -di -p 5601:5601 kibana:7.6.1 #启动容器
mkdir -p /etc/kibana
docker cp 937d44d3f26f:/usr/share/kibana/config /etc/kibana/config #复制管道文件
docker stop 937d44d3f26f #停止
docker rm 937d44d3f26f #删除
docker run -di --name=mykibana --net somenetwork -p 5601:5601 -v /etc/kibana/config:/usr/share/kibana/config kibana:7.6.1 #重新创建容器
重启服务测试: