使用docker安装elk的详细步骤例子解析

在这里插入图片描述

代码示例:

部署ELK(Elasticsearch、Logstash、Kibana)栈是一个涉及多个步骤的过程,以下是使用Docker进行部署的详细步骤:

  1. 创建网络:首先,需要创建一个Docker网络,以便ELK栈中的不同容器可以相互通信。

    docker network create --subnet=192.168.0.0/16 elk
    

    这一步是为了容器间的通信,网络使用的是192.168.0.0/16,你可以根据需要修改这个设置。

  2. 安装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以单节点模式运行,不需要集群模式的发现过程。
  3. 配置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容器并挂载配置文件和数据目录:
      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
      
      这里将Elasticsearch的配置文件和数据目录挂载到宿主机的对应目录。
  4. 安装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的界面语言为中文。
  5. 配置Kibana

    • 将Kibana的配置文件拷贝到宿主机:
      docker cp kibana:/usr/share/kibana/config/kibana.yml kibana/
      
    • 修改文件权限:
      chmod 666 kibana/kibana.yml
      
    • 修改配置文件中的Elasticsearch地址,添加账号密码等。
    • 重新运行Kibana容器并挂载配置文件:
      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就可以通过配置文件连接到Elasticsearch了。
  6. 安装Logstash(可选,根据需要):

    • 拉取Logstash镜像:
      docker pull logstash:7.12.1
      
    • 运行Logstash容器,配置输入、过滤和输出:
      docker run -d --name logstash --net elk -P logstash:7.12.1
      
    • 根据需要配置Logstash的输入源和输出目标。
  7. 安装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
      

完成以上步骤后,你可以通过访问http://<你的服务器IP>:5601来查看Kibana的Web界面,其中<你的服务器IP>是你服务器的实际IP地址。在Kibana中,你可以创建仪表板、图表和其他可视化效果,以便更好地理解数据。

**
喜欢本文,请点赞、收藏和关注!
如能打赏、那更好了!
**

安装ELKF服务需要以下步骤: 1. 安装DockerDocker Compose 在Windows 10上安装DockerDocker Compose,请参考Docker官方文档。 2. 创建一个Docker Compose文件 在一个空白目录中创建一个名为“docker-compose.yml”的文件,并将以下内容添加到文件中: ``` version: '3.3' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:7.10.0 container_name: elasticsearch environment: - discovery.type=single-node ulimits: memlock: soft: -1 hard: -1 ports: - 9200:9200 - 9300:9300 volumes: - esdata:/usr/share/elasticsearch/data networks: - elk kibana: image: docker.elastic.co/kibana/kibana:7.10.0 container_name: kibana ports: - 5601:5601 environment: ELASTICSEARCH_HOSTS: http://elasticsearch:9200 networks: - elk logstash: image: docker.elastic.co/logstash/logstash:7.10.0 container_name: logstash volumes: - ./config/logstash/:/usr/share/logstash/pipeline/ - ./data/:/usr/share/logstash/data/ environment: LS_JAVA_OPTS: "-Xmx256m -Xms256m" ELASTICSEARCH_HOST: "http://elasticsearch:9200" ELASTICSEARCH_USERNAME: "elastic" ELASTICSEARCH_PASSWORD: "changeme" ports: - "5044:5044" networks: - elk volumes: esdata: driver: local networks: elk: ``` 请注意,此文件定义了三个服务:Elasticsearch、Kibana和Logstash,并将它们连接到一个名为“elk”的网络中。 3. 创建配置文件 在与Docker Compose文件相同的目录中创建一个名为“config”的子目录,并在其中创建一个名为“logstash.conf”的文件。将以下内容添加到文件中: ``` input { beats { port => 5044 } } filter { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ] } } output { elasticsearch { hosts => [ "elasticsearch:9200" ] user => "elastic" password => "changeme" } } ``` 请注意,在这个例子中,我们使用了Apache日志格式作为示例,并将其与Grok插件一起使用解析日志的字段。你可以根据自己的需求修改配置文件。 4. 启动服务 在命令行中进入到Docker Compose文件所在的目录,并运行以下命令: ``` docker-compose up -d ``` 这将启动Elasticsearch、Kibana和Logstash服务,并在后台运行。 5. 访问Kibana 在浏览器中打开“http://localhost:5601/”即可访问Kibana服务。 请注意,由于我们在Docker Compose文件中将端口“5601”映射到主机上的端口“5601”,因此可以在主机上访问该服务。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乔丹搞IT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值