赞
踩
ELK是3个中间件的合称 Elasticsearch、Logstash、Kibana,ELK主要用于日志记录,方便查找日志快速定位项目问题
ELK 对版本敏感,部署前请先确定使用的版本,我这里用的是7.6.2
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
这里也使用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
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
浏览器访问 http://localhost:5601
能正常连接elasticsearch 部署完毕
后续会继续补充ELK的使用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。