Vous êtes ici

Installer Opentsdb + grafana + tcollector

Nous allons voir dans cet article comment installer opentsdb, grafana et tcollector. Opentsdb est une base de données basée sur le temps qui va nous permettre de collecter des données en provenance de diverses sondes. Grafana va nous permettre de mettre en forme les données issues de opentsdb par des graphiques. Et enfin tcollector est une suite de sonde compatible avec opentsdb qui va nous permettre de récupérer tout un tas d'informations depuis nos différentes machines.

 

Infrastructure de test :

- 1 host pour opentsdb

- 1 host pour grafana

- Les hosts clients pour tcollector

 

Il est bien sur possible d'installer tout ça sur des conteneurs ou sur un même host.

 

I) Install Opentsdb :

 

1) Install Hbase :

 

- Récupérer les paquets minimums nécessaires :

apt-get install openjdk-7-jdk
apt-get install gnuplot

 

- Récupérer et décompresser les sources de hase :

wget http://www.apache.org/dist/hbase/1.1.1/hbase-1.1.1-bin.tar.gz
tar -xzvf hbase-1.1.1-bin.tar.gz 

 

- Configurer et executer hbase :

renseigner la variable JAVA_HOME :  vi hbase-1.1.1/conf/hbase-env.sh :

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64/

 

Démarrer hbase : hbase-1.1.1/bin/start-hbase.sh

 

2) Install de opentsdb

 

- Recupérer et installer le paquet opentsdb :

wget https://github.com/OpenTSDB/opentsdb/releases/download/v2.1.0/opentsdb-2.1.0_all.deb
dpkg -i opentsdb-2.1.0_all.deb

 

- Initialiser la base hbase pour opentsdb :

cd /usr/share/opentsdb/tools/
executer : env COMPRESSION=NONE HBASE_HOME=/root/hbase-1.1.1/ ./create_table.sh

 

- Configurer opentsdb :

vi /etc/opentsdb/opentsdb.conf :

tsd.core.auto_create_metrics = true
tsd.network.port = 4242
tsd.core.meta.enable_realtime_ts = true 

 

- Démarrer opentsdb

/etc/init.d/opentsdb start

 

- Verifier les logs pour voir que tout se passe bien et vérifier qu'il ecoute bien sur le port défini dans la configuration, soit par défaut 4242 :

tail -f /var/log/opentsdb/opentsdb.log
netstat -natp

 

3) Install de nginx pour la compatibilité avec grafana :

 

- Installer nginx :

apt-get install nginx

 

- Configurer nginx :

vi /etc/nginx/sites-enabled/default : 

 

upstream opentsdb {
  server 127.0.0.1:4242 fail_timeout=0;
}

server {
  listen *:4243;

  location / {
    # Regex to whitelist systems
    if ($http_origin ~* (https?://([a-z0-9._-]*\.)?GRAFANA_DOMAIN(:[0-9]+)?)) {
      set $cors "true";
    }

    # OPTIONS indicates a CORS pre-flight request
    if ($request_method = 'OPTIONS') {
      set $cors "${cors}-options";
    }

    # If it's OPTIONS, then it's a CORS preflight request so respond immediately with no response body
    if ($cors = "true-options") {
      add_header 'Access-Control-Allow-Origin' "$http_origin";
      add_header 'Access-Control-Allow-Credentials' 'true';
      add_header 'Access-Control-Max-Age' 1728000;
      add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
      add_header 'Access-Control-Allow-Headers' 'Authorization,Content-Type,Accept,Origin,User-Agent,DNT,Cache-Control,X-Mx-ReqToken,Keep-Alive,X-Requested-With,If-Modified-Since';
      add_header 'Content-Length' 0;
      add_header 'Content-Type' 'text/plain charset=UTF-8';
      return 204;
    }

    # Proxy the request
    proxy_set_header X-Host 127.0.0.1;
    proxy_set_header X-Forwarded-For $Proxy_add_x_forwarded_for;
    proxy_set_header Authorization "";
    proxy_pass http://opentsdb;
    proxy_redirect default;
    proxy_buffer_size 16k;
    proxy_buffers 8 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
    proxy_read_timeout 120;
    # Strip any OpenTSDB-generated CORS headers that overlap with our own
    proxy_hide_header 'Access-Control-Allow-Origin';
    proxy_hide_header 'Access-Control-Allow-Credentials';
    proxy_hide_header 'Access-Control-Allow-Headers';

    # if it's a GET or POST, set the standard CORS responses header
    if ($cors = "true") {
      # Add our own CORS headers
      add_header 'Access-Control-Allow-Origin' "$http_origin";
      add_header 'Access-Control-Allow-Credentials' 'true';
      add_header 'Access-Control-Allow-Headers' '*';
    }
  }
}

 

- Relancer nginx :

/etc/init.d/nginx restart

 

II) Installer Grafana :

 

- Installer les paquets minimums nécessaires :

apt-get install apt-transport-https

 

- Ajouter les sources necessaires pour grafana :

vi /etc/apt/sources.list : 
deb https://packagecloud.io/grafana/stable/debian/ wheezy main
apt-get update

 

- Installer et executer grafana :

apt-get install grafana
systemctl enable grafana-server.service
systemctl start grafana-server

 

- Informations supplémentaires : 

grafana ecoute sur le port 3000

login/password : admin/admin

 

III) Installation de tcollector sur les clients :

 

- Récupérer les sources : 

git clone git://github.com/OpenTSDB/tcollector.git

 

- Configurer l'adresse de opentsdb :

vi tcollector/startstop

TSD_HOST=192.168.0.67

 

- Démarrer tcollector et vérifier les logs :

tcollector/startstop start
tail -f /var/log/tcollector.log 

 

Voila, votre infra est fonctionnelles pour commencer à récuperer et mettre en forme tout un tas d'informations en provenance de vos machines/services.

 

Tags: 

www.le-gas.fr : Le guide de l'admin Systeme