1. 程式人生 > 實用技巧 >ElasticSearch | 相關工具的使用

ElasticSearch | 相關工具的使用

本文主要介紹一些與 ElasticSearch 相關的小工具:

  • ElasticHQ
  • cerebro
  • elasticdump

一、監控類工具

除了 Kibana 之外,還有一些適合用來做 elasticsearch 叢集監控的小工具,如 ElasticHQ 和 cerebro 。

1. ElasticHQ

ElasticHQ 是一個開源應用程式,它提供了一個簡化的介面來管理和監視Elasticsearch 叢集。以下是相關地址:
ElasticHQ 的官方地址
ElasticHQ 的 docker 映象

在 Kubernetes 上使用 ElasticHQ

# vi es-hq.yaml
apiVersion: v1
kind: Service
metadata:
name: es-hq
labels:
component: es-hq
spec:
selector:
component: es-hq
ports:
- name: http
port: 5000
targetPort: http
nodePort: 30005
type: NodePort
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: es-hq
labels:
component: es-hq
spec:
replicas: 1
selector:
matchLabels:
component: es-hq
template:
metadata:
labels:
component: es-hq
spec:
containers:
- name: hq
image: elastichq/elasticsearch-hq
resources:
limits:
memory: 500Mi
ports:
- containerPort: 5000
name: http

執行 kubectl apply -f es-hq.yaml ,訪問 <node_ip>:<node_port>

展示效果

2. Cerebro

cerebro 是一個使用 Scala ,Play Framework ,AngularJS和 Bootstrap 構建的開源 elasticsearch web管理工具。以下是相關地址:
Cerebro 的 github 地址
Cerebro 的 docker 映象

在 Kubernetes 上使用 Cerebro

# vi cerebro.yaml
apiVersion: v1
kind: Service
metadata:
name: cerebro
labels:
component: cerebro
spec:
selector:
component: cerebro
ports:
- name: http
port: 9000
targetPort: http
nodePort: 30009
type: NodePort
---
apiVersion: apps/v1beta1
kind: Deployment
metadata:
name: cerebro
labels:
component: cerebro
spec:
replicas: 1
selector:
matchLabels:
component: cerebro
template:
metadata:
labels:
component: cerebro
spec:
containers:
- name: cerebro
image: lmenezes/cerebro
resources:
limits:
memory: 500Mi
ports:
- containerPort: 9000
name: http

執行 kubectl apply -f cerebro.yaml ,訪問 <node_ip>:<node_port>

展示效果

二、資料遷移類工具

1. elasticdump

elasticdump 是一個能對 elasticsearch 叢集做資料儲存和資料遷移的小工具。

安裝

npm install elasticdump -g

將資料儲存為 json 檔案

如將一個索引的資料儲存至本地 json 檔案:

# \ 不是換行,可用空格拼接引數
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=/data/my_index.json \
--type=data

更多詳細操作請前往 elasticdump 檢視。

將資料遷移至另一個叢集

如將一個叢集中某索引的資料備份到另一個叢集的索引:

# \ 不是換行,可用空格拼接引數
elasticdump \
--input=http://production.es.com:9200/my_index \
--output=http://staging.es.com:9200/my_index \
--type=data

更多詳細操作請前往 elasticdump 檢視。