這邊簡單記錄一下使用 docker-compose 於開發環境建立 Elasticsearch 與 Kibana 服務,除了這兩個主要的服務之外也會一同建立幾個常見於操作管理 Elasticsearch 服務。
作業系統:Windows 10 Pro 1803
Docker 相關資訊
會使用到 docker images:
docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.3
docker.elastic.co/kibana/kibana-oss:6.2.3
yannart/cerebro:latest
elastichq/elasticsearch-hq:release-v3.3.0
appbaseio/dejavu:latest
cerebro
如果之前有用過 elasticsearch-kopf plugin 的人就會知道 Elasticsearch 5.x 之後的插件就不支援以往的安裝方式,而 kopf 在 Elasticsearch 5.x 之後就要改用 cerebro 這個來替代,而 kopf 與 cerebro 在畫面與使用上是沒有什麼差別的
https://github.com/lmenezes/cerebro
https://hub.docker.com/r/yannart/cerebro/
Elasticsearch-HQ
如果想要一個管理與監控 Elasticsearch 的工具,以往除了 kopf 之外就是使用 head,但head 在Elasticsearch 6.x 之後就不再繼續提供支援了,所以我就選用 Elasticsearch-HQ
http://www.elastichq.org/
https://github.com/ElasticHQ/elasticsearch-HQ
https://hub.docker.com/r/elastichq/elasticsearch-hq/
dejavu
dejavu 是一個 chrome-extensions,主要功能是以表格的方式提供 Elasticsearch 的資料瀏覽,並且提供匯出與匯入資料的功能(使用 JSON 與 CSV)
https://chrome.google.com/webstore/detail/dejavu/lcanobbdndljimodckphgdmllahfcadd
既然有了 chrome-extensions 又為何要以 docker 啟用 dejavu 服務呢?
這是一個可選項目,要不要啟用就讓各位自己決定,畢竟不是每個開發環境的 chrome 都會裝上 dejavu 套件,甚至有些環境也不會有 chrome 瀏覽器,所以就在 docker-compose 裡加上 dejavu
https://github.com/appbaseio/dejavu
https://hub.docker.com/r/appbaseio/dejavu/
docker-compose.yml
version: "3.2" services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.2.3 container_name: elasticsearch-623 ports: - "9200:9200" - "9300:9300" environment: - cluster.name=docker-cluster - bootstrap.memory_lock=true - http.host=0.0.0.0 - http.port=9200 - transport.host=127.0.0.1 - "ES_JAVA_OPTS=-Xms512m -Xmx512m" - "http.cors.allow-origin=http://127.0.0.1:1358" - "http.cors.enabled=true" - "http.cors.allow-headers=X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization" - "http.cors.allow-credentials=true" ulimits: memlock: soft: -1 hard: -1 volumes: - es_data:/usr/share/elasticsearch/data networks: - esnet kibana: image: docker.elastic.co/kibana/kibana-oss:6.2.3 container_name: kibana-623 environment: SERVER_NAME: kibana-server ELASTICSEARCH_URL: http://elasticsearch:9200 networks: - esnet depends_on: - elasticsearch ports: - "5601:5601" cerebro: image: yannart/cerebro:latest container_name: cerebro-073 networks: - esnet ports: - "9900:9000" depends_on: - elasticsearch elasticsearch-hq: image: elastichq/elasticsearch-hq:release-v3.3.0 container_name: elasticsearch-hq-330 networks: - esnet depends_on: - elasticsearch ports: - "5000:5000" dejavu: image: appbaseio/dejavu:latest container_name: dejavu networks: - esnet ports: - "1358:1358" volumes: es_data: driver: local networks: esnet: driver: bridge
---------------------
執行
使用指令啟用 docker-compose up –d
如果要結束 docker-compose 裡面的所有服務就是使用 docker-compose down
Elasticsearch
127.0.0.1:9000
kibana
127.0.0.1:5601
cerebro
127.0.0.1:9900
注意!Node address 要輸入的網址是 http://elasticsearch:9200
Elasticsearch-HQ
127.0.0.1:5000
Node address 要輸入的網址是 http://elasticsearch:9200
dejavu
127.0.0.1:1358
這邊要注意的是輸入網址的時候不是使用 docker-compose 內的服務名稱,而是要使用 ip,當輸入網址而且有連接到 elasticsearch 服務時,網址輸入框右側應該會出現「Fetch Indices」,當 elasticsearch 有 Index 時就會列出來並且選擇並進入資料瀏覽的頁面,但如果 elasticsearch 裡沒有任何 Index 的時候就無法進入資料瀏覽頁面
把 Elasticsearch 與 Kibana 和幾個相關服務都建置完成後,接下來就是要如何使用這些服務了,下一篇將會說明如何在 ASP.NET Core MVC 網站專案裡將 Log 傳送到 Elasticsearch 裡,然後在使用 Kibana 顯示資料與操作查詢。
以上
沒有留言:
張貼留言