目录
一、安装并启动ES
二、安装head
1. 安装 nodejs
2. 安装head插件
3. 为head配置ES
4. 使用head
三、装载数据
1. 装载elasticsearch-in-action示例
2. 装载elasticsearch官方文档提供的示例数据
3. 使用Kettle装载数据
三、增加节点
五、安装kibana
安装环境:
# 解压
tar -zxvf elasticsearch-6.4.3.tar.gz
# 启动
cd elasticsearch-6.4.3
bin/elasticsearch -d
# 查看
jps
more logs/elasticsearch.log
# 验证
curl localhost:9200
输出如下,缺省的集群名称为elasticsearch,已经启动一个名为“yO9AEg-”的节点。
{
"name" : "yO9AEg-",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "zMWKHBhsS92T0Xh0adr2hw",
"version" : {
"number" : "6.4.3",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "fe40335",
"build_date" : "2018-10-30T23:17:19.084789Z",
"build_snapshot" : false,
"lucene_version" : "7.4.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}
head是ES最早的插件之一,它通过浏览器访问ES集群,让集群状态和索引的管理更为轻松,而且让我们可以通过更具吸引力的用户界面来执行查询。
# 下载
wget https://nodejs.org/dist/v8.11.1/node-v8.11.1-linux-x64.tar.xz
# 解压
tar -xvf node-v8.11.1-linux-x64.tar.xz
# 创建软链接,执行以下命令设置全局有效,需要root用户操作
ln -s /home/elasticsearch/node-v8.11.1-linux-x64/bin/npm /usr/local/bin/
ln -s /home/elasticsearch/node-v8.11.1-linux-x64/bin/node /usr/local/bin/
# 下载
wget https://github.com/mobz/elasticsearch-head/archive/master.zip
# 解压
unzip master.zip
# 建立软连接
ln -s elasticsearch-head-master head
# 安装head
cd head
npm install
# 启动head插件
nohup npm run start &
vi /home/elasticsearch/elasticsearch-6.4.3/config/elasticsearch.yml
添加如下内容并保存:
network.host: 172.16.1.127
http.cors.enabled: true
http.cors.allow-origin: "*"
# 重启ES
jps | grep Elasticsearch | awk '{print $1}' | xargs kill
~/elasticsearch-6.4.3/bin/elasticsearch -d
在浏览器输入:http://172.16.1.127:9100/
在head中的地址栏输入如下地址并点击“连接”按钮:http://172.16.1.127:9200/
显示具有一个节点,没有任何数据的ES集群,如图1所示:
# 下载
git clone https://github.com/dakrone/elasticsearch-in-action.git -b 6.x
# 装载数据
elasticsearch-in-action/populate.sh 172.16.1.127:9200
从head查看结果如图2所示:
可以看到已经创建了4个索引,共有17个主分片。其中get-together有两个分片,包含20个文档,其它三个索引每个有5个分片,但都没有数据。当前集群健康值为yellow,因为当前只有一个节点,存储17个主分片,但无法分配副本分片。
从下面的地址下载accounts.json文件:
https://raw.githubusercontent.com/elastic/elasticsearch/master/docs/src/test/resources/accounts.json
# 批量装载数据
curl -H "Content-Type: application/json" -XPOST "172.16.1.127:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@accounts.json"
从head查看结果如图3所示:
可以看到创建了一个名为bank的索引,它有5个主分片,1份副本,包含1000个文档。
注意要向ES6装载数据,需要使用Kettle 8.2或以上版本。这里使用Kettle 8.2将一个本地MySQL数据表迁移到ES6中。转换配置如图4-图7所示:
从head查看结果如图8所示:
可以看到创建了一个名为dbinfo的索引,它有5个主分片,1份副本,包含146个文档。
现在向ES集群中增加172.16.1.125、172.16.1.124两个节点。
cluster.name: ES_cluster
node.name: node127
http.port: 9200
network.host: 172.16.1.127
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.zen.ping.unicast.hosts: ["172.16.1.125","172.16.1.126","172.16.1.127"]
network.bind_host: 0.0.0.0
discovery.zen.minimum_master_nodes: 2
discovery.zen.fd.ping_retries: 6
discovery.zen.fd.ping_interval: 30s
xpack.security.enabled: false
启动三个节点后,从head查看结果如图9所示:
可以看到集群名称改为ES_cluster,集群健康值变为green,所有主分片和副本分片自动重新分布到三个节点上,并选举126为主节点。
kibana可以用来监控ES集群状态,安装非常简单,只要注意kibana要和ES的版本一致即可。从官网下载kibana-6.4.3-linux-x86_64.tar.gz文件。
# 解压
tar -zxvf kibana-6.4.3-linux-x86_64.tar.gz
# 修改配置
cd kibana-6.4.3-linux-x86_64
vi config/kibana.yml
修改以下两个地方:
server.host: "172.16.1.127"
elasticsearch.url: "http://172.16.1.127:9200"
# 启动
nohup bin/kibana &
使用kibana,在浏览器输入:http://172.16.1.127:5601/
通过kibana监控ES集群,如图10所示: