
代码示例:
部署ELK(Elasticsearch、Logstash、Kibana)栈是一个涉及多个步骤的过程,以下是使用Docker进行部署的详细步骤:
-
创建网络:首先,需要创建一个Docker网络,以便ELK栈中的不同容器可以相互通信。
docker network create --subnet=192.168.0.0/16 elk这一步是为了容器间的通信,网络使用的是192.168.0.0/16,你可以根据需要修改这个设置。
-
安装Elasticsearch:
- 拉取Elasticsearch镜像:
docker pull elasticsearch:7.12.1 - 运行Elasticsearch容器:
这里docker run -d --name es --net elk -P -e "discovery.type=single-node" elasticsearch:7.12.1-e "discovery.type=single-node"是为了让Elasticsearch以单节点模式运行,不需要集群模式的发现过程。
- 拉取Elasticsearch镜像:
-
配置Elasticsearch:
- 将容器内的配置文件拷贝到宿主机:
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch/ - 修改文件权限:
chmod 666 elasticsearch/elasticsearch.yml - 创建data目录并修改权限:
mkdir elasticsearch/data chmod -R 777 elasticsearch/data - 重新运行Elasticsearch容器并挂载配置文件和数据目录:
这里将Elasticsearch的配置文件和数据目录挂载到宿主机的对应目录。docker run -d --name es \ --net elk \ -p 9200:9200 -p 9300:9300 \ -e "discovery.type=single-node" \ --privileged=true \ -v $PWD/elasticsearch/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v $PWD/elasticsearch/data/:/usr/share/elasticsearch/data \ elasticsearch:7.12.1
- 将容器内的配置文件拷贝到宿主机:
-
安装Kibana:
- 运行Kibana容器:
这里docker run -d --name kibana --net elk -P -e "ELASTICSEARCH_HOSTS=http://es:9200" -e "I18N_LOCALE=zh-CN" kibana:7.12.1-e "ELASTICSEARCH_HOSTS=http://es:9200"是指定Kibana连接的Elasticsearch地址,-e "I18N_LOCALE=zh-CN"是设置Kibana的界面语言为中文。
- 运行Kibana容器:
-
配置Kibana:
- 将Kibana的配置文件拷贝到宿主机:
docker cp kibana:/usr/share/kibana/config/kibana.yml kibana/ - 修改文件权限:
chmod 666 kibana/kibana.yml - 修改配置文件中的Elasticsearch地址,添加账号密码等。
- 重新运行Kibana容器并挂载配置文件:
这样Kibana就可以通过配置文件连接到Elasticsearch了。docker run -d --name kibana \ -p 5601:5601 \ -v $PWD/kibana/kibana.yml:/usr/share/kibana/config/kibana.yml \ --net elk \ --privileged=true \ kibana:7.12.1
- 将Kibana的配置文件拷贝到宿主机:
-
安装Logstash(可选,根据需要):
- 拉取Logstash镜像:
docker pull logstash:7.12.1 - 运行Logstash容器,配置输入、过滤和输出:
docker run -d --name logstash --net elk -P logstash:7.12.1 - 根据需要配置Logstash的输入源和输出目标。
- 拉取Logstash镜像:
-
安装Filebeat(可选,根据需要):
- 拉取Filebeat镜像:
docker pull elastic/filebeat:7.12.1 - 运行Filebeat容器,配置Filebeat以收集日志并发送到Logstash或Elasticsearch:
docker run -d --name filebeat --net elk -e "ELASTICSEARCH_HOSTS=http://es:9200" elastic/filebeat:7.12.1
- 拉取Filebeat镜像:
完成以上步骤后,你可以通过访问http://<你的服务器IP>:5601来查看Kibana的Web界面,其中<你的服务器IP>是你服务器的实际IP地址。在Kibana中,你可以创建仪表板、图表和其他可视化效果,以便更好地理解数据。
**
喜欢本文,请点赞、收藏和关注!
如能打赏、那更好了!
**
2497

被折叠的 条评论
为什么被折叠?



