Elasticsearch集群是怎么搭建的

发布时间:2021-12-13 10:46:53 作者:柒染
来源:亿速云 阅读:180

Elasticsearch集群是怎么搭建的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

一:资源

集群: gh-cluster

节点1:gh-cluster-node-01   10.44.66.2

节点2:gh-cluster-node-02   10.116.148.103

节点3:gh-cluster-node-03   10.170.142.108

Elasticsearch:elasticsearch-2.4.4.tar.gz

安装目录:/mnt/gh

二:安装 Elasticsearch

1.创建相关文件目录 

mkdir -p /mnt/gh/data/logs/elasticsearch
mkdir -p /mnt/gh/data/elasticsearch/{data,work,plugins,scripts}

2.创建新的用户

groupadd elsearch
useradd elsearch -g elsearch -p elsearch

3.操作权限

chown -R elsearch:elsearch /mnt/gh/data/logs/elasticsearch /mnt/gh/data/elasticsearch

4.安装 Elasticsearch

tar -zxvf elasticsearch-2.4.4.tar.gz

5./etc/security/limits.conf 配置

elsearch soft memlock unlimited
elsearch hard memlock unlimited

6.Elasticsearch 配置

vi /mnt/gh/elasticsearch-2.4.4/config/elasticsearch.yml 


点击(此处)折叠或打开

  1. # ======================== Elasticsearch Configuration =========================

  2. #

  3. # NOTE: Elasticsearch comes with reasonable defaults for most settings.

  4. # Before you set out to tweak and tune the configuration, make sure you

  5. #       understand what are you trying to accomplish and the consequences.

  6. #

  7. # The primary way of configuring a node is via this file. This template lists

  8. # the most important settings you may want to configure for a production cluster.

  9. #

  10. # Please see the documentation for further information on configuration options:

  11. # <http://www.elastic.co/guide/en/elasticsearch/reference/current/setup-configuration.html>

  12. #

  13. # ---------------------------------- Cluster -----------------------------------

  14. #

  15. # Use a descriptive name for your cluster:

  16. #

  17.   cluster.name: gh-cluster

  18. #

  19. # ------------------------------------ Node ------------------------------------

  20. #

  21. # Use a descriptive name for the node:

  22. #

  23.   node.name: gh-cluster-node-01

  24. #

  25. # Add custom attributes to the node:

  26. #

  27. # node.rack: r1

  28. #

  29. # ----------------------------------- Paths ------------------------------------

  30. #

  31. # Path to directory where to store the data (separate multiple locations by comma):

  32.   path.data: /mnt/gh/data/elasticsearch/data

  33. #

  34. # Path to log files:

  35. #

  36.   path.logs : /mnt/gh/data/logs/elasticsearch

  37.   path.plugins: /mnt/gh/data/elasticsearch/plugins

  38.   path.scripts: /mnt/gh/data/elasticsearch/scripts

  39. #

  40. # ----------------------------------- Memory -----------------------------------

  41. #

  42. # Lock the memory on startup:

  43. #

  44.   bootstrap.memory_lock: true

  45. #

  46. # Make sure that the `ES_HEAP_SIZE` environment variable is set to about half the memory

  47. # available on the system and that the owner of the process is allowed to use this limit.

  48. #

  49. # Elasticsearch performs poorly when the system is swapping the memory.

  50. #

  51. # ---------------------------------- Network -----------------------------------

  52. #

  53. # Set the bind address to a specific IP (IPv4 or IPv6):

  54. #

  55.   network.host: 10.44.66.2

  56. #

  57. # Set a custom port for HTTP:

  58. #

  59.   http.port: 9200

  60. #

  61. # For more information, see the documentation at:

  62. # <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-network.html>

  63. #

  64. # --------------------------------- Discovery ----------------------------------

  65. #

  66. # Pass an initial list of hosts to perform discovery when new node is started:

  67. # The default list of hosts is ["127.0.0.1", "[::1]"]

  68. #

  69.   discovery.zen.ping.multicast.enabled: false

  70.   discovery.zen.ping_timeout: 120s

  71.   discovery.zen.fd.ping_timeout: 120s

  72.   discovery.zen.ping.unicast.hosts: ["10.44.66.2", "10.116.148.103", "10.170.142.108"]

  73. #

  74. # Prevent the "split brain" by configuring the majority of nodes (total number of nodes / 2 + 1):

  75. #

  76.   discovery.zen.minimum_master_nodes: 2

  77. #

  78. # For more information, see the documentation at:

  79. # <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-discovery.html>

  80. #

  81. # ---------------------------------- Gateway -----------------------------------

  82. #

  83. # Block initial recovery after a full cluster restart until N nodes are started:

  84. #

  85.   gateway.recover_after_nodes: 3

  86.   gateway.recover_after_time: 30m

  87.   gateway.expected_nodes: 3

  88. #

  89. # For more information, see the documentation at:

  90. # <http://www.elastic.co/guide/en/elasticsearch/reference/current/modules-gateway.html>

  91. #

  92. # ---------------------------------- Various -----------------------------------

  93. #

  94. # Disable starting multiple nodes on a single system:

  95. #

  96. # node.max_local_storage_nodes: 1

  97. #

  98. # Require explicit names when deleting indices:

  99. #

  100. # action.destructive_requires_name: true

