Instalasi Dan Konfigurasi Telegraf, Influxdb dan Grafana Sebagai Monitoring Tools Di Ubuntu 16.04 (Part 1)

Pada tulisan ini saya akan membahas mengenai instalasi dan konfigurasi salah satu stack monitoring yang saat ini cukup banyak digunakan yaitu TIG Stack, TIG sendiri merupakan singkatan dari Telegraf, Influxdb dan Grafana. Stack ini cukup mudah diinstall dan dikonfigurasi, dan selain itu cukup powerfull digunakan sebagai monitoring pada Infrastruktur yang kita miliki.

Cara kerja dari stack ini adalah Telegraf berfungsi untuk menarik metric-metric dari Server yang di monitoring lalu Influxdb merupakan time series database yang menyimpan hasil metric yang dikirim oleh telegraf dan hasil dari metric yang disimpan pada database influxdb tersebut dapat ditampilkan melalui dashboard yang kita buat pada Grafana.

Saat ini cukup dahulu untuk penjelasannya, langsung saja kita bahas langkah-langkah instalasinya:

Secara default Grafana berjalan pada port 3000, pada deployment ini kita akan menjalankan Grafana menggunakan Reverse Proxy Nginx pada port 443 dan menggunakan SSL Let’s Encrypt. UntukĀ  langkah instalasi Nginx dan Let’s Encrypt dapat diikuti pada tulisan ini .

Setelah selesai melakukan instalasi dan konfigurasi Nginx beserta Let’sEncrypt, saat ini kita akan melakukan instalasi Influxdb. Add repositori influxdb dari repository official lalu update repositori pada server dan install influxdb.

$ curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
$ source /etc/lsb-release
$ echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
$ sudo apt-get update 
$ sudo apt-get install influxdb
$ sudo service influxdb start

Selanjutnya kita lakukan konfigurasi Influxdb yang sudah kita install sebelumnya, konfigurasi yang kita akan lakukan adalah membuat database baru serta user untuk login ke database yang sudah dibuat sebelumnya. Jalankan command berikut untuk masuk ke console database influx

$ influx

Lalu buat database baru lalu buat juga user serta konfigurasi juga hak akses ke database yang sudah dibuat.

CREATE DATABASE telegraf
SHOW DATABASES
CREATE USER telegraf WITH PASSWORD 'superpa$$word'
GRANT ALL ON telegraf TO telegraf
SHOW USERS;

Setelah itu set retention data yang ditulis ke database untuk menyimpan data selama 30 hari terakhir.

CREATE RETENTION POLICY thirty_days ON telegraf DURATION 30d REPLICATION 1 DEFAULT
SHOW RETENTION POLICIES ON telegraf

Selanjutnya kita berlanjut ke instalasi telegraf, pertama-tama add repository telegraf terlebih dahulu lalu berlanjut ke update repository dan install telegraf.

$ curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -
$ source /etc/lsb-release
$ echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
$ sudo apt-get update
$ sudo apt-get install telegraf
$ sudo service telegraf start

Selanjutnya edit file konfigurasi telegraf, namun sebelum itu backup terlebih dahulu file konfigurasinya.

$ mv /etc/telegraf/telegraf.conf /etc/telegraf/telegraf.conf.orig

Buat file konfigurasi baru

$ nano /etc/telegraf/telegraf.conf

Lalu masukkan parameter berikut di file konfigurasi

[agent]
  hostname = "grafana"
  flush_interval = "15s"
  interval = "15s"
 
[[inputs.cpu]]
  percpu = true
  totalcpu = true
  fielddrop = ["time_*"]
[[inputs.disk]]
  mount_points = ["/"]
[[inputs.diskio]]
[[inputs.kernel]]
[[inputs.mem]]
[[inputs.processes]]
[[inputs.swap]]
[[inputs.system]]
[[inputs.net]]
  interfaces=["ens160"]
 
[[outputs.influxdb]]
  database = "telegraf"
  urls = [ "http://127.0.0.1:8086" ]
  username = "telegraf"
  password = "pa$$word"

Setelah selesai melakukan kofigurasi telegraf lakukan restart pada service telegraf.

$ service telegraf restart

Untuk mengecek apakah ada metric yang ditulis ke database, cek ke database telegraf dengan command berikut

$ influx
use telegraf
SELECT * FROM processes LIMIT 5

Untuk mengecek metric yang di grep oleh telegraf jalankan command berikut:

$ telegraf -test -config /etc/telegraf/telegraf.conf

Selanjutnya kita melakukan instalasi Grafana, pertama-tama add dahulu repository official grafana lalu update dan install grafana.

$ echo "deb https://packagecloud.io/grafana/stable/debian/ stretch main" >> /etc/apt/sources.list.d/grafana.list
$ curl https://packagecloud.io/gpg.key | sudo apt-key add -
$ apt-get install apt-transport-https
$ apt-get update
$ apt-get install grafana

Selanjutnya kita akan mengedit beberapa parameter pada file konfigurasi grafana. Jalankan command berikut untuk mengedit file konfigurasi grafana.

$ nano /etc/grafana/grafana.ini

Lalu edit beberapa parameter berikut dan hilangkan tanda ; agar konfigurasi yang dilakukan dapat dibaca perubahannya.

# The public facing domain name used to access grafana from a browser
domain = monitoring.linuxnoobs.xyz
# The full public facing url you use in browser, used for redirects and emails
# If you use reverse proxy and sub path specify full url (with sub path)
root_url = https://monitoring.linuxnoobs.xyz

Setelah itu restart service grafana agar konfigurasi yang kita lakukan dapat ter-apply perubahannya.

$ /etc/init.d/grafana-server restart

Dikarenakan kita akan menggunakan nginx sebagai reverse proxy untuk mengakses grafana melalui https di port 443 lakukan konfigurasi pada file konfigurasi Nginx.

$ sudo nano /etc/nginx/sites-available/default

Ubah parameter berikut

...
    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }
...

menjadi

...
    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
...

Setelah itu save dan exit. Lalu jalankan command berikut untuk mengecek apakah ada error syntax pada nginx dan restart service nginx agar kofigurasi terakhir kita dijalankan oleh Nginx.

sudo nginx -t
sudo systemctl reload nginx

Selanjutnya coba tes di browser untuk mengakses grafana dashboard. Coba login menggunakan credential berikut
Username: admin
Password : admin

Untuk langkah instalasi dan konfigurasi sudah selesai, dan pada tulisan berikutnya saya akan menjelaskan langkah-langkah untuk menambahkan dashboard dan menampilkan metric dari host yang dimonitoring.

Author: Andreas Eko Widodo

A Linux Technology Enthusiast, Amateur Blog Writer, Amateur System and DevOps Engineer.

Please follow and like us: