目标
- 调研ELK安装过程(全部使用Docker)
- 预估资源使用情况
- 基本使用
- 日志收集分析
前言
以下所有操作都在本地环境中进行。
Mac OS 10.15.7
Docker 20.10.8
注意:ElasticSearch, Logstash, Kibana 他们三个的版本号要一致,网上目前比较推荐的版本号是 6.8.0。
安装
1. 准备镜像
docker pull elasticsearch:6.8.0
docker pull kibana:6.8.0
docker pull logstash:6.8.0
2. 创建挂载文件
为什么需要挂载文件?
容器每次重启会刷新容器中的环境(包括但不限于数据),所以数据放在容器中的话,下次重启就没了。
关于Mac中目录的选择?
由于Mac是类Unix系统,所以用户的访问用户目录以外的目录权限受限(可能需要提权)。
我的做法是在用户目录下新建一个“docker_files”目录,所以docker相关的文件都会存入这个目录下面,同时也规避了权限问题。
总共需要创建三个目录。
image.png
然后在logstash目录下,创建logstash.conf文件,内容如下:
input {
tcp {
mode => "server"
host => "0.0.0.0"
port => 4560
codec => json_lines
}
}
output {
elasticsearch {
hosts => "es:9200"
index => "springboot-logstash-%{+YYYY.MM.dd}"
}
}
再然后编辑elk目录下的docker-compose.yml
version: '2.2'
services:
elasticsearch:
image: elasticsearch:6.8.0
container_name: elasticsearch
environment:
- "cluster.name=elasticsearch" #设置集群名称为elasticsearch
- "discovery.type=single-node" #以单一节点模式启动
- "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小
volumes:
- /Users/niziheng/docker_files/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载
- /Users/niziheng/docker_files/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
ports:
- 9200:9200
- 9300:9300
kibana:
image: kibana:6.8.0
container_name: kibana
links:
- elasticsearch:es #可以用es这个域名访问elasticsearch服务
depends_on:
- elasticsearch #kibana在elasticsearch启动之后再启动
environment:
- "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址
ports:
- 5601:5601
logstash:
image: logstash:6.8.0
container_name: logstash
volumes:
- /Users/niziheng/docker_files/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件
depends_on:
- elasticsearch #kibana在elasticsearch启动之后再启动
links:
- elasticsearch:es #可以用es这个域名访问elasticsearch服务
ports:
- 4560:4560
这里需要特别注意,yml(也叫yaml)文件是通过缩进来表示层级关系的,所以编辑后需要检查一下是否符合yaml格式。
3. 启动
然后,切换到elk目录下,启动docker-compose.yml文件,执行如下命令
docker-compose -d up
然后,打开浏览器,浏览器打开localhost:5601,访问Kibana首页。
image.png
image.png













网友评论