使用docker搭建elk

一.安装前须知
以下步骤在 VMware 中的 centos 7 中操作,ip 地址为:192.168.161.128;

注意安装的时候最好统一版本,否则后面会出现许多问题,进官网搜索对应镜像,查看 Tags 标签下的版本,目前我这最新的 Tags 是 7.12.1,所以拉取镜像时统一加上该版本号。官网镜像地址

Docker 搭建 ELK 之前需熟悉 Docker 的相关指令,如:拷贝容器文件docker cp、强制删除容器: docker rm -f 容器id、创建网络: docker network create elk、查看日志:docker logs container 等等。

为了方便后续文件的挂载,先创建如下目录 /usr/local/elk ,再执行 mkdir /usr/local/elk/{elasticsearch,kibana,logstash} 创建3个对应的目录,所以以下操作如无特别说明,均在 /usr/local/elk下执行。

为了容器间的通信,需要先用 docker 创建一个网络: docker network create elk。

二.安装 Docker
安装 docker 可以照着官网步骤一步一步来,挺简单的。

Install Docker Engine on CentOS

安装完后可以看下版本:docker -v
查看 docker 详细信息:docker info

三.Docker 安装 ElasticSearch
1.搜索、下载并查看镜像

# 搜索镜像
docker search elasticsearch
# 拉取 7.12.1 版本镜像
docker pull elasticsearch:7.12.1
# 查看所有镜像
docker images

2.拷贝配置文件

# 运行 elasticsearch
docker run -d --name es --net elk -P -e "discovery.type=single-node" elasticsearch:7.12.1
# 进入容器查看配置文件路径
docker exec -it es /bin/bash
cd config

在 config 中可看到 elasticsearch.yml 配置文件,再执行 pwd 可以看到当前目录为: /usr/share/elasticsearch/config,所以退出容器,执行文件的拷贝:

# 将容器内的配置文件拷贝到 /usr/local/elk/elasticsearch/ 中
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml elasticsearch/

# 修改文件权限
chmod 666 elasticsearch/elasticsearch.yml

# 在elasticsearch 目录下再创建data目录,同时修改权限
chmod -R 777 elasticsearch/data

注意:这里要修改文件的权限为可写,否则,进行挂载后,在外部修改配置文件,容器内部的配置文件不会更改。同时,创建 data 目录进行挂载。

3.重新运行容器并挂载:

# 先删除旧的容器
docker rm -f es

# 运行新的容器
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/sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用Docker搭建ELK(Elasticsearch、Logstash和Kibana)堆栈,需要遵循以下步骤: 1. 安装DockerDocker Compose。 2. 在本地创建一个文件夹,例如:/home/user/elk。 3. 在该文件夹中创建一个名为docker-compose.yml的文件。 4. 将以下代码复制到docker-compose.yml文件中: ``` version: '2' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1 container_name: elasticsearch environment: - node.name=elasticsearch - discovery.type=single-node ports: - 9200:9200 - 9300:9300 volumes: - ./elasticsearch/data:/usr/share/elasticsearch/data kibana: image: docker.elastic.co/kibana/kibana:7.10.1 container_name: kibana ports: - 5601:5601 depends_on: - elasticsearch logstash: image: docker.elastic.co/logstash/logstash:7.10.1 container_name: logstash volumes: - ./logstash/config/:/usr/share/logstash/pipeline/ command: logstash -f /usr/share/logstash/pipeline/logstash.conf depends_on: - elasticsearch ``` 5. 创建一个名为logstash的文件夹,并在其中创建一个名为config的文件夹。 6. 在config文件夹中创建一个名为logstash.conf的文件,并将以下代码复制到其中: ``` input { beats { port => 5044 } } output { elasticsearch { hosts => ["elasticsearch:9200"] index => "%{[@metadata][beat]}-%{[@metadata][version]}-%{+YYYY.MM.dd}" } } ``` 7. 启动ELK堆栈,运行以下命令: ``` cd /home/user/elk docker-compose up -d ``` 现在,您可以通过浏览器访问Kibana,地址为:http://localhost:5601。您还可以使用Logstash发送日志到Elasticsearch,将其存储并在Kibana中可视化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值