使用docker swarm搭建EFK(elasticsearch、filebeat、kibana)
EFK是一种常见的日志管理解决方案,由三个核心组件组成:Elasticsearch、Filebeat和Kibana。在本文中,我们将介绍如何在Docker Swarm上搭建EFK。
步骤1: 创建Docker Swarm集群
在开始之前,您需要创建一个Docker Swarm集群。这里我们使用Docker Desktop上的单节点集群。
步骤2: 创建网络
创建一个新的overlay网络,使三个容器之间可以相互通信。
$ docker network create --driver overlay elk
步骤3:启动Elasticsearch
创建一个名为elasticsearch的服务,并将其连接到elk网络:
$ docker service create \
--name elasticsearch \
--network elk \
-e "discovery.type=single-node" \
elasticsearch:7.4.2
步骤4:启动Kibana
创建一个kibana服务并将其连接到elk网络。
$ docker service create \
--name kibana \
--network elk \
-e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" \
-p 5601:5601 \
kibana:7.4.2
步骤5:启动Filebeat
创建一个filebeat服务并将其连接到elk网络。
$ docker service create \
--name filebeat \
--network elk \
--mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock \
--mount type=bind,source=/var/lib/docker/containers,target=/var/lib/docker/containers \
-e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \
docker.elastic.co/beats/filebeat:7.4.2 \
filebeat -e -strict.perms=false
在这里,我们将docker.sock和容器文件夹挂载到Filebeat容器中。
步骤6:检查EFK
现在,您已经成功地启动了容器,可以通过访问http://localhost:5601/来访问Kibana控制台。
初始登录凭据为:用户名:elastic,密码:changeme。
在控制台中,您可以创建索引模板和搜索面板以查看日志数据。
结论
在Docker Swarm上安装EFK并不困难,步骤清晰简洁。通过这个解决方案,您可以使用轻松管理和展示日志,帮助您更好地管理应用程序。
