Utilizare Grafana ca interfata pentru Graphite
Postat la Tue 25 September 2018 in proiecte
In ultimii ani Graphite a fost utilizat cu success de multe firme pentru stocarea si vizualiza metricilor culese de la echipamente sau aplicatii.
Utilizatorii si-au dorit o interfata mai moderna, mai usor de utilizat si navigat in comparatie cu interfata standard Graphite scrisa in Django.
Ca raspuns la aceste cerinte exprimate in comuninate a aparut proiectul Grafana care: - pemite o mai usoara generare a graficelor in mai multe moduri, - creare de dashboard-uri facil folosind sabloane si variabile, - alertarea in functie de reguli prestabilite a utilizatorilor pe o multime de cai: Email, Slack, Webhook - permite distribuirea lor facila
Pe langa Graphite , Grafana permite preluarea datelor din peste 30 de surse de date ca InfluxDB, Prometheus, Elasticsearch, AWS nativ sau prin plugin-uri (pe care le gasiti pe pe site-ul aplicatiei)
Instalarea pe CentOS/Fedora
Creem fisierul de repo /etc/yum.repos.d/grafana.repo:
[grafana]
name=grafana
baseurl=https://packagecloud.io/grafana/stable/el/7/$basearch
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packagecloud.io/gpg.key https://grafanarel.s3.amazonaws.com/RPM-GPG-KEY-grafana
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
Instalam pachetul
yum install grafana
Instalarea pe Ubuntu
Creem un fisier pentru configurarea repo-ului in /etc/apt/sources.list.d/grafana
deb https://packagecloud.io/grafana/stable/debian/ stretch main
Adaugam cheia pentru verificarea semnaturii pachetelor:
curl https://packagecloud.io/gpg.key | sudo apt-key add -
Instalam aplicatia:
sudo apt update
sudo apt install grafana
Configurare
Implicit Grafana foloseste pe Sqlite3 pentru stocarea informatiilor intr-un fisier, dar eu va recomand sa utilizati salvarea datelor intr-o baza de date (MySQL, Postgress). Pentru MySQL parcurgem pasii:
In MySQL creem un utilzator si o baza de date dedicata:
create database grafana;
create user grafana;
grant all on grafana.* to 'graphite'@'localhost' identified by 'grafanasecret';
flush privileges;
In fisierul /etc/grafana/grafana.ini facem modificarile:
[database]
# Either "mysql", "postgres" or "sqlite3", it's your choice
type = mysql
host = 127.0.0.1:3306
name = grafana
user = grafana
password = grafanasecret
Alte setari legate de adresa, portul pe care va rula aplicatia (implicit 3000) cat si legate de securitate le puteti seta in acelasi fisier.
Pornim serviciul grafana-server:
systemctl daemon-reload
systemctl enable grafana-server
systemctl start grafana-server
Pentru prima logare ca administrator utilizati userul si parola admin (ori ce ati configurat in fisierul de setari).
Configuram in setari Graphite ca sursa de date:

Crearea graficelor
Creem un nou dashboard si selectam Graph

Tinand cont de structura dub care sunt salvate metricele in Graphite, selectam metricele dorite la care putem aplica functii de transforma: alias, sum, max. (mai multe gasiti in documentatia de la Graphite aici)

Putem creea alerte pentru metricile din graficelor. Alertele pot fi trimise pe email, Slack (nu uitati sa configurati aceste servicii).

Grafic cu grafic putem construi dashboard-uri ce pot oferi informatii live asupra uni server sau mai multe servere.


Alternativ puteti importa o varietate mare de dashboard-uri create de comunitate direct de pe site