Crans
  • Commentaires
  • Page immuable
  • Menu
    • Affichage
    • Carte locale du site
    • Pièces jointes
    • Informations
    • Code source
  • Connexion

Navigation

  • Modifications récentes
  • Recherche avancée
  • Aide
Version 7 à la date du 2017-05-01 00:57:38
CransWiki:
  • CransTechnique
  • AdminSystème
  • Grafana

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 :
  • On installe le paquet graphite-carbon (il est dans les dépôts officiels debian)
  •  sudo apt-get install graphite-carbon 

Configuration
  • par défaut il écoute sur localhost:2013 et accepte les query sur localhost:7002 (on peut éditer dans /etc/carbon/carbon.conf)

  • On copie le fichier de config par défaut pour l'aggrégation :
  •  sudo cp /usr/share/doc/graphite-carbon/examples/storage-aggregation.conf.example /etc/carbon/storage-aggregation.conf 

  • On autorise le lancement de carbon dans /etc/default/graphite-carbon :
  •  CARBON_CACHE_ENABLED=true 

  • On démarre le daemon :
  •  sudo systemctl start carbon-cache.service 

  • /!\ Il faudra le relancer à chaque fois qu'on ajoute une node collectd

Graphite-api

Installation :
  • Il ne se trouve dans les dépôts officiels debian que depuis stretch.
  • il faut donc piner le paquet depuis stretch
  • On ajoute les sources stretch et on met le pine suivant dans /etc/apt/preferences.d/stretch :

  • Package: graphite-api
    Pin: release n=stretch
    Pin-Priority: 500
    
    Package: *
    Pin: release n=stretch
    Pin-Priority: 1
  • Une fois ça fait on installe graphite-api, uwsgi et son plugin python 3

  •  sudo apt install graphite-api uwsgi uwsgi-lpugin-python3 

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

  • Propulsé par MoinMoin
  • Mentions légales