supervision:graphite-carbon

Présentation

Le collecteur de métrique est un démon, il s'agit de carbon. Il est prévu avec un système de cache, et de relais, pour être mis à l'échelle au besoin.

Par défaut il écoute sur le port 2003 en TCP.

L'idée du protocole utilisé ce veut la plus simple possible:

nom.de.la.metrique valeur date

N'importe quel programme qui peut envoyer ce texte vers carbon peut donc participer à la collecte des métriques.

Les métriques sont ensuite stockées dans la base de données de type round-robin (RRD) appelée whisper. Pour une métrique plateforme.serveur.metrique.1 la base créera un chemin sur le système de fichier équivalent (plateforme/serveur/metrique/1.wsp).

Il est important de bien choisir la granularité des données à conserver et sur quel interval.

Architecture simple

Dans l'ordre:

  1. Des métriques sont collectées sur les serveurs via collectd
  2. collectd les met à disposition via un plug network
  3. bucky interroge ce plugin pour récuperer les stats, formate le nom des métriques et les envoye à carbon
  4. carbon reçoit les données, et les stock dans whisper
  5. graphite est la partie frontend web pour faire les graphiques

Installation des paquets

Pour la partie carbon/whisper

yum install python-carbon python-whisper

Pour la partie graphite:

yum install graphite-web

Configuration

La partie graphite-web a besoin de stocker quelques données, principalement des paramètres liés au préférences des utilisateurs, sessions, etc dans une base de données classique. Il est tout à fait possible de rester sur du sqlite pour cette partie, ou du MySQL ou autre, mais il faut penser du coup à installer les dépendances nécessaires pour que python puisse s'y connecter.

yum install MySQL-Python

Le fichier de configuration est /etc/graphite-web/local_settings.py et voici un exemple de configuration d'une connexion à un serveur MySQL:

DATABASES = {
'default': {
  'NAME': 'graphite',\

  'ENGINE': 'django.db.backends.mysql',\

  'USER': 'graphite',\

  'PASSWORD': 'graphite',\

  'HOST': 'localhost',\

  'PORT': '3306',\

  }
}

Il faut bien sûr créer la base et l'utilisateur en question.

Pour peupler la base:

cd /usr/lib/python2.6/site-packages/graphite ; ./manage.py syncdb

Selinux

Par défaut Apache qui execute le moteur graphite-web doit lire les fichier carbon/whisper. Il faut donc changer le label par défaut de ces fichiers :

semanage fcontext -a -t httpd_sys_content_t '/srv/carbon(/.*)?'

Sans cela il y aura des erreurs SeLinux et graphite-web ne pourra lire les métriques.

  • supervision/graphite-carbon.txt
  • Dernière modification : 2021/07/30 09:13
  • de madko