Compiler et installer InfluxDB sur le Raspberry Pi

Quand on parle base de données, peut être que vous êtes comme moi, vous pensez tout de suite SQLite, MySQL ou encore MariaDB. Pourtant il existe d’autres outils dont certains pourraient bien vous être utiles si vous devez enregistrer des données en provenance de capteurs ou autres sondes. InfluxDB pourrait bien être de ces bases qui vont vous faciliter la vie !

InfluxDB Raspberry Pi home Server

InfluxDB est une base de données dont le design est optimisé pour enregistrer des données depuis des capteurs, des métriques ou encore des événements. Chaque ligne enregistrée a une clé primaire qui est la date de l’événement. La base va pouvoir gérer de manière optimisée des millions de records sans avoir une baisse de performance.

Certaines fonctions inclues dans la base permettre d’agréger les données de manière très simple. Par exemple vous pouvez par exemple calculer directement dans la requête une moyenne par fenêtre de temps. L’exemple ci dessous va vous donner la valeur moyenne par fenêtre de 30 minutes sur la dernière journée :

select mean(value) from cpu_idle 
group by time(30m) where time > now() - 1d

InfluxDB Raspberry Pi home Server

Une fois installée, la base a une interface graphique intégrée qui permet de gérer les bases de données, les utilisateurs et d’explorer vos données sans avoir besoin d’un outil supplémentaire :

InfluxDB Raspberry Pi home Server

Vous trouverez toutes les informations sur la page décrivant InfluxDB.

  1. Définir les locales du système avec raspi-config par exemple.
  2. Installer les paquets nécessaires à la compilation
    apt-get install gawk mercurial bzr protobuf-compiler flex bison valgrind g++ make autoconf libtool libz-dev libbz2-dev curl rpm build-essential git wget libgflags-dev
  3. Installer GVM
    bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
  4. Initialiser les variables d’environnements de GVM
    source /root/.gvm/scripts/gvm
  5. Installer Go 1.3
    gvm install go1.3
  6. Mettre par défaut la version 1.3 de Go
    gvm use go1.3 --default
  7. Installer les plugins suivants
    go get code.google.com/p/goprotobuf/{proto,protoc-gen-go}
  8. Installer GCC 4.9:
    1. Modifier le fichier /etc/apt/sources.list en ajoutant le contenu

      deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi
      deb http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi
      # Source repository to add
      deb-src http://archive.raspbian.org/raspbian wheezy main contrib non-free rpi
      deb http://mirrordirector.raspbian.org/raspbian/ jessie main contrib non-free rpi
      deb http://archive.raspbian.org/raspbian jessie main contrib non-free rpi
      # Source repository to add
      deb-src http://archive.raspbian.org/raspbian jessie main contrib non-free rpi
    2. Modifier le fichier /etc/apt/preferences et insérer le contenu suivant
      Package: *
      Pin: release n=wheezy
      Pin-Priority: 900
      Package: *
      Pin: release n=jessie
      Pin-Priority: 300
      Package: *
      Pin: release o=Raspbian
      Pin-Priority: -10
    3. Mettre à jour les paquets
      apt-get update
    4. Installer gcc et g++
      apt-get install -t jessie gcc g++

      Source : http://somewideopenspace.wordpress.com/2014/02/28/gcc-4-8-on-raspberry-pi-wheezy/

  9. Augmenter la taille du filesystem monté sur /tmp en ajoutant la ligne suivante dans /etc/fstab
    tmpfs /tmp tmpfs defaults,noatime,nosuid,size=400m 0 0
  10. Redémarrer
    reboot
  11. Préparer la structure pour la compilation
    mkdir gocodez
    export GOPATH=$HOME/gocodez
    mkdir -p $GOPATH/src/github.com/influxdb
    cd $GOPATH/src/github.com/influxdb
    
  12. Télécharger la dernière version des sources
    wget http://s3.amazonaws.com/influxdb/influxdb-latest.src.tar.gz
  13. Décompresser l’archive et déplacer les sources
    mkdir influxdb
    cd influxdb
    tar zxvf ../influxdb-latest.src.tar.gz
    cp -R src/github.com/* $GOPATH/src/github.com/
    cd $GOPATH/src/github.com/influxdb/influxdb
  14. Démarrer la configuration
    ./configure
  15. Modifier le fichier Makefile pour que l’architecture soit arm. C’est la ligne 16 du fichier. Remplacer :
    arch   = amd64

    par

    arch   = arm
  16. Modifier le fichier Makefile pour désactiver RocksDB à la ligne 112. Remplacer :
    rocksdb = yes
    par
    rocksdb = no
  17. Modifier le fichier Makefile pour mettre en commentaire la ligne 233. Remplacer :
    $(GO) build -o benchmark-storage $(GO_BUILD_OPTIONS) github.com/influxdb/influxdb/tools/benchmark-storage
    par
    #$(GO) build -o benchmark-storage $(GO_BUILD_OPTIONS) github.com/influxdb/influxdb/tools/benchmark-storage
  18. Lancer la compilation
    make build
  19. Vous pouvez maintenant installer InfluxDB
    make install

Vous avez maintenant votre système prêt à être démarré. Pour cela vous pouvez retrouver sur cette page toutes les informations que vous pourrez suivre pour tester votre nouvelle base de données.

Si vous souhaitez construire le package Debian pour ensuite le déployer sur d’autres Raspberry :

  1. Installer Ruby
    apt-get install -t jessie ruby ruby-dev
  2. Installer FPM
    gem install fpm
  3. Installer le gestionnaire de paquets de Ruby RVM
    curl -L get.rvm.io | bash -s stable --rails
  4. Vous pouvez avoir une erreur sur la clé GPG
    gpg --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3

    puis relancer l’installation

    curl -L get.rvm.io | bash -s stable --rails
  5. Modifier le fichier Makefile pour définir la version en cours de compilation. Au moment de l’écriture, la version est la 0.8.6. Remplacer la ligne 265 :
    version=

    par

    version=0.8.6
  6. Modifier le fichier Makefile pour définir le nom des packages. Remplacer les lignes 294 et 295 :
    rpm_package = packages/influxdb-$(package_version)-1.armel.rpm
    debian_package = packages/influxdb_$(version)_armel.deb

    par

    rpm_package = packages/influxdb-$(package_version)-1.armhf.rpm
    debian_package = packages/influxdb_$(version)_armhf.deb
  7. Ajouter root dans le groupe rvm
    usermod -a -G rvm root
  8. Se déconnecter puis se reconnecter
  9. Initialiser GOPATH
    export GOPATH=$HOME/gocodez
    cd $GOPATH/src/github.com/influxdb
  10. Lancer la création du package
    make package
  11. Le paquet se trouvera dans le répertoire packages (ou out_rpm si le déplacement a échoué). Vous aurez alors un beau .deb à installer

Vous aimerez aussi...