etcd Metrics via Telegraf
Ship your etcd Metrics via Telegraf to your Logit.io Stack
Configure Telegraf to ship etcd metrics to your Logit.io stacks via Logstash.
Follow this step by step guide to get 'logs' from your system to Logit.io:
Step 1 - Install Telegraf
This integration allows you to configure a Telegraf agent to send your metrics, in multiple formats, to Logit.io.
Telegraf is a flexible server agent equipped with plug-in support, useful for sending metrics and events from data sources like web servers, APIs, application logs, and cloud services.
To ship your metrics to Logit.io, we will integrate the relevant input and outputs.http plug-in into your Telegraf configuration file.
Choose the install for your operating system below to get started:
Windows
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.19.2_windows_amd64.zip
Download and extract to: C:\Program Files\Logitio\telegraf\
Configuration file: C:\Program Files\Logitio\telegraf\
MacOS
brew install telegraf
Configuration file x86_64 Intel: /usr/local/etc/telegraf.conf
Configuration file ARM (Apple Silicon): /opt/homebrew/etc/telegraf.conf
Ubuntu/Debian
wget -q https://repos.influxdata.com/influxdata-archive_compat.key
echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
sudo apt-get update
sudo apt-get install telegraf
Configuration file: /etc/telegraf/telegraf.conf
RedHat and CentOS
cat <<EOF | sudo tee /etc/yum.repos.d/influxdata.repo
[influxdata]
name = InfluxData Repository - Stable
baseurl = https://repos.influxdata.com/stable/\$basearch/main
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdata-archive_compat.key
EOF
sudo yum install telegraf
Configuration file: /etc/telegraf/telegraf.conf
SLES & openSUSE
zypper ar -f obs://devel:languages:go/ go
zypper in telegraf
Configuration file: /etc/telegraf/telegraf.conf
FreeBSD/PC-BSD
sudo pkg install telegraf
Configuration file: /etc/telegraf/telegraf.conf
Step 2 - Configure the Telegraf input plugin
The configuration file below is pre-configured to scrape the system metrics from your hosts, add the following code to the configuration file /etc/telegraf/telegraf.conf
from the previous step.
# Read metrics from one or many prometheus clients
[[inputs.prometheus]]
## An array of urls to scrape metrics from.
urls = ["http://localhost:9100/metrics"]
## Metric version controls the mapping from Prometheus metrics into
## Telegraf metrics. When using the prometheus_client output, use the same
## value in both plugins to ensure metrics are round-tripped without
## modification.
##
## example: metric_version = 1;
## metric_version = 2; recommended version
# metric_version = 1
## Url tag name (tag containing scrapped url. optional, default is "url")
# url_tag = "url"
## Whether the timestamp of the scraped metrics will be ignored.
## If set to true, the gather time will be used.
# ignore_timestamp = false
## An array of Kubernetes services to scrape metrics from.
# kubernetes_services = ["http://my-service-dns.my-namespace:9100/metrics"]
## Kubernetes config file to create client from.
# kube_config = "/path/to/kubernetes.config"
## Scrape Kubernetes pods for the following prometheus annotations:
## - prometheus.io/scrape: Enable scraping for this pod
## - prometheus.io/scheme: If the metrics endpoint is secured then you will need to
## set this to 'https' & most likely set the tls config.
## - prometheus.io/path: If the metrics path is not /metrics, define it with this annotation.
## - prometheus.io/port: If port is not 9102 use this annotation
# monitor_kubernetes_pods = true
## Get the list of pods to scrape with either the scope of
## - cluster: the kubernetes watch api (default, no need to specify)
## - node: the local cadvisor api; for scalability. Note that the config node_ip or the environment variable NODE_IP must be set to the host IP.
# pod_scrape_scope = "cluster"
## Only for node scrape scope: node IP of the node that telegraf is running on.
## Either this config or the environment variable NODE_IP must be set.
# node_ip = "10.180.1.1"
## Only for node scrape scope: interval in seconds for how often to get updated pod list for scraping.
## Default is 60 seconds.
# pod_scrape_interval = 60
## Restricts Kubernetes monitoring to a single namespace
## ex: monitor_kubernetes_pods_namespace = "default"
# monitor_kubernetes_pods_namespace = ""
# label selector to target pods which have the label
# kubernetes_label_selector = "env=dev,app=nginx"
# field selector to target pods
# eg. To scrape pods on a specific node
# kubernetes_field_selector = "spec.nodeName=$HOSTNAME"
## Scrape Services available in Consul Catalog
# [inputs.prometheus.consul]
# enabled = true
# agent = "http://localhost:8500"
# query_interval = "5m"
# [[inputs.prometheus.consul.query]]
# name = "a service name"
# tag = "a service tag"
# url = 'http://\{\{if ne .ServiceAddress ""\}\}\{\{.ServiceAddress\}\}\{\{.Address\}\}:\{\{.ServicePort\}\}/\{\{.\}\}metrics'
# [inputs.prometheus.consul.query.tags]
# host = "\{\{.Node\}\}"
## Use bearer token for authorization. ('bearer_token' takes priority)
# bearer_token = "/path/to/bearer/token"
## OR
# bearer_token_string = "abc_123"
## HTTP Basic Authentication username and password. ('bearer_token' and
## 'bearer_token_string' take priority)
# username = ""
# password = ""
## Specify timeout duration for slower prometheus clients (default is 3s)
# response_timeout = "3s"
## Optional TLS Config
# tls_ca = /path/to/cafile
# tls_cert = /path/to/certfile
# tls_key = /path/to/keyfile
## Use TLS but skip chain & host verification
# insecure_skip_verify = false
Step 3 - Configure the output plugin
Once you have generated the configuration file, you need to set up the output plug-in to allow Telegraf to transmit your data to Logit.io in Prometheus format. This can be accomplished by incorporating the following code into your configuration file:
[[outputs.http]]
url = "https://<your-metrics-username>:<your-metrics-password>@<your-metrics-stack-id>-vm.logit.io:0/api/v1/write"
data_format = "prometheusremotewrite"
[outputs.http.headers]
Content-Type = "application/x-protobuf"
Content-Encoding = "snappy"
Step 4 - Start Telegraf
Windows
telegraf.exe --service start
MacOS
telegraf --config telegraf.conf
Linux
sudo service telegraf start
for systemd installations
systemctl start telegraf
Step 5 - View your metrics
Data should now have been sent to your Stack.
If you don't see metrics take a look at How to diagnose no data in Stack below for how to diagnose common issues.
Step 6 - How to diagnose no data in Stack
If you don't see data appearing in your Stack after following the steps, visit the Help Centre guide for steps to diagnose no data appearing in your Stack or Chat to support now.
Step 7 - Telegraf etcd metrics Overview
etcd is a crucial distributed key-value store that plays an essential role in maintaining the configuration data, state data, and metadata for distributed systems. To effectively monitor and analyze etcd metrics in a distributed environment, organizations need a reliable and efficient metrics management solution. Telegraf, an open-source metrics collection agent, is the ideal tool for gathering etcd metrics from multiple sources, including etcd instances, operating systems, databases, and applications.
With a wide range of input plugins, Telegraf enables organizations to collect diverse etcd metrics, including client traffic, server message counts, backend commit times, and more. These metrics provide valuable insights into the performance and health of etcd instances, enabling organizations to optimize their distributed storage infrastructure.
For storing and querying the collected etcd metrics, Prometheus, a robust open-source monitoring and alerting tool, is the preferred choice. Prometheus supports a flexible querying language and graphical visualization capabilities, enabling organizations to gain actionable insights. By configuring Telegraf to output etcd metrics in the Prometheus format and setting up Prometheus to scrape the metrics from the Telegraf server, seamless integration is achieved.
This process involves configuring Telegraf to collect etcd metrics, formatting them in the Prometheus format, and setting up Prometheus to scrape the metrics from the Telegraf server. Leveraging Prometheus's advanced querying and visualization features, organizations can gain deep insights into distributed key-value store performance, identify bottlenecks, and troubleshoot issues effectively.
By leveraging Telegraf to ship etcd metrics to Prometheus, organizations establish a reliable and efficient metrics management solution for their distributed environments. This empowers them to monitor etcd performance, optimize their distributed storage infrastructure, and make data-driven decisions to ensure optimal system health and performance.
If you need any further assistance with shipping your log data to Logit.io we're here to help you get started. Feel free to get in contact with our support team by sending us a message via live chat & we'll be happy to assist.