Learn about the Wavefront Elasticsearch Integration.

Elasticsearch Integration

Elasticsearch is a distributed, RESTful search and analytics engine. This integration installs and configures Telegraf to send Elasticsearch metrics into Wavefront. Telegraf is a light-weight server process capable of collecting, processing, aggregating, and sending metrics to a Wavefront proxy.

In addition to setting up the metrics flow, this integration also installs a dashboard for monitoring an Elasticsearch cluster. Here’s a screenshot of that dashboard:

images/Elasticsearch_dashboard_screenshot.png

To see a list of the metrics for this integration, select the integration from https://github.com/influxdata/telegraf/tree/master/plugins/inputs.

Elasticsearch Setup

Note: If you use vRealize Operations, the application proxy agent sets up the integration for you. See the setup instructions. Otherwise, follow the setup steps on this page.

Step 1. Install the Telegraf Agent

This integration uses the Elasticsearch input plugin for Telegraf. If you’ve already installed Telegraf on your server(s), you can skip to Step 2.

Log in to your Wavefront instance and follow the instructions in the Setup tab to install Telegraf and a Wavefront proxy in your environment. If a proxy is already running in your environment, you can select that proxy and the Telegraf install command connects with that proxy. Sign up for a free trial to check it out!

Step 2. Configure Telegraf Elasticsearch Input Plugin

Create a file called elasticsearch.conf in /etc/telegraf/telegraf.d and enter the following snippet:

[[inputs.elasticsearch]]
#   ## Specify a list of one or more Elasticsearch servers
#   ## you can add username and password to your url to use basic authentication:
  servers = ["http://user:pass@localhost:9200"]
#
#   ## When local is true (the default), the node will read only its own stats.
#   ## Set local to false when you want to read the node stats from all nodes
#   ## of the cluster.
  local = false
#
#   ## Set cluster_health to true when you want to also obtain cluster health stats
  cluster_health = true
#
#   ## Set cluster_stats to true when you want to also obtain cluster stats from the
#   ## Master node.
  cluster_stats = true

Set local to false to configure Elasticsearch to return data for all nodes in the cluster. Also, the Wavefront Elasticsearch dashboard depends on metrics generated by the cluster_health and cluster_stats endpoints, so set those booleans to true as well.

Step 3. Configure Wavefront Telegraf Output Plugin

Edit the Wavefront plugin configuration file at /etc/telegraf/telegraf.d/10-wavefront.conf to append the following lines, which define a mapping from text metric values collected by Telegraf from the Elasticsearch cluster health API to numeric values that can be interpreted by Wavefront.

[[outputs.wavefront.string_to_number.elasticsearch]]
  green = 1.0
  yellow = 0.5
  red = 0.0

Step 4. Restart Telegraf

Run sudo service telegraf restart to restart your agent.