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

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

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


创建文件夹

mkdir /docker_data/elk/elasticsearch -p 

复制重要文件到主机

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

这里需要下载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

重新运行容器

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

部署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

创建文件夹

mkdir /docker_data/elk/logstash -p 

复制重要文件到主机

docker cp logstash:/usr/share/logstash/config /docker_data/elk/logstash/config
docker cp logstash:/usr/share/logstash/data /docker_data/elk/logstash/data

logstash 的data目录需要写权限

chmod 777 data/ -R

删除原有容器

docker stop logstash
docker rm logstash

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

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

其中 第二行的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

部署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

创建文件夹

mkdir /docker_data/elk/kibana -p 

复制重要文件到主机

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

删除原有容器

docker stop kibana
docker rm kibana

编辑配置文件
/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

其中 第三行的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

使用ELK

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

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

后续会继续补充ELK的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值