Elasticsearch(3)--- Docker容器中運行ES、Kibana、Cerebro

#<center> Docker容器中運行ES,Kibana,Cerebro和Logstash安裝與數據導入ES</center>html

想增強ES有關的知識,看了阮一鳴老師講的《Elasticsearch核心技術與實戰》收穫很大,因此接下來會跟着他來更加深刻的學習ES。node

這篇博客的目的就是部署好ES和跟ES相關的輔助工具,同時經過Logstash將測試數據導入ES,這些工做完成以後,以後咱們就能夠在此基礎上深刻的去學習它。git

##<font color=#FFD700> 1、Docker容器中運行ES,Kibana,Cerebro</font>github

一、所需環境

Docker + docker-compose

首先環境要部署好 Dockerdocker-composesql

檢驗是否成功docker

命令 docker —version數據庫

xubdeMacBook-Pro:~ xub$ docker --version
Docker version 17.03.1-ce-rc1, build 3476dbf

命令 docker-compose —versionbootstrap

xubdeMacBook-Pro:~ xub$ docker-compose --version
docker-compose version 1.11.2, build dfed245

二、docker-compose.yml

咱們能夠簡單把docker-compose.yml理解成一個相似Shell的腳本,這個腳本定義了運行多個容器應用程序的信息。elasticsearch

version: '2.2'
services:
  cerebro:
    image: lmenezes/cerebro:0.8.3
    container_name: cerebro
    ports:
      - "9000:9000"
    command:
      - -Dhosts.0.host=http://elasticsearch:9200
    networks:
      - es7net
  kibana:
    image: docker.elastic.co/kibana/kibana:7.1.0
    container_name: kibana7
    environment:
      - I18N_LOCALE=zh-CN
      - XPACK_GRAPH_ENABLED=true
      - TIMELION_ENABLED=true
      - XPACK_MONITORING_COLLECTION_ENABLED="true"
    ports:
      - "5601:5601"
    networks:
      - es7net
  elasticsearch:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
    container_name: es7_01
    environment:
      - cluster.name=xiaoxiao
      - node.name=es7_01
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.seed_hosts=es7_01,es7_02
      - cluster.initial_master_nodes=es7_01,es7_02
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es7data1:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - es7net
  elasticsearch2:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.1.0
    container_name: es7_02
    environment:
      - cluster.name=xiaoxiao
      - node.name=es7_02
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
      - discovery.seed_hosts=es7_01,es7_02
      - cluster.initial_master_nodes=es7_01,es7_02
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - es7data2:/usr/share/elasticsearch/data
    networks:
      - es7net

volumes:
  es7data1:
    driver: local
  es7data2:
    driver: local

networks:
  es7net:
    driver: bridge

啓動命令工具

docker-compose up      #啓動
docker-compose down    #中止容器
docker-compose down -v #中止容器而且移除數據

三、查看是否成功

es訪問地址

localhost:9200  #ES默認端口爲9200

kibana訪問地址

localhost:5601 #kibana默認端口5601

cerebro訪問地址

localhost:9000 #cerebro默認端口9000

總體這樣就安裝成功了。

說明 項目是在Mac系統部署成功的,嘗試在本身的阿里雲服務進行部署可是由於內存過小始終沒法成功。

<br>

##<font color=#FFD700> 2、 Logstash安裝與數據導入ES</font>

注意 Logstash和kibana下載的版本要和你的elasticsearch的版本號一一致。

一、配置movices.yml

這個名稱是徹底任意的

# input表明讀取數據 這裏讀取數據的位置在data文件夾下,文件名稱爲movies.csv
input {
  file {
    path => "/Users/xub/opt/logstash-7.1.0/data/movies.csv"
    start_position => "beginning"
    sincedb_path => "/dev/null"
  }
}
filter {
  csv {
    separator => ","
    columns => ["id","content","genre"]
  }

  mutate {
    split => { "genre" => "|" }
    remove_field => ["path", "host","@timestamp","message"]
  }

  mutate {

    split => ["content", "("]
    add_field => { "title" => "%{[content][0]}"}
    add_field => { "year" => "%{[content][1]}"}
  }

  mutate {
    convert => {
      "year" => "integer"
    }
    strip => ["title"]
    remove_field => ["path", "host","@timestamp","message","content"]
  }

}
# 輸入位置 這裏輸入數據到本地es ,而且索引名稱爲movies
output {
   elasticsearch {
     hosts => "http://localhost:9200"
     index => "movies"
     document_id => "%{id}"
   }
  stdout {}
}

啓動命令 : 啓動命令會和配置文件movices.yml的擺放位置有關,進入bin目錄

./logstash ../movices.yml

movices.yml存放的位置

啓動成功

這個時候你去cerebro可視化界面能夠看到,已經有名稱爲movies的索引存在的,上面的圖片其實已經存在movies索引了,由於我是Logstash數據導入ES成功才截的圖。

總結總的來講這裏仍是簡單的,以前經過Logstash將Mysql數據數據遷移到es會相對複雜點,畢竟它還須要一個數據庫驅動包。

這樣環境就已經搭建成功了,接下來的學習都在這個的基礎上進行演示。

<br>

<font color=#FFD700>感謝</font>

Elasticsearch核心技術與實戰---阮一鳴(eBay Pronto平臺技術負責人)

課程相關資料地址 :Github地址 <br> <br>

我相信,不管從此的道路多麼坎坷,只要抓住今天,早晚會在奮鬥中嚐到人生的甘甜。抓住人生中的一分一秒,賽過虛度中的一月一年!(8)

<br>

原文出處:https://www.cnblogs.com/qdhxhz/p/11432112.html

相關文章
相關標籤/搜索