Table des matières

Configuration d'Alertmanager

Prérequis

Afin de pouvoir mettre en place Alertmanager, il faut au préalable avoir mis en place Prometheus ainsi que des alertes que l'on pourra récupérer.

Tout comme Prometheus, il faudra utiliser le code source afin de pouvoir le mettre en place puisqu'il n'est pas présent dans les paquets officiels de Debian Stretch. Cela veut donc dire que, comme pour Prometheus, Golang 1.10 est nécessaire.

Mise en place

Tout d'abord, il va falloir récupérer Alertmanager via son code source. Ce dernier est retrouvable à cette adresse.

Afin de pouvoir lancer l'installation, il faudra d'abord se positionner dans le dossier /home/xxx/src/github.com/prometheus. Une fois ceci fait, si aucune modification n'a été apporté au GOPATH et GOROOT, les commandes golang devraient toujours être opérationnelles.

Il existe 2 solutions afin de pouvoir installer Alertmanager, les 2 provoquant le même résultat. Les 2 seront détaillés ci-dessous.

1ère solution

La première solution consiste à utiliser la commande go get :

go get github.com/prometheus/alertmanager/cmd/...
cd /home/xxx/src/github.com/prometheus/alertmanager
alertmanager --config.file=<alertmanagerfile.yml>

2ème solution

La deuxième solution consiste à aller chercher le code source et build directement Alertmanager :

cd /home/xxx/src/github.com/prometheus 
git clone https://github.com/prometheus/alertmanager.git
cd alertmanager
make build
./alertmanager --config.file=<alertmanagerfile.yml>

Configuration du fichier alertmanagerfile.yml

Il existe de nombreux paramètres qu'il est possible de mettre en place dans le fichier d'Alertmanager afin de mettre en place le système d'alerte qui correspond le plus aux attentes. Il est possible par exemple de choisir de mettre en place un système d'alerte par e-mail, hipchat, pagerduty… ou encore le serveur SMTP à utiliser pour envoyer les mails…

Pour avoir plus de détails sur les différentes modifications que l'on peut apporter au fichier, le lien suivant montre toutes les possibilités qu'il existe. On va ici détailler les plus importants :

  1. <receiver> : Regroupe tous les systèmes pouvant être utiliser afin de recevoir les alertes que fournit Alertmanager. On retrouve notamment <email_config>, <hipchat_config>, <pagerduty_config>, … Chacun de ces paramètres ayant encore de nombreuses possibilités.
  2. <email_config> : On peut modifier de nombreux paramètres, notamment les adresses à qui seront envoyés les mails, le serveur SMTP avec les identifiants si nécessaires, ce qui sera indiqué dans le mail…
  3. <hipchat_config> : Tout comme pour la configuration de l'email, il est possible avec ce paramètre d'indiquer l'identifiant de la salle, le format du message…
  4. Il en existe bien d'autres, référencés sur le site indiqué plus haut…

Un exemple complet de configuration du fichier alertmanagerfile.yml est présent sur le site envoyé plus haut, chaque paramètre étant expliqué en détail.

Après toute modification apportée au fichier de configuration alertmanagerfile.yml, pour que tout soit bien pris en compte, il faudra utiliser la commande “kill” afin de relancer le process. Mais pour pouvoir utiliser cette commande, il est nécessaire de connaître le Process ID (ou PID) qu'il faudra indiquer. Pour récupérer ce dernier, il suffit d'utiliser la commande :

ps aux| grep alertmanager

Une ligne avec indiqué “./alertmanager –config.file=alertmanagerfile.yml” devrait s'afficher. Il suffit alors de récupérer le PID qui correspond (Il s'agit de la valeur présente au niveau de la deuxième colonne) et de taper la commande suivante :

kill -1 PID

Si Alertmanager était bien démarré et que le PID indiqué correspondait bien, une ligne devrait apparaître indiquant qu'Alertmanager est en train de redémarrer :

caller=main.go:305 msg="Loading configuration file" file=alertmanagerfile.yml