CransWiki:

Grafana

/!\ Cette page n'est plus du tout à jour. Collectd a été une mauvaise expérience et aujourd'hui on utilise plutôt du Prometheus. Voir CransTechnique/ServicesMineurs/Grafana.

A quoi que ça sert ?

C'est une jolie interface web pour monitorer les serveurs (et bientot les bornes wifi) et tracer des graphes.
Il tourne actuellement sur fy.
On peut lui feed les données via différents softs, actuellement on utilise un serveur graphite et des clients collectd.

Installation et configuration

Server side

Graphite (carbon)

Installation :

Configuration

Graphite-api

Installation :

Configuration :
  • Configuration de graphite-api (dans /etc/graphite-api.yaml)
  • finder:
        - graphite_api.finders.whisper.WhisperFinder
    functions:
        - graphite_api.functions.SeriesFunctions
        - graphite_api.functions.PieFunctions
    whisper:
      directories:
        - /var/lib/graphite/whisper
    carbon:
      hosts:
        - 127.0.0.1:7002
      timeout: 1
      carbon_prefix: carbon
      replication_factor: 1
  • go voir sur http://graphite-api.readthedocs.io/en/latest/configuration.html (j'ai pas compris ce que j'ai fait là)

  • /!\ par défaut le search index n'est pas crée, par défaut c'est /srv/graphite/index.

  • On le crée avec :
  • sudo mkdir /srv/graphite
    sudo touch /srv/graphite/index 
  • Ensuite on configure uwsgi pour servir graphite-api à nginx (dans /etc/uwsgi/apps-available/graphite-api.ini)
  • [uwsgi]
    processes = 2
    socket = localhost:8888 
    plugins = python3
    module = graphite_api.app:app
  • On active graphite-api :
  •  ln -s /etc/uwsgi/apps-available/graphite-api.ini /etc/uwsgi/apps-enabled 

  • On redémarre le service uWSGI :
  •  sudo systemctl restart uwsgi 

  • Enfin, on configure le vhost dans nginx (dans /etc/nginx/sites-available/graphite.conf) :
  • server {
        listen localhost:8083;
    
        location / {
            include uwsgi_params;
            uwsgi_pass localhost:8888;
        }
    }
     
  • On active le vhost :
  •  ln -s /etc/nginx/sites-available/graphite.conf /etc/nginx/sites-enabled 

  • On redémarre le service uWSGI :
  •  sudo systemctl restart nginx.service 

Grafana

Installation :
  • On ajoute le dépôt de grafana dans /etc/apt/sources.list.d/grafana.list :
  •  deb https://packagecloud.io/grafana/stable/debian/ jessie main 

  • On ajoute la clé de packagecloud.io à apt :
  •  curl https://packagecloud.io/gpg.key | sudo apt-key add - 

  • Le paquet s'appelle grafana :
  •  sudo apt-get install grafana 

Configuration :
  • Sur le serveur postgresql :
  • On crée un utilisateur graphite et une base de donnée grafana (dont graphite est owner).
  • Dans /etc/grafana/grafana.ini on peut éditer les lignes suivantes :
  •    1 # pour l'instant c'est du http (c'est pas bieeeen)
       2 ;cert_file =
       3 ;cert_key = 
       4  
       5 # The ip address to bind to, empty will bind to all interfaces                                                                         |
       6 http_addr = fy.adm.crans.org 
       7 
       8 protocol = http
       9 http_port = 8084 #en vrai on met ce qu'on veut ici
      10 
      11 [...]
      12 
      13 [database]
      14 # Either "mysql", "postgres" or "sqlite3", it's your choice
      15 type = postgres
      16 host = pgsql.adm.crans.org
      17 name = grafana
      18 user = graphite
      19 password = graphite_password
    
  • On permet à grafana de se lancer sur tous les ports :
  •  sudo setcap 'cap_net_bind_service=+ep' /usr/sbin/grafana-server }

  • On fait en sorte qu'il se lance au boot :
  •  sudo update-rc.d grafana-server defaults 95 10 

  • On démarre grafana-server :
  •  sudo service grafana-server start 

  • On peut alors se connecter sur $server_name:8084

Client side

Collectd

Sources

https://community.rackspace.com/products/f/25/t/6800

http://graphite-api.readthedocs.io/en/latest/index.html

CransWiki: CransTechnique/AdminSystème/Grafana (dernière édition le 2019-04-25 13:50:14 par WikiErdnaxe)