使用Docker部署ELK最快捷的方案
说明:本例采用Filebeat直接往ElasticSearch发送日志的方案,省去了logstash,简单快捷架构图:1.安装ES选一台机器执行命令:docker pull docker.elastic.co/elasticsearch/elasticsearch:6.4.2运行容器之前先设置服务器的vm.max_map_cout参数;执行命令:sysctl ...
说明:本例采用Filebeat直接往ElasticSearch发送日志的方案,省去了logstash,简单快捷
架构图:
1 .安装ES
选一台机器执行命令:
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.4.2
运行容器之前先设置服务器的vm.max_map_cout参数;执行命令:
sysctl -w vm.max_map_count=262144
然后启动容器:
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 -d -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.4.2
2.安装配置Kibana
另选一台机器,执行命令:
docker pull docker.elastic.co/kibana/kibana:6.4.2
然后在该机器root目录新建文件kibana.yml
---
# Default Kibana configuration from kibana-docker.
server.name: kibana
server.host: "0"
# 这里es安装在105这台机器,所以地址配这个
elasticsearch.url: http://192.168.60.105:9200
xpack.monitoring.ui.container.elasticsearch.enabled: true
然后启动kibana容器:
docker run -v /root/kibana.yml:/usr/share/kibana/config/kibana.yml -d --name kibana -p 5601:5601 kibana:6.4.2
7.6.2版本部署的时候报错:
Error: [config validation of [elasticsearch].url]: definition for this key is missing
需要把配置改成:
elasticsearch.hosts: ["http://192.168.60.105:9200"]
启动的时候还可以报错:resource_already_exists_exception
参考Kibana启动报错:[resource_already_exists_exception]_m0_37710023的博客-CSDN博客
3、安装配置Filebeat
在产生日志的每台服务器上都需要安装Filebeat
执行命令:
docker pull docker.elastic.co/beats/filebeat:6.4.2
注意:因为日志存放在宿主机,Filebeat要读取宿主机的日志,所以这里必须采用配置文件挂载方式启动Filebeat
在root目录新建文件filebeat.yml
filebeat.inputs:
- type: log
enabled: true
# 下面的的xxx代表不同微服务产生的日志,具体以自己项目为准,如有多个微服务,按照如下格式继续添加即可
paths:
- /usr/share/filebeat/xxx-logs/xxx/logs/*.log
- /usr/share/filebeat/xxx-logs/xxx/logs/*.log
# 配置日志输出到哪里,这里ES安装在105这台机子,以105为例
output.elasticsearch:
hosts: ["192.168.60.105:9200"]
#以下配置可以不配
#setup.kibana:
#host: http://192.168.60.105:5601
启动容器:
docker run \
--name filebeat \
-d \
-v /root/filebeat.yml:/usr/share/filebeat/filebeat.yml \
-v /home/xxx-logs/:/usr/share/filebeat/xxx-logs \
docker.elastic.co/beats/filebeat:6.4.2
上面的命令,第二个参数-v 表示将docker容器中的filebeat.yml挂载到宿主机root目录下的filebeat.yml
第三个参数 -v 表示将生产日志的目录挂载到宿舍机,这里宿主机尝试日志的目录是/home/xxx-logs/
最后访问kibana:
首次访问,先设置索引
以下这里填filebeat-*
创建好索引之后,在点击左边Discover则可以看到当前产生的日志,亦可以按关键字搜索日志了
更多推荐
所有评论(0)