Avant de commencer l'installation, il faut s'avoir que cette installation a été fait en tant qu'utilisateur et sous Debian Stretch. Il existe donc de nombreuses documentations qui permettent également d'installer Prometheus, notamment celle-ci qui est la documentation officielle. Le but de cette documentation est de faire une installation en évitant autant que possible l'utilisation du compte root et en n'utilisant aucun paquet non-officiel.
Il faut également savoir que certains outils seront nécessaire au bon fonctionnement, notamment “go” en version 1.10 (ou plus récent en fonction de l'ancienneté de cette documentation). Dans le cas où vous suivez également cette documentation et vous ne possédez pas go-1.10 et que vous souhaitez l'installer, assurez-vous de ne pas avoir une autre version de go déjà installé puisque cela pourrait poser conflit lors de l'utilisation des commandes go (il est possible que la version récente ne soit pas utilisée en priorité, surtout si cette dernière a été installée en tant qu'utilisateur).
Malheureusement, sous Debian stretch, le paquet go-1.10 n'est pas présent de base. Cela veut donc dire qu'il va falloir le récupérer d'une autre manière. Grâce au site suivant, on peut voir que ce dernier est présent en Debian stretch Backport. Pour pouvoir télécharger ce paquet, il faudra donc rajouter dans le fichier /etc/apt/sources.list la ligne suivante :
deb http://ftp.debian.org/debian stretch-backports main
Une fois cette ligne rajoutée, il suffira juste de taper les commandes suivantes :
apt update apt install golang-1.10
Tout d'abord, il va falloir aller récupérer le paquet et le construire depuis sa source. On peut récupérer ce dernier ici à la partie Building from source.
Avant de lancer la commande qui permettra de récupérer prometheus, il faut s'assurer que la variable d'environnement GOPATH est configurée pour cibler au bon endroit, que la variable GOROOT ne pose pas de conflit avec GOPATH (c'est à dire qu'ils ne ciblent pas au même endroit) et de bien avoir indiqué le chemin afin de pouvoir utiliser les commandes go dans le fichier ~/.bashrc.
Dans le fichier ~/.bashrc, il faudra rajouter la modification dans le PATH par défaut afin d'y indiquer le dossier go-1.10 qui se situe normalement dans /usr/lib/go-1.10/bin . On devrait donc obtenir un PATH similaire à ceci :
PATH=$PATH:/usr/lib/go-1.10/bin
On peut également y indiquer un GOPATH qui pointera vers notre dossier home ou taper la commande directement dans le shell. L'avantage de la première solution est qu'à chaque redémarrage, si le chemin a été modifié, lors du redémarrage de la machine, il sera rajouté à nouveau automatiquement. Les commandes correspondants à ces 2 solutions sont :
GOPATH=/home/xxx ou export GOPATH=/home/xxx
Après avoir mis en place go, il est donc maintenant possible d'installer Prometheus. Pour cela, il suffit juste de se mettre dans son dossier home et de lancer la commande :
go get github.com/prometheus/prometheus/cmd/...
Une fois Prometheus installé dans notre dossier home, il faut démarrer ce dernier. Pour cela, il suffit juste d'aller à l'intérieur de celui-ci et de taper la commande suivante :
prometheus --config.file=xxx.yml (Remplacer xxx par le nom que vous voulez donner à ce fichier)
Il existe également une autre façon de mettre en place Prometheus : en clonant directement le dossier. Pour cette méthode, il est n'est pas nécessaire de posséder go, c'est donc une façon de contourner l'installation de go. Pour aller récupérer le clone, on va tout d'abord créer un dossier qui contiendra ce dernier (dans lequel on se placera), puis on fait le clone :
mkdir -p /home/xxx/src/github.com/prometheus cd /home/xxx/src/github.com/prometheus git clone https://github.com/prometheus/prometheus cd prometheus
Une fois le clone fait, il faut construire Prometheus. Pour cela, il suffit de taper la commande :
make build
La commande devrait prendre un peu de temps avant de se terminer. Une fois terminée, comme pour l'autre solution, il faut taper la commande suivante afin de démarrer Prometheus :
./prometheus --config.file=xxx.yml
Il est possible que le fichier .yml ne soit pas présent de base ou que son contenu ne soit pas configuré de façon optimale de base et qu'il soit donc nécessaire d'y apporter des modifications.
Pour redémarrer le processus après avoir apporté une modification par exemple et qu'elle soit bien prise en compte, il faut tout d'abord récupérer le Process ID correspondant. Pour cela, il suffit de taper la commande :
ps aux| grep prometheus
Plusieurs lignes devraient apparaître, l'une d'elles devrait contenir “./prometheus –config.file=prometheus.yml”. Il faudra récupérer le PID de ce processus qui se trouve à la deuxième colonne.
Avec cette valeur récupérée, il faudra alors utiliser la commande “kill” pour redémarrer prometheus :
kill -1 PID
Une fois la commande exécuté, le résultrat suivant devrait apparaître :
caller=main.go:599 msg="Loading configuration file" filename=prometheus.yml
global:
scrape_interval: 15s
evaluation_interval: 15s
rule_files:
# - "first.rules"
# - "second.rules"
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
Si tout fonctionne bien lors du démarrage de Prometheus, des messages devraient s'afficher, notamment :
msg="Server is ready to receive web requests."
Il est possible d'administrer d'avantages de choses à l'aide de node_exporter. La documentation qui explique comment mettre en place ce dernier se trouve ici