elasticsearch 的服務可以透過兩種方式取得:
接下來會透過 docker 於地端安裝 elasticsearch 服務,並且因本文重點會在實作 ES 上的應用,叢集架構僅採用 single node;single node 沒有任何錯誤容忍的空間,容易有服務中斷、資料遺失的風險,官方不推薦使用 single node 作為正式環境(production)配置。
以下是在地端架設一個可用 single node ES 叢集的 docker-compose.yml ;共有 elasticsearch & kibana 兩個服務,image 都是使用 Elastic 官方發佈的 image、服務預設的 port 、透過 bridge network 把兩個服務放在同一個網路環境(elastic)中。
這邊要感謝 docker 的出現和普及,雖然不是萬能,但對於我極度有限的 OS 知識和經驗而言, docker 真的讓很多工具的初步探索變的非常容易。
version: '3'
services:
elasticsearch:
image: elasticsearch:8.15.0
container_name: es
ports:
- 9200:9200
- 9300:9300
environment:
- discovery.type=single-node
- xpack.security.enabled=false
networks:
- elastic
kibana:
image: kibana:8.15.0
container_name: kibana
ports:
- "5601:5601"
depends_on:
- elasticsearch
networks:
- elastic
networks:
elastic:
driver: bridge
使用 docker compose 將服務啟動後,可以打開瀏覽器輸入 url: localhost:9200,或是 curl 工具發出 get request 給 localhost:9200,如果會得到以下類似的 json 字串說明 ealsticsearch 服務的基本資訊,表示服務啟動成功。
{
"name": "eb82baa6a1a6",
"cluster_name": "docker-cluster",
"cluster_uuid": "_uchHPFRTC67CZ9MNHvsPw",
"version": {
"number": "8.15.0",
"build_flavor": "default",
"build_type": "docker",
"build_hash": "1a77947f34deddb41af25e6f0ddb8e830159c179",
"build_date": "2024-08-05T10:05:34.233336849Z",
"build_snapshot": false,
"lucene_version": "9.11.1",
"minimum_wire_compatibility_version": "7.17.0",
"minimum_index_compatibility_version": "7.0.0"
},
"tagline": "You Know, for Search"
}
接下來看看 kibana 服務是不是也成功,請在瀏覽器輸入 localhost:5601 ,成功的話會顯示 kibana 首頁,類似下圖的畫面。
畫面除了 menu bar 外大致可以分成三個區塊,功能入口、資料介接導覽、管理工具區。Elasitc 的界面我個人是蠻喜歡的,非常的清楚、易用,推薦大家每一個部分都可以點入探索看看有什麼樣的內容。
下一篇會開始使用 kibana 跟 ES 互動。