Spécificités d'une migration sur un cluster Graphite

Dans un cluster Graphite, Shinken va uniquement dialoguer avec le daemon carbon-relay qui :

  • transmet les métriques à écrire vers les carbon-cache sur les serveurs de stockages
  • relaie les requêtes de lectures vers les serveurs Apache des serveurs de stockages

Dans le cas de la migration des données entre la version 02.04.00 et 02.05.00 ( changement des noms vers des UUIDs ) l'application carbon-relay est incapable de faire la migration car les données sont stockées sur d'autres serveurs.

Pour la migration, nous allons diriger Shinken directement vers un des serveurs de stockages, et une fois la migration effectuée, on synchronisera les données avec le serveur de stockage secondaire.

Procédure de migration


La procédure de migration des données est:

  • Vérifier que tous les serveurs sont à jour et en ntp
    • /etc/init.d/ntp stop
    • /etc/init.d/ntpdate start
    • /etc/init.d/ntp start

  • Stopper le carbon-relay
    • /etc/init.d/carbon-relay stop

  • Changer la configuration du module graphite ( /etc/shinken/modules/graphite.cfg ) afin qu'il pointe vers le premier serveur de stockage:
    • changer le port vers celui de carbon-cache ( 2003 par défaut )
    • changer l’adresse

  • Stopper selinux sur l'ensemble des serveurs 
    • nous livrons des règles SeLinux pour apache et le chemin standard de Graphite, mais si vous avez redirigés les données ailleurs, SeLinux bloquera la migration faite par Apache
    • setenforce 0

  • Vérifier que le virtual serveur Graphite dans Apache écoute bien sur toutes les interfaces
    • dans le fichier /etc/httpd/conf.d/graphite.conf
    • Vérifier que vous avez <VirtualHost *:80>

  • Lancer la mise à jour V02.05.00 sur les serveurs de stockages

  • Lancer la mise à jour V02.05.00 sur le serveur central shinken qu'après ( IMPORTANT: car il va lancer la migration des données dès son lancement à la fin de la mise à jour )
    • vérifier dans le fichier brokerd.log que la migration s'est bien déroulée grâce à la présence des lignes suivantes:
      • The graphite did migrate from name to uuids %d directories on a total of %d directories to uuids ( avec le nombre d'hôtes + checks qui ont des métriques )
        All metrics UUID paths are checked and are in the uuid format on the graphite server
    • vérifier sur le serveur de stockage que la migration est bien effective ( modulo les anciens métriques, cf mon message précédent )
      • Notez que si vous avez de vieux checks qui ne sont plus dans la configuration, ils ne seront pas migrés, tous les autres seront en uuids concernant les répertoires d'hôtes et de checks, les noms de métriques étant inchangés.

  • Effacer les données sur le serveurs secondaire et copier les données ( en gardant les droits ) du serveur de stockage 1 vers le serveur 2.


  • Vérifier que la configuration du lien vers les serveurs d'inventaire est OK sur les serveurs de stockages
    • La modification se fait dans le fichier /opt/graphite/conf/shinken_inventory.conf et doit pointer vers le module de métrologie qui alimentent ce serveur ( il contient la correspondance entre les noms et les UUIDs  - voir la page Base de métrologie ( Graphite ) section Correspondance ID → Nom de l'élément  )

  • Sur votre serveur relay, vérifier que le paramétrage pour requêter les données est valide :
    • le fichier /opt/graphite/conf/relay-rules.conf contient la liste de vos serveurs carbon-cache ( instance graphite stockant les données ), 
      • Les informations de ce fichier seront également utilisés pour la consultation des métriques ( requête des données sur le carbon-relay ).

      • Si vos serveurs graphite ( le démon apache ) écoutent sur le port 80 ( par défaut ), vous n'avez rien à faire. Les adresses IP sont lu depuis la clef destinations ( destinations = 192.168.56.103:2004, 192.168.56.104:2004 ) et le port est ignoré.
      • sinon vous pouvez rajouter une clé read_destinations qui liste directement les adresses ( host:port ) de vos serveurs httpd sans prendre en compte la clé destinations:
        • par exemple:
          • read_destinations = 192.168.56.103:8080, 192.168.56.104:8080
    • puis relancer le serveur httpd sur le serveur de stockage

  • Modifier la configuration du module graphite ( /etc/shinken/modules/graphite.cfg ) et le refaire pointer vers le carbon-relay
    • changer le port vers celui du carbon-relay ( 2013 par défaut )
    • changer l’adresse

  • Relancer carbon-relay
    • /etc/init.d/carbon-relay start

  • Relancer Shinken
    • /etc/init.d/shinken restart

  • Vérifier que les courbes sont bien disponibles dans l'interface de visualisation

  • Vérifier Grafana si vous en avez installé un