各节点调整node-name的配置信息,保证唯一。

四: 在节点1上面安装Elasticsearch  插件

1.安装head插件 监控Elasticsearch的运行状态以及数据

./plugin -DproxyPort=4832  -DproxyHost=10.116.4.116   install  mobz/elasticsearch-head

红色部分因为是内网,用了代理访问外网

2.安装kopf插件 ---ElasticSearch的管理工具

./plugin -DproxyPort=4832  -DproxyHost=10.116.4.116   install  lmenezes/elasticsearch-kopf

五:启动

以elsearch用户启动三个节点

/mnt/gh/elasticsearch-2.4.4/bin/elasticsearch

六:验证

1.http://10.44.66.2:9200/

{
  "name" : "gh-cluster-node-01",
  "cluster_name" : "gh-cluster",
  "cluster_uuid" : "iGovr8lcSW62JdEABzLMyg",
  "version" : {
    "number" : "2.4.4",
    "build_hash" : "fcbb46dfd45562a9cf00c604b30849a6dec6b017",
    "build_timestamp" : "2017-01-03T11:33:16Z",
    "build_snapshot" : false,
    "lucene_version" : "5.5.2"
  },
  "tagline" : "You Know, for Search"
}


2.head插件  http://10.44.66.2:9200/_plugin/head/

Elasticsearch集群是怎么搭建的

3.kopf插件 http://10.44.66.2:9200/_plugin/kopf/#!/nodes

Elasticsearch集群是怎么搭建的

七:操作命令

1.检查集群的状态
curl '10.44.66.2:9200/_cat/health?v'


2.检查节点的信息
curl '10.44.66.2:9200/_cat/nodes?v'


3.检查索引信息
curl '10.44.66.2:9200/_cat/indices?v'


4.创建索引
curl -XPUT '10.44.66.2:9200/customer?pretty'


5.往索引中,添加文档
curl -XPUT '10.44.66.2:9200/customer/external/1?pretty' -d '{"name":"John Doe"}'


6.查看文档信息
curl -XGET '10.44.66.2:9200/customer/external/1?pretty'


7.查看所有文档数量
curl -XGET '10.44.66.2:9200/_count?pretty' -d '{"query":{"match_all":{}}}'


8.删除索引
curl -XDELETE '10.44.66.2:9200/customer?pretty'


9.随机创建文档信息
curl -XPOST '10.44.66.2:9200/customer/external?pretty' -d '{"name":"Geng Chong"}'






一个 Elasticsearch 请求和任何 HTTP 请求一样由若干相同的部件组成:


curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>'


被 < > 标记的部件:


VERB


适当的 HTTP 方法 或 谓词 : GET`、 `POST`、 `PUT`、 `HEAD 或者 `DELETE`。


PROTOCOL


http 或者 https`(如果你在 Elasticsearch 前面有一个 `https 代理)


HOST


Elasticsearch 集群中任意节点的主机名,或者用 localhost 代表本地机器上的节点。


PORT


运行 Elasticsearch HTTP 服务的端口号,默认是 9200 。


PATH


API 的终端路径(例如 _count 将返回集群中文档数量)。Path 可能包含多个组件,例如:_cluster/stats 和 _nodes/stats/jvm 。


QUERY_STRING


任意可选的查询字符串参数 (例如 ?pretty 将格式化地输出 JSON 返回值,使其更容易阅读)


BODY

关于Elasticsearch集群是怎么搭建的问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。

推荐阅读:
  1. 如何在Kubernetes中搭建Elasticsearch集群
  2. ElasticSearch集群搭建

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

elasticsearch

上一篇:openstack dasboard使用的是什么语言以及如何搭建开发环境和本地化

下一篇:怎样使用Django基础模板搭建自己的知识库

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》