docker 部署ELK

ELK简介

ELK是三个开源软件的缩写,分别表示:Elasticsearch , Logstash, Kibana , 它们都是开源软件。新增了一个FileBeat,它是一个轻量级的日志收集处理工具(Agent),Filebeat占用资源少,适合于在各个服务器上搜集日志后传输给Logstash,官方也推荐此工具。

Elasticsearch是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。

Logstash 主要是用来日志的搜集、分析、过滤日志的工具,支持大量的数据获取方式。一般工作方式为c/s架构,client端安装在需要收集日志的主机上,server端负责将收到的各节点日志进行过滤、修改等操作在一并发往elasticsearch上去。

Kibana 也是一个开源和免费的工具,Kibana可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面,可以帮助汇总、分析和搜索重要数据日志。

详细介绍请查阅官网:https://www.elastic.co/cn/

ELK部署

环境

  • 安装好docker以及docker-compose组件

安装步骤

这里使用的都是6.3.0版本的镜像
具体可使用版本可查阅地址:https://www.docker.elastic.co/
1. 拉取镜像:使用docker pull

docker pull docker.elastic.co/elasticsearch/elasticsearch:6.3.0
docker pull docker.elastic.co/kibana/kibana:6.3.0
docker pull docker.elastic.co/logstash/logstash:6.3.0

2. 使用tag命令重新打包镜像(名字太长,用起来麻烦)

docker tag docker.elastic.co/elasticsearch/elasticsearch:6.3.0 elasticsearch:latest
docker tag docker.elastic.co/kibana/kibana:6.3.0 kibana:latest
docker tag docker.elastic.co/logstash/logstash:6.3.0 logstash:latest

3. 本地新建好文件夹,目录结构如下

dockerfile
    |- elasticsearch
    |    |- data
    |- logstash
    |    |- config-dir
    |    |    |- logstash.conf
    |- docker-compose.yml

4. 编写docker-compose.yml文件
version: ‘3’
services:
elasticsearch:
image: elasticsearch:latest
container_name: elasticsearch
restart: always
networks:
- elk
ports:
- “9200:9200”
- “9300:9300”
volumes:
- ./elasticsearch/data:/usr/share/elasticsearch/data

  logstash:
    image: logstash:latest
    container_name: logstash
    restart: always
    networks:
       - elk
    ports:
      - "9601:9601"
    volumes:
      - ./logstash/config-dir:/config-dir
    command: logstash -f /config-dir
    depends_on:
      - elasticsearch

  kibana:
    image: kibana:latest
    container_name: kibana
    restart: always
    networks:
       - elk
    ports:
       - "5601:5601"
    depends_on:
       - elasticsearch

networks:
    elk:

5. 编写logstash.conf文件

input {
  tcp {
    port => 9601 #监听端口
    mode => "server" #使用服务模式
    tags => ["tags"]
    codec => json_lines #使用json格式传输数据
  }
}

output {
  elasticsearch {
    hosts => "elasticsearch:9200"
    index => "%{[appname]}-%{+YYYY.MM.dd}" #使用应用名称和时间为日志索引
  }

  stdout {
    codec => rubydebug
  }
}

启动环境

  • 打开终端,进入dockerfile目录
  • 使用docker-compose up -d(以后台模式启动,既不输出日志)

环境验证

请查看spring cloud 2.0 入门系列一 (8)统一日志管理-ELK

扫描二维码关注公众号,回复: 1949835 查看本文章

猜你喜欢

转载自blog.csdn.net/xiaoluo033/article/details/80955869