#<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
首先環境要部署好 Docker
和 docker-compose
sql
檢驗是否成功docker
命令 docker —version
數據庫
xubdeMacBook-Pro:~ xub$ docker --version Docker version 17.03.1-ce-rc1, build 3476dbf
命令 docker-compose —version
bootstrap
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