In this guide we are going to learn how to install Telegraf and configure InfluxDB v2 output on a Debian 11.
Telegraf is a plugin-driven server agent for collecting & reporting metrics, and is the first piece of the TICK stack. Telegraf has plugins to source a variety of metrics directly from the system it’s running on, pull metrics from third-party APIs, or even listen for metrics via a statsd and Kafka consumer services. It also has output plugins to send metrics to a variety of other datastores, services, and message queues, including InfluxDB, Graphite, OpenTSDB, Datadog, Librato, Kafka, MQTT, NSQ, and many others.
Key features
Here are some of the features that Telegraf currently supports that make it a great choice for metrics collection.
- Written entirely in Go. It compiles into a single binary with no external dependencies.
- Minimal memory footprint.
- Plugin system allows new inputs and outputs to be easily added.
- A wide number of plugins for many popular services already exist for well known services and APIs.
Also check
- How to Install and Configure InfluxDB2 in Debian 11
- How to Install Telegraf Configure InfluxDB2 output in Rocky Linux/CentOS 8
- How to install and configure Grafana OSS in Debian 11
- How to Install Telegraf Configure InfluxDB2 output in Rocky Linux/CentOS 8
- How to Install & Configure InfluxDB2 in Rocky Linux/CentOS 8
- How to install and configure Grafana in Rocky Linux/Centos 8
- Installing and setting up Grafana in linux
- Monitor Multiple Servers With Grafana, Influxdb & Telegraf
Table of Content
- Esuring the server is up to date
- Installing Telegraf
- Starting and enabling Telegraf Service
- Configuring Telegraf output to InfluxDB
1. Esuring the server is up to date
Before proceeding let us ensure that our server packages are updated. Use this command to achieve this
sudo apt update
sudo apt -y upgrade
2. Installing Telegraf
Telegraf is not available in default Debian 11 repos. Influxdata the company behind Telegraf and InfluxDB provides an rpm package that can be downloaded from it’s site.
Download the packagee
curl -LO -C - https://dl.influxdata.com/telegraf/releases/telegraf_1.20.4-1_amd64.deb
Now install the downloaded package:
sudo dpkg -i telegraf_1.20.4-1_amd64.deb
Confirm that the package was installed successfully
$ apt-cache policy telegraf
telegraf:
Installed: 1.20.4-1
Candidate: 1.20.4-1
Version table:
*** 1.20.4-1 500
500 https://repos.influxdata.com/debian bullseye/stable amd64 Packages
100 /var/lib/dpkg/status
Telegraf is now installed in the system.
3. Starting and enabling the InfluxDB Service
Once the installation is done, we need to start the service. In Debian 11, the service is started by default. Confirm that the service was started successfully using this command:
$ sudo systemctl status telegraf
● telegraf.service - The plugin-driven server agent for reporting metrics into InfluxDB
Loaded: loaded (/lib/systemd/system/telegraf.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-12-07 07:52:35 UTC; 2min 29s ago
Docs: https://github.com/influxdata/telegraf
Main PID: 25143 (telegraf)
Tasks: 8 (limit: 4626)
Memory: 43.4M
CPU: 345ms
CGroup: /system.slice/telegraf.service
└─25143 /usr/bin/telegraf -config /etc/telegraf/telegraf.conf -config-directory /etc/telegraf/telegraf.d
Dec 07 07:53:25 ip-10-2-40-122 telegraf[25143]: 2021-12-07T07:53:25Z E! [outputs.influxdb] E! [outputs.influxdb] Failed to write metric (will be dropped: 401 Unauthorized):
Dec 07 07:53:35 ip-10-2-40-122 telegraf[25143]: 2021-12-07T07:53:35Z E! [outputs.influxdb] E! [outputs.influxdb] Failed to write metric (will be dropped: 401 Unauthorized):
Dec 07 07:53:45 ip-10-2-40-122 telegraf[25143]: 2021-12-07T07:53:45Z E! [outputs.influxdb] E! [outputs.influxdb] Failed to write metric (will be dropped: 401 Unauthorized):
Dec 07 07:53:55 ip-10-2-40-122 telegraf[25143]: 2021-12-07T07:53:55Z E! [outputs.influxdb] E! [outputs.influxdb] Failed to write metric (will be dropped: 401 Unauthorized):
Dec 07 07:54:05 ip-10-2-40-122 telegraf[25143]: 2021-12-07T07:54:05Z E! [outputs.influxdb] E! [outputs.influxdb] Failed to write metric (will be dropped: 401 Unauthorized):
Dec 07 07:54:15 ip-10-2-40-122 telegraf[25143]: 2021-12-07T07:54:15Z E! [outputs.influxdb] E! [outputs.influxdb] Failed to write metric (will be dropped: 401 Unauthorized):
Dec 07 07:54:25 ip-10-2-40-122 telegraf[25143]: 2021-12-07T07:54:25Z E! [outputs.influxdb] E! [outputs.influxdb] Failed to write metric (will be dropped: 401 Unauthorized):
Dec 07 07:54:35 ip-10-2-40-122 telegraf[25143]: 2021-12-07T07:54:35Z E! [outputs.influxdb] E! [outputs.influxdb] Failed to write metric (will be dropped: 401 Unauthorized):
Dec 07 07:54:45 ip-10-2-40-122 telegraf[25143]: 2021-12-07T07:54:45Z E! [outputs.influxdb] E! [outputs.influxdb] Failed to write metric (will be dropped: 401 Unauthorized):
Dec 07 07:54:55 ip-10-2-40-122 telegraf[25143]: 2021-12-07T07:54:55Z E! [outputs.influxdb] E! [outputs.influxdb] Failed to write metric (will be dropped: 401 Unauthorized):
The Active: active (running)
in the output confirms that the service was started successfully.
To enable the service to start on boot, use this command:
sudo systemctl enable telegraf
4. Configuring Telegraf output to InfluxDB
For this to work we need to have InfluxDB up and running on a server reeachable. If you don’t yet have influxdb installed, check out this guide here.
Creating influxdb bucket and user
Once Influx DB is setup and installed, please add a telegraf user that will be used to send the data. The following operations are performed on a system authorized to access influxdb.
Create bucket for telegraf with data retention for 6 months (4380h).
$ influx bucket create --org citizix --name telegraf --retention 4380h
ID Name Retention Shard group duration Organization ID Schema Type
3230c5ca8153dcd8 telegraf 4380h0m0s 168h0m0s 9d8c5d7565722d99 implicit
Then create a telegraf user
$ influx user create --name telegraf --org citizix --password SecretP4ss!
ID Name
088aa327efb63000 telegraf
Then authorizations are defined for the user, in the example below, the user telegraf
is allowed to read and writes in its organization buckets
$ influx auth create --user telegraf --read-buckets --write-buckets
ID Description Token User Name User ID Permissions
088aa43d6c363000 52_9XBWNnygV2F_6axNezT5Xr-pkW4SX6xktLlfC5IQZxo4twvvj3B1W7nwU6FNcq0p7eE47NOD6rbGn6yyGGg== telegraf 088aa327efb63000 [read:orgs/9d8c5d7565722d99/buckets write:orgs/9d8c5d7565722d99/buckets]
Configuring Telegraf to send data
The telegraf config file is located in this path /etc/telegraf/telegraf.conf
. Open the config file using your text editor
sudo vim /etc/telegraf/telegraf.conf
Comment out everything in the section [[outputs.influxdb]]
and add this:
[[outputs.influxdb_v2]]
urls = ["http://127.0.0.1:8086"]
token = Auth token here"
organization = "citizix"
bucket = "telegraf"
Save and exit the file. Then restart telegraf
sudo systemctl restart telegraf
Now the data is being sent to InfluxDB
Conclusion
In this guide we installed Telegraf and configured InfluxDB v2 output on a Debian 11 system.