当前位置:   article > 正文

Docker部署ELK_docker 部署elk

docker 部署elk

使用Docker 部署ELK

ELK是3个中间件的合称 Elasticsearch、Logstash、Kibana,ELK主要用于日志记录,方便查找日志快速定位项目问题
ELK 对版本敏感,部署前请先确定使用的版本,我这里用的是7.6.2

部署ElasticSearch

docker run -d -p 9200:9200 --name es -e "discovery.type=single-node" elasticsearch:7.6.2
  • 1

这里-e “discovery.type=single-node” 表示部署为单节点

运行成功
将ElasticSearch的关键文件挂载到本地
需要先将文件复制出来


创建文件夹

mkdir /docker_data/elk/elasticsearch -p 
  • 1

复制重要文件到主机

docker cp es:/usr/share/elasticsearch/data /docker_data/elk/elasticsearch/data
docker cp es:/usr/share/elasticsearch/config /docker_data/elk/elasticsearch/config
docker cp es:/usr/share/elasticsearch/logs /docker_data/elk/elasticsearch/logs
docker cp es:/usr/share/elasticsearch/plugins /docker_data/elk/elasticsearch/plugins
  • 1
  • 2
  • 3
  • 4

这里需要下载IK分词插件
IK分词器官方发行版下载地址:
https://github.com/medcl/elasticsearch-analysis-ik/releases
这里需要下载对应的版本,因为我elasticsearch用的是7.6.2,所以IK也需要下载7.6.2
如果跟我用一样的版本,可以用这个链接直达
https://github.com/medcl/elasticsearch-analysis-ik/releases/tag/v7.6.2
在这里插入图片描述
这里根据使用场景选择一个压缩包下载
我是在win11 部署的,所以我下载了第一个
解压到/docker_data/elk/elasticsearch/plugins 目录下
在这里插入图片描述
解压完记得删掉zip文件


删除原有容器

docker stop es
docker rm es
  • 1
  • 2

重新运行容器

docker run -d -p 9200:9200 -p 9300:9300 --name es \
-v /docker_data/elk/elasticsearch/data:/usr/share/elasticsearch/data \
-v /docker_data/elk/elasticsearch/config:/usr/share/elasticsearch/config \
-v /docker_data/elk/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /docker_data/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-e "discovery.type=single-node" elasticsearch:7.6.2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

部署Logstash

这里也使用7.6.2版本,3个中间件版本需要一致

docker run -d -p 5044:5044 \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name logstash logstash:7.6.2
  • 1
  • 2
  • 3
  • 4
  • 5

创建文件夹

mkdir /docker_data/elk/logstash -p 
  • 1

复制重要文件到主机

docker cp logstash:/usr/share/logstash/config /docker_data/elk/logstash/config
docker cp logstash:/usr/share/logstash/data /docker_data/elk/logstash/data
  • 1
  • 2

logstash 的data目录需要写权限

chmod 777 data/ -R
  • 1

删除原有容器

docker stop logstash
docker rm logstash
  • 1
  • 2

编辑配置文件
/docker_data/elk/logstash/config/logstash.yml

http.host: "0.0.0.0"
xpack.monitoring.elasticsearch.hosts: [ "http://172.17.0.1:9200" ]
  • 1
  • 2

其中 第二行的elasticsearch.hosts 需要配置elasticsearch的地址和端口,我这里因为是在同一台机器上部署,ip就直接填写容器网关的ip,这里会根据端口找到elasticsearch的服务


重新运行容器

docker run -d -p 5044:5044 \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name logstash \
-v /docker_data/elk/logstash/config:/usr/share/logstash/config \
-v /docker_data/elk/logstash/data:/usr/share/logstash/data \
logstash:7.6.2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

部署Kibana

docker run -d -p 5601:5601 \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name kibana kibana:7.6.2
  • 1
  • 2
  • 3
  • 4
  • 5

创建文件夹

mkdir /docker_data/elk/kibana -p 
  • 1

复制重要文件到主机

docker cp kibana:/usr/share/kibana/config /docker_data/elk/kibana/config
  • 1

删除原有容器

docker stop kibana
docker rm kibana
  • 1
  • 2

编辑配置文件
/docker_data/elk/kibana/config/kibana.yml

server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://172.17.0.1:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
  • 1
  • 2
  • 3
  • 4

其中 第三行的elasticsearch.hosts 需要配置elasticsearch的地址和端口,这么填请参考上面logstash提到的原理


重新运行容器

docker run -d -p 5601:5601 \
--log-driver json-file \
--log-opt max-size=100m \
--log-opt max-file=2 \
--name kibana \
-v /docker_data/elk/kibana/config:/usr/share/kibana/config \
kibana:7.6.2
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

使用ELK

浏览器访问 http://localhost:5601

在这里插入图片描述
在这里插入图片描述
能正常连接elasticsearch 部署完毕

后续会继续补充ELK的使用

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/411238
推荐阅读
相关标签
  

闽ICP备14008679号