本文主要介绍一些与 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 查看。