一、Docker 安装 Elasticsearch
官网镜像地址:https://hub.docker.com/_/elasticsearch
下载镜像 查看镜像
docker pull elasticsearch:7.2.0
docker images
创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana))
docker network create mynet
运行es 限定内存大小
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms100m -Xmx200m" --net mynet elasticsearch:7.2.0
检测 elasticsearch 是否启动成功
curl 127.0.0.1:9200
查看容器状态
docker ps
下载kibana镜像
docker pull kibana:7.2.0
运行 如果地址没起作用,可以 在容器里面的usr//kibana/config 中修改配置文件
docker run --name my_kibana -p 5601:5601 -v -d -e ELASTICSEARCH_URL=http://192.168.12.79:9200 --net mynet kibana:7.2.0
查看日志
docker logs dockerid
验证
kibana设置中文
操作界面语言设置为中文
i18n.locale: "zh-CN"
下载ElasticSearch-Head
去hub官网 查看下版本,发现只有版本的5,那我们就下载head:5
https://hub.docker.com/r/mobz/elasticsearch-head/tags
docker pull mobz/elasticsearch-head:5
创建容器 或者run
docker create --name elasticsearch-head -p 9100:9100 --net mynet mobz/elasticsearch-head:5
docker start elasticsearch-head
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
注意:
打开IP:9100 连接es 发现存在跨域的问题
由于要进行配置,因此需要进入容器当中修改相应的配置信息。(容器name = elasticsearch)
进入容器:(docker attach 容器ID) 或者 (docker exec -it 容器ID /bin/bash)
docker exec -it elasticsearch /bin/bash
修改elasticsearch.yml文件
vi config/elasticsearch.yml
head插件设置
http.cors.enabled: true
http.cors.allow-origin: "*"
设置可以访问的ip 这里全部设置通过
:wq保存退出
退出容器:
exit
重启容器
docker restart elasticsearch
发现容易启动不了,需要手动解决
这是我的处理步骤 直接简单粗暴 docker logs elasticsearch
第一
docker rm elasticsearch
docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms100m -Xmx200m" --net mynet elasticsearch:7.2.0
第二部 单纯参考上面 修改配置文件 只加2行 其他都不要写
成功
下载logstash
docker pull logstash:7.2.0
docker run -d -p 5044:5044 --name es_logstash logstash:7.2.0
第二步:修改logstash.yml文件
进入容器:
docker exec -it es_logstash /bin/bash
进入目录cd config ,打开并修改配置文件
vi logstash.yml
添加下面这些 注意:一定是本机器IP地址。
http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.url: http://192.168.12.79:9200
xpack.monitoring.elasticsearch.username: elastic
xpack.monitoring.elasticsearch.password: changme
又出现错误
docker rm es_logstash
下载filebeat:7.2.0
docker pull store/elastic/filebeat:7.2.0
重新整理(待研究)
这边参考文章:
https://www.cnblogs.com/vchar/p/12319216.html
使用挂载 这边失败,先使用最开始的命令
docker run -d --name kibana -p 5601:5601 -v /home/elk/kibana.yml:/usr/share/kibana/config/kibana.yml kibana:7.2.0
这边先配置logstash.conf
input {
tcp {
port => 5044
# 输入为json数据
codec => json_lines
}
}
filter {
}
output {
# 这个是logstash的控制台打印(进行安装调试的时候开启,稍后成功后去掉这个配置即可)
stdout {
codec => rubydebug
}
# elasticsearch配置
elasticsearch {
hosts => ["elasticsearch的IP:9200"]
# 索引名称,没有会自动创建
index => "logstash-%{[server_name]}-%{+YYYY.MM.dd}"
}
}
docker stop logstash
docker rm logstash
docker stop es_logstash
docker rm es_logstash
运行失败
docker run -d -p 5044:5044 -v /home/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf --name logstash logstash:7.2.0
这边一直连接es失败
参考文章:
https://bbs.huaweicloud.com/blogs/149567
正确运行
docker run -d -p 5044:5044 -v /home/elk/logstash.conf:/usr/share/logstash/pipeline/logstash.conf --name logstash --net mynet logstash:7.2.0