Docker安装ELK

、Docker 安装 Elasticsearch

官网镜像地址:https://hub.docker.com/_/elasticsearch

下载镜像 查看镜像

docker pull elasticsearch:7.2.0
docker images

创建自定义的网络(用于连接到连接到同一网络的其他服务(例如Kibana))

docker network create  mynet
image.png

运行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
image.png

查看容器状态

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

验证

curl http://localhost:5601

kibana设置中文

image.png

操作界面语言设置为中文

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 发现存在跨域的问题


image.png

由于要进行配置,因此需要进入容器当中修改相应的配置信息。(容器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保存退出


image.png

退出容器:

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行 其他都不要写
成功


image.png

下载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

你可能感兴趣的:(Docker安装ELK)