TimescaleDB » Historique » Version 1
Julien Aubé, 30/03/2020 00:35
1 | 1 | Julien Aubé | h1. Installation de Grafana avec un backend TimescaleDB |
---|---|---|---|
2 | 1 | Julien Aubé | |
3 | 1 | Julien Aubé | h2. Objectif |
4 | 1 | Julien Aubé | |
5 | 1 | Julien Aubé | Grafana https://grafana.com/ est un système de visualisation moderne et réactif. Son utilisation nécessite une base de donnée indexée sur le temps, une "time-serie database" (TSDB). Le plus souvent, c'est InfluxDB qui est utilisé https://www.influxdata.com/ , c'est la solution la plus souvent mise en oeuvre. |
6 | 1 | Julien Aubé | |
7 | 1 | Julien Aubé | Mais l'expérience a montré quelques limites, notamment dans la montée en charge et la sauvegarde des données (Le fait que la société InfluxData propose une solution payante et complète de cloud et de clustering est possiblement à l'origine de ces limitations de la version gratuite). InfluxDB reste toutefois une excellente solution pour débuter ainsi que pour des données non pérennes et non volumineuses. |
8 | 1 | Julien Aubé | |
9 | 1 | Julien Aubé | TimescaleDB est une solution développée par la société Timescale https://www.timescale.com/ qui est basé sur une extension de PostgreSQL, et ajoute à ce dernier une gestion efficace des séries temporelles, des opérations spécifiques, un stockage adapté et efficient. |
10 | 1 | Julien Aubé | Néanmoins, toutes les fonctions de PostgreSQL restent utilisable, en particulier d'autres extensions tel que PostGIS, PostgREST ainsi que les outils de sauvegarde, restauration, monitoring, clustering,... . |
11 | 1 | Julien Aubé | PostgreSQL étant une base de donnée très utilisé, les compétences d'administration et la documentation existe a profusion sur Internet. |
12 | 1 | Julien Aubé | |
13 | 1 | Julien Aubé | Ajouter des données en base se fait en SQL (INSERT INTO ....) , et les requêtes se font de même (SELECT FROM...) . Les vues, les triggers, les procédures stockés restent utilisable. |
14 | 1 | Julien Aubé | Il reste possible d'utiliser d'autres méthodes pour insérer des données ou les récupérer sans passer par du SQL - il existe des "connecteurs" pour Kafka, Telegraf, Prometheus. PostgREST peux aussi être utilisé pour offrir une interface HTTP REST pour l'insertion ou la récupération des données. |
15 | 1 | Julien Aubé | |
16 | 1 | Julien Aubé | Ce tutoriel décrit l'installation de ces outils sur une distribution Debian Buster (quelque soit la plateforme) |
17 | 1 | Julien Aubé | |
18 | 1 | Julien Aubé | h2. Installation de PostgreSQL sur une Debian 10 "Buster" |
19 | 1 | Julien Aubé | |
20 | 1 | Julien Aubé | Ce document part du principe que l'installation aura lieu sur une distribution Debian 10 "Buster" , qui dispose d'un accès à internet, et dont l'utilisateur est administrateur. |
21 | 1 | Julien Aubé | |
22 | 1 | Julien Aubé | * Installer Postgresql (version 11 au moment de la rédaction de cet article) |
23 | 1 | Julien Aubé | <pre> |
24 | 1 | Julien Aubé | # apt-get update; apt-get dist-upgrade |
25 | 1 | Julien Aubé | # apt-get install postgresql |
26 | 1 | Julien Aubé | </pre> |
27 | 1 | Julien Aubé | |
28 | 1 | Julien Aubé | S'assurer que postgresql fonctionne correctement et que l'utilisateur "postgres" peux s'y connecter en tant qu'administrateur de la base. |
29 | 1 | Julien Aubé | |
30 | 1 | Julien Aubé | Dans mon cas j'ai changé la ligne suivante dans @/etc/postgresql/11/main/pg_hba.conf (remplacé @md5@ par @peer@) |
31 | 1 | Julien Aubé | <pre> |
32 | 1 | Julien Aubé | ... |
33 | 1 | Julien Aubé | local all all peer |
34 | 1 | Julien Aubé | ... |
35 | 1 | Julien Aubé | </pre> |
36 | 1 | Julien Aubé | |
37 | 1 | Julien Aubé | h2. Installer & configurer TimescaleDB |
38 | 1 | Julien Aubé | |
39 | 1 | Julien Aubé | <pre> |
40 | 1 | Julien Aubé | # sh -c "echo 'deb https://packagecloud.io/timescale/timescaledb/debian/ `lsb_release -c -s` main' > /etc/apt/sources.list.d/timescaledb.list" |
41 | 1 | Julien Aubé | # wget --quiet -O - https://packagecloud.io/timescale/timescaledb/gpgkey | apt-key add - |
42 | 1 | Julien Aubé | # apt-get update |
43 | 1 | Julien Aubé | # apt-get install timescaledb-postgresql-11 |
44 | 1 | Julien Aubé | </pre> |
45 | 1 | Julien Aubé | |
46 | 1 | Julien Aubé | L'outil suivant permet de modifier la configuration de PostgreSQL pour améliorer les performances avec TimescaleDB. |
47 | 1 | Julien Aubé | <pre> |
48 | 1 | Julien Aubé | # timescaledb-tune |
49 | 1 | Julien Aubé | </pre> |
50 | 1 | Julien Aubé | |
51 | 1 | Julien Aubé | h3. Installer Grafana |
52 | 1 | Julien Aubé | |
53 | 1 | Julien Aubé | <pre> |
54 | 1 | Julien Aubé | # apt-get install -y apt-transport-https |
55 | 1 | Julien Aubé | # apt-get install -y software-properties-common wget |
56 | 1 | Julien Aubé | # wget -q -O - https://packages.grafana.com/gpg.key | apt-key add - |
57 | 1 | Julien Aubé | |
58 | 1 | Julien Aubé | # echo "deb https://packages.grafana.com/oss/deb stable main" | tee -a /etc/apt/sources.list.d/grafana.list |
59 | 1 | Julien Aubé | # apt-get update |
60 | 1 | Julien Aubé | # apt-get install grafana |
61 | 1 | Julien Aubé | # systemctl daemon-reload |
62 | 1 | Julien Aubé | # systemctl enable grafana-server |
63 | 1 | Julien Aubé | # systemctl start grafana-server |
64 | 1 | Julien Aubé | </pre> |
65 | 1 | Julien Aubé | |
66 | 1 | Julien Aubé | Grafana tourne ensuite sur le port 3000. |