ElasticSearch集群搭建及配置监视服务

Elasticsearch 是一个分布式、可扩展、实时的搜索与数据分析引擎

Elasticsearch 不仅仅只是全文搜索,还支持结构化搜索、数据分析、复杂的语言处理、地理位置和对象间关联关系等。 同时 Elasticsearch 有着超强的的水平伸缩性,可以将负载压力和稳定性分散到多个节点。应用场景有电商系统中商品搜索, 系统日志汇聚检索, 用户行为跟踪分析等;


ES集群服务环境搭建

搭建es集群(这里配置三节点, 3主片/3副片的环境)

  1. Win10, jdk8, es5.6.2, kibana5.6.3(可视化操作es),sense-2.0.0-beta7(一个 Kibana 应用 它提供交互式的控制台,通过你的浏览器直接向 Elasticsearch 提交请求)
  2. 下载 ES, kibana, 尽量保持两者版本一致
  3. 新建文件夹 es-cluster, 将es的压缩包copy到该文件夹, 并解压缩出来三份, 分别命名为 elasticsearch-5.6.2-9201, elasticsearch-5.6.2-9202, elasticsearch-5.6.2-9203,
    再创建数据文件夹(../es-cluster/data) 日志存储文件夹(../es-cluster/log)
  4. 修改es节点服务中的配置文件(../es-cluster/elasticsearch-5.6.2-9201/config/elasticsearch.yml), 示例参考(src/resources/config/es/*)
  5. 启动节点9201, 执行(../es-cluster/elasticsearch-5.6.2-9201/bin/elasticsearch.bat), 访问服务 es-health, 这里显示服务状态为red,
    表示不是所有的主分片可用, 当前机器还不能正常工作, 因为我们在配置文件中配置的至少上线2个节点, 才会进行master选举
  6. 启动节点9202, 执行(../es-cluster/elasticsearch-5.6.2-9202/bin/elasticsearch.bat), 再次访问服务es-health, 发现服务状态已经变为green,
    表示所有主片和副片都可用, 机器可以正常工作
    6.1.(可忽略) 安装sense, _bin\kibana-plugin.bat install elastic/sense_, 如果安装失败请直接下载sense, 然后再
    _bin\kibana-plugin.bat install -d "" sense
  7. 将kibana解压至 es-cluster/kibana-5.6.2-windows-x86, 修改配置 kibana-5.6.2-windows-x86/config/kibana.yml 中的 elasticsearch.url: “http://localhost:9201,
    示例参考(src/resources/config/kibana/*)

  8. 启动kibana, 执行(../es-cluster/kibana-5.6.2-windows-x86/bin/kibana.bat), 访问 kibana-service

  9. 添加一个名为’blogs’的index, 并为它分配三个分片并每个分片配属一个副片, 打开kibana面板后, 在 Dev Tools 菜单中执行
curl -XPUT 'localhost:9200/blogs?pretty' -H 'Content-Type: application/json' -d'
 {
    "settings" : {
       "number_of_shards" : 3,
       "number_of_replicas" : 1
    }
 }
  1. 再次访问ES服务查看状态 status, 会看到有对应的分片状态;

Docker中ES集群服务环境搭建

1 . 安装Docker后, 打开一个命令行(powershell), 搜索下docker-hub中心仓库的elasticsearch, 得到的结果列表中关注数最高的就是elastic官方提供的es镜像, 我们就使用它来启动我们的es容器服务;

docker search elasticsearch

2 . 把镜像下载到本地(我们也可以登录自己的docker-hub账号, 上传自己的镜像)

docker pull elasticsearch

3 . 用镜像作为模板启动docker-container, 就能提供es服务

docker run -it --name es -p 9200:9200 -p 9300:9300 -v D:/docker/data/es:/usr/share/elasticsearch/data -v D:/docker/logs/es/:/user/share/elasticsearch/logs elasticsearch

a) run: 创建一个新的容器并运行指定命令
b) -it: 以交互模式运行容器;
c) -name: 为容器指定的名称
d) -p: 宿主机端口映射到容器端口, 就可以通过访问宿主机端口来实现对容器端口的访问
e) -v: 宿主机目录映射的容器内目录
f) 最后的名称就是镜像名称, 还可以指定某个镜像服务器等, 默认就是docker官方hub

猜你喜欢

转载自blog.csdn.net/hinstenyhisoka/article/details/78219342