返回介绍

ElasticSearch - puppet-elasticsearch模块的使用

发布于 2020-06-28 10:03:44 字数 2840 浏览 1041 评论 0 收藏 0

Elasticsearch 作为一个 Java 应用,本身的部署已经非常简单了。不过作为生产环境,还是有必要采用一些更标准化的方式进行集群的管理。Elasticsearch 官方提供并推荐使用 Puppet 方式部署和管理。其 Puppet 模块源码地址见:

https://github.com/elastic/puppet-elasticsearch

安装方法

和其他标准 Puppet Module 一样,puppet-elasticsearch 也可以通过 Puppet Forge 直接安装:

  1. # puppet module install elasticsearch-elasticsearch

配置示例

安装好 Puppet 模块后,就可以使用了。模块提供几种 Puppet 资源,主要用法如下:

  1. class { 'elasticsearch':
  2. version => '2.4.1',
  3. config => { 'cluster.name' => 'es1003' },
  4. java_install => true,
  5. }
  6. elasticsearch::instance { $fqdn:
  7. config => { 'node.name' => $fqdn },
  8. init_defaults => { 'ES_USER' => 'elasticsearch', 'ES_HEAP_SIZE' => $memorysize > 64 ? '31g' : $memorysize / 2 },
  9. datadir => [ '/data1/elasticsearch' ],
  10. }
  11. elasticsearch::template { 'templatename':
  12. host => $::ipaddress,
  13. port => 9200,
  14. content => '{"template":"*","settings":{"number_of_replicas":0}}'
  15. }

示例中展示了三种资源:

  • class: 配置具体安装的 Elasticsearch 软件版本,全集群公用的一些基础配置项。注意,puppet-elasticsearch 模块默认并不负责 Java 的安装,它只是调用操作系统对应的 Yum,Apt 工具,而 elasticsearch.rpm 或者 elasticsearch.deb 本身没有定义其他依赖(因为 java 版本太多了,定义起来不方便)。所以,如果依然要走 puppet-elasticsearch 配置来安装 Java 的话,需要额外开启 java_install 选项。该选项会使用另一个 Puppet Module —— puppetlabs-java 来安装,默认安装的是 jdk。如果你要节省空间,可以再加一行 java_package 来明确指定软件全名。
  • instance: 配置具体单个进程实例的配置。其中 configinit_defaults 选项在 class 和 instance 资源中都可以定义,实际运行时,会自动做一次合并,当然,instance 里的配置优先级高于 class 中的配置。此外,最重要的定义是数据目录的位置。有多快磁盘的,可以在这里定义一个数组。
  • template: 模板是 Elasticsearch 创建索引映射和设置时的预定义方式。一般可以通过在 config/templates/ 目录下放置 JSON 文件,或者通过 RESTful API 上传配置两种方式管理。而这里,单独提供了 template 资源,通过 puppet 来管理模板。content 选项中直接填入模板内容,或者使用 file 选项读取文件均可。

事实上,模块还提供了 plugin 和 script 资源管理这两方面的内容。考虑在 ELK 中,二者用的不是很多,本节就不单独介绍了。想了解的读者可以参考官方文档。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文