Browse the Repo

file-type-icon.circleci
file-type-icon_docs
file-type-iconexamples
file-type-iconmodules
file-type-iconauto-discovery
file-type-iconbeats-iam-policies
file-type-iconelastalert-iam-policies
file-type-iconelastalert-security-group-rules
file-type-iconelastalert
file-type-iconelasticsearch-cluster-backup
file-type-iconelasticsearch-cluster-restore
file-type-iconelasticsearch-cluster
file-type-iconelasticsearch-iam-policies
file-type-iconelasticsearch-security-group-rules
file-type-iconinstall-collectd
file-type-iconinstall-elastalert
file-type-iconinstall-elasticsearch
file-type-iconREADME.md
file-type-iconinstall.sh
file-type-iconinstall-filebeat
file-type-iconinstall-kibana
file-type-iconinstall-logstash
file-type-iconkibana-cluster
file-type-iconkibana-security-group-rules
file-type-iconload-balancer-alb-target-group
file-type-iconlogstash-cluster
file-type-iconlogstash-iam-policies
file-type-iconlogstash-security-group-rules
file-type-iconrun-collectd
file-type-iconrun-elastalert
file-type-iconrun-elasticsearch
file-type-iconrun-filebeat
file-type-iconrun-kibana
file-type-iconrun-logstash
file-type-icontest
file-type-icon.gitignore
file-type-iconCODEOWNERS
file-type-iconCONTRIBUTING.md
file-type-iconLICENSE.md
file-type-iconREADME.md

Browse the Repo

file-type-icon.circleci
file-type-icon_docs
file-type-iconexamples
file-type-iconmodules
file-type-iconauto-discovery
file-type-iconbeats-iam-policies
file-type-iconelastalert-iam-policies
file-type-iconelastalert-security-group-rules
file-type-iconelastalert
file-type-iconelasticsearch-cluster-backup
file-type-iconelasticsearch-cluster-restore
file-type-iconelasticsearch-cluster
file-type-iconelasticsearch-iam-policies
file-type-iconelasticsearch-security-group-rules
file-type-iconinstall-collectd
file-type-iconinstall-elastalert
file-type-iconinstall-elasticsearch
file-type-iconREADME.md
file-type-iconinstall.sh
file-type-iconinstall-filebeat
file-type-iconinstall-kibana
file-type-iconinstall-logstash
file-type-iconkibana-cluster
file-type-iconkibana-security-group-rules
file-type-iconload-balancer-alb-target-group
file-type-iconlogstash-cluster
file-type-iconlogstash-iam-policies
file-type-iconlogstash-security-group-rules
file-type-iconrun-collectd
file-type-iconrun-elastalert
file-type-iconrun-elasticsearch
file-type-iconrun-filebeat
file-type-iconrun-kibana
file-type-iconrun-logstash
file-type-icontest
file-type-icon.gitignore
file-type-iconCODEOWNERS
file-type-iconCONTRIBUTING.md
file-type-iconLICENSE.md
file-type-iconREADME.md
Elasticsearch (self-hosted)

Elasticsearch (self-hosted)

Deploy a self-hosted Elasticsearch cluster. Supports automatic bootstrap, zero-downtime rolling deployment, auto healing, backup, and recovery.

Code Preview

Preview the Code

mobile file icon

README.md

down

Elasticsearch Install Script

This script can be used to install Elasticsearch as well as Elasticsearch plugins.

This script has been tested on the following operating systems:

  • Ubuntu 16.04
  • Ubuntu 18.04
  • Amazon Linux 2
  • CentOS 7

There is a good chance it will work on other flavors of Debian, CentOS, and RHEL as well.

Quick start

This module depends on bash-commons, so you must install that project first as documented in its README.

The easiest way to use this module is with the Gruntwork Installer:

gruntwork-install \
  --module-name "install-elasticsearch" \
  --repo "https://github.com/gruntwork-io/package-elk" \
  --tag "<VERSION>"

Checkout the releases to find the latest version.

We recommend running the install-elasticsearch script as part of a Packer template to create an Elasticsearch Amazon Machine Image (AMI) (see the elasticsearch-ami example for fully-working sample code). You can then deploy the AMI across an Auto Scaling Group using the elasticsearch-cluster module (see the examples folder for fully-working sample code).

Command line Arguments

Run install-elasticsearch --help to see all available arguments.

Param Description Default
--version The version of Elasticsearch to install 6.8.3
--config-file Optional path to a templated Elasticsearcg config file (elasticsearch.yml). /tmp/config/elasticsearch.yml
--jvm-config-file Optional path to a templated JVM config file (jvm.options) /tmp/config/jvm.options
--plugin Optional name of Elasticsearch plugin to install. Can also specify absolute path like: "file:///tmp/plugin-X.Y.Z.zip". May be repeated
--plugin-config-dir Optional path to folder containing any extra plugin config files. All files from this folder will be moved to: /etc/elasticsearch

How it works

The install-elasticsearch script:

  • Installs Elasticsearch using the package manager for your OS (eg: apt or yum)

  • Optionally installs any plugins specified with the --plugin parameter.

  • TODO: ()The script doesn't actually do this yet!) Optimizes the system configuration for maximum Elasticsearch performance per official recommendations.

Questions? Ask away.

We're here to talk about our services, answer any questions, give advice, or just to chat.

Ready to hand off the Gruntwork?