ES系列二、Mac 通过docker搭建ELK日志收集系统

一、ELK简介

  • Elasticsearch:用于存储收集到的日志信息;
  • Logstash:用于监控,过滤,收集日志,SpringBoot应用整合了Logstash以后会把日志发送给LogstashLogstash再把日志转发给Elasticsearch
  • Kibana:通过Web端的可视化界面来查看日志。

二、解决docker拉取镜像慢的问题

  前提是我们的mac安装好了docker,并且可以正常启动关闭。但是当我们对镜像进行拉取的时候,会发现速度非常的慢,停在下面这个界面很久也不动。

  解决方法:我们可以进入阿里云的官网,登陆之后搜索docker,如下图

 

  在任务栏点击 Docker Desktop 应用图标 -> Perferences,在左侧导航菜单选择 Docker Engine,在右侧输入栏编辑 json 文件。将 https://nt1wiw3g.mirror.aliyuncs.com加到"registry-mirrors"的数组里,点击 Apply & Restart按钮,等待Docker重启并应用配置的镜像加速器。如下图:

然后你拉取镜像的速度就会和我一样飞快啦!兄弟们,起飞!

 

三、Mac下Docker安装ELK环境

1、mac安装elk, elasticsearch、logstash、kibana版本要一致。我这里都使用 6.8.0版本。因为版本7改动太大,没深入研究,坑有点多。

# 查看是否安装了elk
docker images
# 清理之前的版本
docker rmi $(docker images -aq)
# 安装 elk 6.8.0 版本
docker pull elasticsearch:6.8.0
docker pull kibana:6.8.0
docker pull logstash:6.8.0
# 查看是否下载成功
docker images

2、查看已拉取的 ElasticSearch:

  • 操作命令 : docker image ls elasticsearch
  • 操作示例:
    localhost:~ gs$ docker image ls elasticsearch
    REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
    elasticsearch       6.8.0               d0b291d7093b        14 months ago       895MB 
      

3、开始搭建

  第一步:创建3个文件夹,用于存放Elasticsearch数据、Logstash的插件和Logstash的配置文件,由于Kibana主要是用于把logstash收集到的日志进行可视化分析,故本例不做更多配置。xxxxxxx为本机下的用户。

mkdir -p /Users/xxxxxxx/elk/elasticsearch/data
mkdir -p /Users/xxxxxxx/elk/elasticsearch/plugins
mkdir -p /Users/xxxxxxx/elk/logstash

  另外可以再创建一个文件夹,用于存放docker-compose.yml文件

mkdir -p /Users/xxxxxxx/elk/docker

  第二步:在/Users/xxxxxxx/elk/logstash目录下创建logstash的配置文件logstash.conf

input {
  tcp {
    mode => "server"
    host => "0.0.0.0"
    port => 4560
    codec => json_lines
  }
}
output {
  elasticsearch {
    hosts => "es:9200"
    index => "springboot-logstash-%{+YYYY.MM.dd}"
  }
}

  第三步:在/Users/xxxxxxx/elk/docker创建docker-compose.yml文件

version: '3'
services:
  elasticsearch:
    image: elasticsearch:6.8.0
    container_name: elasticsearch
    environment:
      - "cluster.name=elasticsearch" #设置集群名称为elasticsearch
      - "discovery.type=single-node" #以单一节点模式启动
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m" #设置使用jvm内存大小
    volumes:
      - /Users/xxxxxxx/elk/elasticsearch/data:/usr/share/elasticsearch/data #数据文件挂载
      - /Users/xxxxxxx/elk/elasticsearch/plugins:/usr/share/elasticsearch/plugins #插件文件挂载
    ports:
      - 9200:9200
      - 9300:9300
  kibana:
    image: kibana:6.8.0
    container_name: kibana
    links:
      - elasticsearch:es #可以用es这个域名访问elasticsearch服务
    depends_on:
      - elasticsearch #kibana在elasticsearch启动之后再启动
    environment:
      - "elasticsearch.hosts=http://es:9200" #设置访问elasticsearch的地址
    ports:
      - 5601:5601
  logstash:
    image: logstash:6.8.0
    container_name: logstash
    volumes:
      - /Users/xxxxxxx/elk/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf #挂载logstash的配置文件
    depends_on:
      - elasticsearch #kibana在elasticsearch启动之后再启动
    links:
      - elasticsearch:es #可以用es这个域名访问elasticsearch服务
    ports:
      - 4560:4560

  第四步:在docker-compose.yml文件目录下启动elk

docker-compose up -d

  示例:

localhost:docker gs$ /Users/gs/elk/docker/docker-compose.yml 
-bash: /Users/gs/elk/docker/docker-compose.yml: Permission denied
localhost:docker gs$ docker-compose up -d
elasticsearch is up-to-date
kibana is up-to-date
logstash is up-to-date

    第五步:访问 localhost:9200  localhost:5601 能够正常,说明整个elk环境已搭建完成。至此,整个ELK环境已经能够搭建完成。

 
 

参考文献:https://blog.csdn.net/kouxinsu8594/article/details/107129482

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章