In this article, we’re going to look at how to Monitor a Linux System with Grafana and Telegraf. Telegraf metrics will be stored on InfluxDB, then we can visualize them on Grafana using a system dashboard.
A prerequisite for this setup is a Linux system and InfluxDB server. You can check our previous guides on:
On the same guide, we defined what telegraf and InfluxDB are before demonstrating the installation steps.
Installing Telegraf on CentOS 7
Influxdata provides the repository for installing telegraf on CentOS 7. To add the repository to your system, use the commands:
sudo vim /etc/yum.repos.d/influxdb.repo
Add the following content:
[influxdb] name = InfluxDB Repository - RHEL $releasever baseurl = https://repos.influxdata.com/rhel/$releasever/$basearch/stable enabled = 1 gpgcheck = 1 gpgkey = https://repos.influxdata.com/influxdb.key
Update cache to confirm that the repository is working fine:
sudo yum makecache fast
Then install telegraf:
sudo yum -y install telegraf
Installing Telegraf on Ubuntu 18.04 / Debian 9
For a Debian 9 and Ubuntu 18.04, install telegraf using:
Configure telegraf on Linux
A basic telegraf configuration with InfluxDB output and basic inputs to collect system metrics can look like below:
For a comprehensive list of inputs supported by Telegraf, visit Telegraf inputs Github page.
server-hostname with your valid hostname.
http://influxdb-ip:8086 with your valid InfluxDB URL, IP address, and port.
database-name with InfluxDB database name for this host
auth-username with InfluxDB http authentication username.
auth-password with InfluxDB http authentication password.
Once all changes have been made, you can then start and enable the telegraf service:
sudo systemctl start telegraf && systemctl enable telegraf
This will automatically create the InfluxDB database if it doesn’t exist.
Add an InfluxDB data source to Grafana
You need to have Grafana installed, you can follow:
Before you can add a dashboard to Grafana for Telegraf system metrics, you need to first import the data source. Login to your Grafana and go to Configuration > Data Sources > Add data source
Provide the following details:
- Name – Any valid name
- Type: InfluxDB
- HTTP URL: InfluxDB URL address e.g http://localhost:8086 for local db server
Under InfluxDB Details, provide:
- Database name as defined on telegraf configuration file
- HTTP authentication username and password as configured on telegraf.
Importing Grafana Dashboard
Once the data source has been added, the next thing is to import the dashboard. I customized one of the dashboards initially created by a user on the community and uploaded it.
Download the dashboard from https://grafana.com/dashboards/5955, it is in JSON format. The head over to Grafana > Import
Select Upload .json and upload downloaded file. Alternatively, you can use Grafana dashboard URL or ID – 5955. Under Options section, give it a unique name and select data source added earlier from the drop-down menu and click the import button.
You should see Metrics being visualized immediately.