Aller au contenu

Hetzner Cloud

Les serveurs d’un projet Hetzner Cloud via l’API Hetzner Cloud : serveurs qui ne tournent pas, processeur qui reste saturé, sauvegardes arrêtées et volumes rattachés à rien.

DumbMonit lit l’API sur api.hetzner.cloud/v1 une fois par minute avec un jeton de projet en lecture seule, envoyé comme jeton bearer. La liste des serveurs est indispensable ; l’activité des serveurs, les volumes et les sauvegardes sont des parties facultatives qui, si elles sont refusées, sont ignorées sans faire échouer la surveillance. Une surveillance lit un projet (un jeton appartient à un seul projet).

C’est une API Internet : l’adresse est celle de l’API, pas celle d’une machine. DumbMonit a besoin de HTTPS sortant vers api.hetzner.cloud ; rien dans vos serveurs n’est contacté.

Du serveur DumbMonit (ou de son agent relais) vers l’équipement :

PortProtocoleUsage
443TCPAPI Hetzner Cloud (HTTPS, api.hetzner.cloud)

Toutes les métriques sont préfixées dumbmonit_hetzner_. Au plus 200 éléments nommés par famille ; les comptes restent exacts.

MétriqueÉtiquettesSignification
server_runningserver1 quand le statut du serveur est running.
server_infoserver, status, type, locationValeur 1.
server_backups_enabledserver1 quand les sauvegardes automatiques sont activées.
servers, servers_running, servers_not_runningComptes.
server_cpu_percentserverUtilisation du processeur moyennée sur les dix dernières minutes (serveurs en marche seulement).
server_disk_read_bytes_per_second, server_disk_write_bytes_per_secondserverDébit du disque, même fenêtre.
server_network_in_bytes_per_second, server_network_out_bytes_per_secondserverDébit du réseau, même fenêtre.
metrics_readable0 quand les métriques des serveurs ne peuvent pas être lues ; absente quand l’option Serveurs avec métriques vaut 0.
volume_attachedvolume1 quand le volume est rattaché à un serveur.
volume_size_gigabytesvolumeTaille du volume.
volumes, volumes_unattachedComptes.
volumes_readable0 quand les volumes ne peuvent pas être lus.
server_backup_age_secondsserverÂge de la sauvegarde la plus récente, pour les serveurs qui ont les sauvegardes activées et au moins une sauvegarde.
backups_readable0 quand les sauvegardes ne peuvent pas être lues ; absente quand aucun serveur n’a les sauvegardes activées.

Les métriques ne sont lues que pour les premiers serveurs en marche, autant que le dit l’option Serveurs avec métriques (10 par défaut, 100 au plus) : chacun coûte un appel d’API, et Hetzner autorise 3 600 requêtes par heure et par projet. Les sauvegardes sont lues parmi les images les plus récentes (type=backup), sur 5 pages au plus.

Les règles intégrées qui s’appliquent :

  • Serveur Hetzner arrêté : un serveur qui n’est pas à l’état running depuis 10 minutes (Avis). Un serveur éteint volontairement la déclenche aussi.
  • Processeur d’un serveur Hetzner saturé : plus de 90 % de processeur sur dix minutes, depuis 30 minutes (Avis).
  • Sauvegarde Hetzner trop ancienne : la sauvegarde la plus récente d’un serveur dont les sauvegardes sont activées a plus de 3 jours (Avis, rappel quotidien).
  • Volume Hetzner non rattaché : un volume rattaché à aucun serveur depuis une heure (Info, rappel hebdomadaire).

Le panneau Hetzner Cloud dit en une phrase ce qui ne va pas, montre les serveurs et les serveurs en marche, puis liste les serveurs avec leur état, les volumes et les sauvegardes des serveurs qui en ont.

Créer un jeton d’API en lecture seule pour DumbMonit

Section intitulée « Créer un jeton d’API en lecture seule pour DumbMonit »
  1. Dans la console Hetzner Cloud, ouvrez le projet à surveiller, puis Security > API tokens > Generate API token.

  2. Nommez-le DumbMonit et choisissez la permission Read (pas Read & Write).

  3. Cliquez sur Generate API token, puis copiez le jeton : il n’est affiché qu’une fois.

  4. Dans DumbMonit, utilisez cette adresse et collez le jeton comme jeton d’API. Une surveillance lit un projet. api.hetzner.cloud

  • Read (jeton de projet) — Liste les serveurs, volumes et sauvegardes et lit les métriques des serveurs ; ne change rien.

Documentation de l’éditeur : https://docs.hetzner.cloud/

IdentifiantChamps
Jeton d’APILe jeton de projet créé ci-dessus, envoyé comme jeton bearer.

Adresse : api.hetzner.cloud. Options :

  • Serveurs avec métriques : combien de serveurs en marche voient leur processeur, disque et réseau lus chaque minute, de 0 (aucun) à 100 (10 par défaut).
  • Délai par requête (15 s).

« Hetzner Cloud refused the API token (401) » : le jeton est incorrect, supprimé, ou appartient à un autre projet.

« Hetzner Cloud refused … (403) » : le jeton ne peut pas lire cette ressource.

metrics_readable, volumes_readable ou backups_readable vaut 0 : Hetzner a refusé ou fait échouer l’un de ces appels ; les serveurs restent signalés. Un serveur dont les sauvegardes sont activées mais qui n’en a encore aucune ne déclenche pas d’alerte avant sa première.