巨坑提醒:ES和kibana的版本尽可能的保证一致,否则要去修改很多配置信息,而且不一定能安装成功,现象:ES安装成功了但是kibana无法链接到ES,报红(red)。
ES访问 :http://localhost:9200/
Es-head访问: http://localhost:9100/
kibana访问:http://localhost:5601
可以事先搜索一下:
docker search elasticsearch
docker pull docker.elastic.co/elasticsearch/elasticsearch:5.6.16
注意可以是其他版本,本次安装拉取"5.6.16"版本,
下载需要一段时间,完毕后可以查看镜像,注意:如果下载不成功,可以查找其他版本。
docker images
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:5.6.16
ElasticSearch的默认端口是9200,我们把宿主环境9200端口映射到
Docker容器中的9200端口,就可以访问到
Docker容器中的
ElasticSearch服务了,同时我们把这个容器命名为
es。
docker exec -it es /bin/bash
其中"es"是容器名称
# 显示文件
ls
结果如下:
LICENSE.txt README.textile config lib modules
NOTICE.txt bin data logs plugins
# 进入配置文件夹
cd config
# 显示文件
ls
结果如下:
elasticsearch.keystore ingest-geoip log4j2.properties roles.yml users_roles
elasticsearch.yml jvm.options role_mapping.yml users
# 修改配置文件
vi elasticsearch.yml
#==========================================重点在这==================================
# 加入跨域配置(需要加到最后)
http.cors.enabled: true
http.cors.allow-origin: "*"
docker restart es
http://localhost:9200/
显示效果如下就成功了
{
"name" : "a12CcOw",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "Zi4eufCQQ6y88rO0lt9YVw",
"version" : {
"number" : "6.3.2",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "053779d",
"build_date" : "2018-07-20T05:20:23.451332Z",
"build_snapshot" : false,
"lucene_version" : "7.3.1",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
为什么要安装ElasticSearch-Head
呢,原因是需要有一个管理界面进行查看ElasticSearch
相关信息
docker pull mobz/elasticsearch-head:5
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
http://localhost:9100/
见如下效果就成功了
docker pull docker.elastic.co/logstash/logstash:5.6.16
docker run -d --name es_logstash -p 5044:5044 -e "XPACK.MONITORING.ELASTICSEARCH.URL=http://10.10.37.82:9200" docker.elastic.co/logstash/logstash:5.6.16
docker run --name es_logstash logstash:5.6.16
容器名称"es_logstash“ ,版本”5.6.16“
进入容器:
docker exec -it es_logstash /bin/bash
进入目录cd config ,打开并修改配置文件
vi logstash.yml
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.url: http://10.10.37.82:9200
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: changme
注意,一定是本机器IP地址。
再进入pipeline文件夹,对logstash.conf文件进行修改。
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => ["10.10.37.82:9200"]
user => elastic
password => changeme
index => "log-%{+YYYY.MM.dd}" }
}
docker restart es_logstash
docker pull kibana:5.6.16
注意版本一定要跟ES相当。
docker run --name es_kibana -p 5601:5601 -d -e ELASTICSEARCH_URL=http://10.10.37.82:9200 kibana:5.6.16
注意:我下载的版本是5.6.16
docker exec -it es_logstash /bin/bash
cd etc/kibana
vim kibana.yml
修改kibana.yml
elasticsearch.username: "elastic"
elasticsearch.password: "changeme"
访问地址:http://127.0.0.1:5601。
docker pull filebeat:5.6.16
filebeat:
prospectors:
- type: log
enable: true
paths:
- /var/log/testlog/*.log
output:
logstash:
hosts: ["10.10.37.82:5044"]
docker run -d --name=filebeat -e /var/log/testlog/:/var/log/testlog/ -v /usr/share/filebeat/filebeat.yml:/usr/share/filebeat/filebeat.yml docker.elastic.co/beats/filebeat:5.6.16
可以看到日志采集成功