puppet-elasticsearch模块的使用
Elasticsearch 作为一个 Java 应用,本身的部署已经非常简单了。不过作为生产环境,还是有必要采用一些更标准化的方式进行集群的管理。Elasticsearch 官方提供并推荐使用 Puppet 方式部署和管理。其 Puppet 模块源码地址见:
https://github.com/elastic/puppet-elasticsearch
安装方法
和其他标准 Puppet Module 一样,puppet-elasticsearch 也可以通过 Puppet Forge 直接安装:
配置示例
安装好 Puppet 模块后,就可以使用了。模块提供几种 Puppet 资源,主要用法如下:
示例中展示了三种资源:
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: 配置具体单个进程实例的配置。其中
config
和init_defaults
选项在 class 和 instance 资源中都可以定义,实际运行时,会自动做一次合并,当然,instance 里的配置优先级高于 class 中的配置。此外,最重要的定义是数据目录的位置。有多快磁盘的,可以在这里定义一个数组。template: 模板是 Elasticsearch 创建索引映射和设置时的预定义方式。一般可以通过在
config/templates/
目录下放置 JSON 文件,或者通过 RESTful API 上传配置两种方式管理。而这里,单独提供了 template 资源,通过 puppet 来管理模板。content
选项中直接填入模板内容,或者使用file
选项读取文件均可。
事实上,模块还提供了 plugin 和 script 资源管理这两方面的内容。考虑在 ELK 中,二者用的不是很多,本节就不单独介绍了。想了解的读者可以参考官方文档。
Last updated