Consul is a multi-component tool for discovering and configuring services in your infrastructure. It is designed to be friendly to both the DevOps community and application developers.
Telegraf Input Plugin: Consul
The Consul Telegraf plugin will collect statistics about all health checks registered in the Consul. It uses the Consul API to query the data. It will not report the telemetry but Consul can report those stats already using StatsD protocol if needed and AWS Monitoring Tools.
Consul is a distributed, highly available system:
- Every node that provides services to Consul runs a Consul agent. Running an agent is not required for discovering other services or getting/setting key/value data. The agent is responsible for health checking the services on the node as well as the node itself.
- The agents talk to one or more Consul servers. The Consul servers are where data is stored and replicated. The servers themselves elect a leader.
- While Consul can function with one server, 3 to 5 is recommended to avoid failure scenarios leading to data loss. A cluster of Consul servers is recommended for each datacenter.
Consul provides several key features:
- Service Discovery: Consul makes it simple for services to register themselves and to discover other services via a DNS or HTTP interface.
- Health Checking: Pairing service discovery with health checking prevents routing requests to unhealthy hosts and enables services to easily provide circuit breakers.
- KV Store: Consul offers flexible key/value store for dynamic configuration, feature flagging, coordination, leader election and more.
- Multi Datacenter: Consul scales to multiple datacenters out of the box with no complicated configuration. Look up services in other datacenters, or keep the request local.
The problems Consul solves are varied, but each individual feature has been solved by many different systems. Although there is no single system that provides all the features of Consul, there are other options available to solve some of these problems.