1.下载ELK
用latest是下载不了ELK 的
docker pull elasticsearch:7.7.0
docker pull kibana:7.7.0
docker pull logstash:7.7.0
docker pull filebeat:7.7.0
2.安装插件 elasticsearch-head:
(注意:5.X以上的版本,需要单独启动 elasticsearch-head 服务)
拉取镜像并启动elasticsearch-head:
docker pull mobz/elasticsearch-head:5
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/logstash 7.7.0 30dcca1db5e9 7 weeks ago 740 MB
docker.io/kibana 7.7.0 eadc7b3d59dd 7 weeks ago 1.15 GB
docker.io/elasticsearch 7.70 7ec4f35ab452 7 weeks ago 757 MB
docker.io/prima/filebeat latest 070a535b6ea6 175 MB
docker.io/mobz/elasticsearch-head 5 b19a5c98e43b 3 years ago 824 MB
一、安装elasticsearch
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.7.0
测试:
curl http://localhost:9200
{
"name" : "130ec4d8384a",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "bglBAXgoQMyoq4Qg56Mzjw",
"version" : {
"number" : "7.7.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "81a1e9eda8e6183f5237786246f6dced26a10eaf",
"build_date" : "2020-05-12T02:01:37.602180Z",
"build_snapshot" : false,
"lucene_version" : "8.5.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
进入容器设置
docker exec -it elasticsearch /bin/bash
vi /usr/share/elasticsearch/config/elasticsearch.yml
# 修改如下 : 下面的配置是关闭跨域验证
http.cors.enabled: true
http.cors.allow-origin: "*"
# 退出容器
exit
重启
docker restart elasticsearch
还有一种 外挂文件的方法,理论相同,不用进入容器:
docker run -di -p 9200:9200 -p 9300:9300 --name=elasticsearch -v /home/elk/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch:7.7.0
1.1 es-head搭建
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
打开浏览器访问:http://192.168.X.X:9100(X.X 为自己的IP)
在第一行中Elasticsearch后面,
原值为http://localhost:9200改为 http://192.168.X.X:9200
就可以看到信息
二、安装kibana
1 成功启动
docker run -p 5601:5601 --name kibana --link elasticsearch:elasticsearch -e "elasticsearch.hosts=http://192.168.X.X:9200" -d docker.io/kibana:7.7.0
还有一种 外挂文件的方法,理论相同,不用进入容器:
-v /home/elk/kibana.yml:/usr/share/kibana/config/kibana.yml
进入到容器内部:
docker exec -it kibana /bin/bash
#找到kibana的配置文件:
vi /usr/share/kibana/config/kibana.yml
# 进行修改 ,注意格式 [ " " ]
# 修改配置文件,因为要绕过x-pack的安全检查
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://192.168.X.X:9200" ]
monitoring.ui.container.elasticsearch.enabled: false
# 退出容器
exit
#重启容器:
docker restart kibana
启动成功后访问5601端口即可进入kibana管理界面
http://192.168.X.X:5601/app/kibana
三、安装logstash
docker run -d -u 0 --name logstash -p 5044:5044 docker.io/logstash:7.7.0
同理可以先创建配置文件。
-v /home/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
docker ps 看一下内容吧
docker ps --format "table {{.ID}}\t{{.Names}}\t{{.Ports}}"
CONTAINER ID NAMES PORTS
d4d586cbe1d2 kibana 0.0.0.0:5601->5601/tcp
8b537d35b3fa logstash 0.0.0.0:5044->5044/tcp, 9600/tcp
130ec4d8384a elasticsearch 0.0.0.0:9200->9200/tcp, 0.0.0.0:9300->9300/tcp
进入容器:
docker exec -it logstash /bin/bash
#找到文件:
vi /usr/share/logstash/pipeline/logstash.conf
#修改配置文件
input {
tcp {
port => 5044
codec => "plain"
}
}
filter{
}
output {
# 这个是logstash的控制台打印(进行安装调试的开启,稍后成功后去掉这个配置即可)
stdout {
codec => rubydebug
}
# elasticsearch配置
elasticsearch {
hosts => ["elasticsearch的IP:9200"]
}
}
#重启容器:
doccker restart logstash