Contexte

Le check Ntp Sync by SNMPv3 va vérifier la date et l'heure de votre système et le comparer à celles du serveur ntpd.

  • Si le serveur ntpd est accessible, vous pourrez alors obtenir :
    • le temps d'aller-retour entre votre client et le serveur
    • le décalage d'horloge entre l'hôte supervisé et le serveur de temps de référence.
  • Sinon, vous serez invité à démarrer le service adéquat.

La vérification est basée sur 2 informations : l' OFFSET et le DELAY

  • Pour savoir si le serveur est à l'heure, le serveur ntp local fait une requête au serveur ntp de référence.
    • Le temps d'aller-retour de la requête correspond au DELAY mesuré.
    • L'OFFSET correspond à la différence d'heure entre le serveur supervisé et le serveur ntp de référence.
  • Les 2 valeurs sont nécessaires, car l'OFFSET peut avoir au pire la valeur de DELAY comme marge d'erreur ( le temps d'acheminement moyen de la requête au serveur de temps ).
    • C'est pour cela que le check Ntp Sync by SNMPv3 mesure ces 2 valeurs et réagi en fonction des seuils de tolérance que vous définissez.


Note : Si dans la définition de l'équipement supervisé, vous avez aussi attaché le modèle chrony-by-snmp ce check disparaitra et sera remplacé par le check Ntp Sync Chrony by SNMPv3.

Paramétrage

Le check utilise une des lignes de commandes suivantes selon le modèle d'hôte utilisé :

$LINUX-BY-SNMP__SHINKEN__PLUGINSDIR$/check_linux_health_by_snmp_rust --check check_ntp_sync
    -H "$HOSTADDRESS$"
    -p "$_HOSTLINUX-BY-SNMP__PORT$"
    -t "$_HOSTLINUX-BY-SNMP__TIMEOUT$"
    -c "$_HOSTLINUX-BY-SNMP__NTP-SYNC__DELAY-CRIT$,$_HOSTLINUX-BY-SNMP__NTP-SYNC__OFFSET-CRIT$"
    -w "$_HOSTLINUX-BY-SNMP__NTP-SYNC__DELAY-WARN$,$_HOSTLINUX-BY-SNMP__NTP-SYNC__OFFSET-WARN$"
    --snmp_version "3"
    --user "$_HOSTLINUX-BY-SNMP__V3-LOGIN$"
    --level "noAuthNoPriv"
$LINUX-BY-SNMP__SHINKEN__PLUGINSDIR$/check_linux_health_by_snmp_rust --check check_ntp_sync
    -H "$HOSTADDRESS$"
    -p "$_HOSTLINUX-BY-SNMP__PORT$"
    -t "$_HOSTLINUX-BY-SNMP__TIMEOUT$"
    -c "$_HOSTLINUX-BY-SNMP__NTP-SYNC__DELAY-CRIT$,$_HOSTLINUX-BY-SNMP__NTP-SYNC__OFFSET-CRIT$"
    -w "$_HOSTLINUX-BY-SNMP__NTP-SYNC__DELAY-WARN$,$_HOSTLINUX-BY-SNMP__NTP-SYNC__OFFSET-WARN$"
    --snmp_version "3"
    --user "$_HOSTLINUX-BY-SNMP__V3-LOGIN$"
    --auth_password "$_HOSTLINUX-BY-SNMP__V3-PASSPHRASE-AUTH$"
    --auth_protocol "$_HOSTLINUX-BY-SNMP__V3-PROTOCOL-AUTH$"
    --level "authNoPriv"
$LINUX-BY-SNMP__SHINKEN__PLUGINSDIR$/check_linux_health_by_snmp_rust --check check_ntp_sync
    -H "$HOSTADDRESS$"
    -p "$_HOSTLINUX-BY-SNMP__PORT$"
    -t "$_HOSTLINUX-BY-SNMP__TIMEOUT$"
    -c "$_HOSTLINUX-BY-SNMP__NTP-SYNC__DELAY-CRIT$,$_HOSTLINUX-BY-SNMP__NTP-SYNC__OFFSET-CRIT$"
    -w "$_HOSTLINUX-BY-SNMP__NTP-SYNC__DELAY-WARN$,$_HOSTLINUX-BY-SNMP__NTP-SYNC__OFFSET-WARN$"
    --snmp_version "3"
    --user "$_HOSTLINUX-BY-SNMP__V3-LOGIN$"
    --auth_password "$_HOSTLINUX-BY-SNMP__V3-PASSPHRASE-AUTH$"
    --priv_passphrase "$_HOSTLINUX-BY-SNMP__V3-PASSPHRASE-PRIV$"
    --auth_protocol "$_HOSTLINUX-BY-SNMP__V3-PROTOCOL-AUTH$"
    --priv_protocol "$_HOSTLINUX-BY-SNMP__V3-PROTOCOL-PRIV$"
    --level "authPriv"

Données utilisées provenant des modèles

Données communes pour les checks des modèles

Données spécifiques pour ce check

NomModifiable surUnitéValeur par défaut à l'installation de ShinkenDescription
LINUX-BY-SNMP__NTP-SYNC__OFFSET-CRIT

l'Hôte

( Onglet Données )

ms30Définit le décalage en millisecondes à partir duquel le check passe en CRITIQUE.
LINUX-BY-SNMP__NTP-SYNC__OFFSET-WARN

l'Hôte

( Onglet Données )

ms10

Définit le décalage en millisecondes à partir duquel le check passe en ATTENTION.

LINUX-BY-SNMP__NTP-SYNC__DELAY-CRIT

l'Hôte

( Onglet Données )

ms200Définit le délai en millisecondes à partir duquel le check passe en CRITIQUE.
LINUX-BY-SNMP__NTP-SYNC__DELAY-WARN

l'Hôte

( Onglet Données )

ms100Définit le délai en millisecondes à partir duquel le check passe en ATTENTION.

Données DFE ( Duplicate Foreach )

Pas de données DFE pour ce check

Données utilisées provenant du check

Pas de données provenant du check pour ce modèle

Résultat

Exemple

Interprétation

Statut

  • Il peut prendre quatre valeurs  OK / CRITIQUE / ATTENTION / INCONNU .
    • Le statut va dépendre du retour de sonde et de la configuration spécifique du check pour les données suivantes :
      • LINUX-BY-SNMP__NTP-SYNC__OFFSET-CRIT

      • LINUX-BY-SNMP__NTP-SYNC__OFFSET-WARN

      • LINUX-BY-SNMP__NTP-SYNC__DELAY-CRIT

      • LINUX-BY-SNMP__NTP-SYNC__DELAY-WARN

    • Voici un tableau récapitulatif du statut attendu suivant le retour de sonde :

Le texte de la colonne  "Affichage des seuils" montre les paramètres utilisés et leur valeur définie sur l'équipement supervisé.

Situation

Statut

Exemple

  • Le décalage observé dépasse LINUX-BY-SNMP__NTP-SYNC__OFFSET-CRIT
CRITIQUE

  • Le décalage observé dépasse LINUX-BY-SNMP__NTP-SYNC__OFFSET-WARN
ATTENTION
  • Le délai observé dépasse LINUX-BY-SNMP__NTP-SYNC__DELAY-CRIT

CRITIQUE

  • Le délai observé dépasse LINUX-BY-SNMP__NTP-SYNC__DELAY-WARN

ATTENTION

Résultat

Le résultat contient un message indiquant le statut du check.

Lors d'un passage en CRITIQUE ou ATTENTION, un message indique quel en est la cause.

Résultat Long

Le résultat long contient un tableau affichant la valeur de l'OFFSET et du DELAY en millisecondes.

Métriques

Nom de la métriqueUnitéDescription
offsetmsDécalage de temps entre le système et le serveur
delaymsTemps aller-retour entre le client et le serveur 

Erreurs et pré-requis

Erreurs de configuration de l'hôte à superviser ( spécifique à ce check )

SNMP agent is not configured with extended exec 'shinken__linux-by-snmp__ntp-sync__ntpq'

Le check demande une configuration supplémentaire afin d'exécuter des commandes via des requêtes SNMP. Sans cette configuration, l'erreur suivante sera générée :

RESOLUTION :

Les instructions suivantes sont à exécuter sur l'hôte supervisée.

Ouvrez le fichier de configuration SNMP. ( "/etc/snmp/shinken/linux-by-SNMP__shinken.conf" ou "/etc/snmp/snmpd.conf" selon votre configuration ).

vim /etc/snmp/shinken/linux-by-SNMP__shinken.conf
# vim /etc/snmp/snmpd.conf

Rajoutez ces lignes si elles n'y sont pas :

extend shinken__linux-by-snmp__ntp-sync__ntpq /bin/sh -c "export LC_LANG=C && unset LANG && ntpq -p ; date +'%H:%M:%S.%3N'" 

Pour finir, il faut redémarrer le service snmpd pour qu'il puisse prendre en compte les nouvelles modifications.

sudo service snmpd restart

NTP tools and daemon are not installed

Il est nécessaire que le service ntpd soit installé pour le bon fonctionnement du check. Sans cela, l'erreur suivante sera générée :

Il est possible que le serveur de temps installé et configuré sur votre serveur Linux soit chrony ( chronyd ) et non NTP ( ntpd ).

Par exemple, sur les distributions basé sur RedHat ( comme RHEL, Alma, Rocky, Centos ) :

  • Depuis la version 7, ntpd est déprécié en faveur de chronyd
  • Depuis la version 8, ntpd n'est plus supporté et chronyd installé par défaut.


Alors, il faut accrocher le modèle Modèle chrony-by-SNMP du pack linux-by-SNMP__shinken à l'hôte, afin de superviser le bon service de temps.



RESOLUTION :

Les instructions suivantes sont à exécuter sur l'hôte supervisée.

Installez et activez le service ntpd sur l'hôte supervisée.


Démarrer le service ntpd stoppera les autres services NTP, comme chronyd.

Il est possible que le package ntp et son démon ntpd ne soient pas disponible pour votre machine ( ex : Centos, Alma, Rocky ) alors il est possible d'utiliser le démon chronyd et de le superviser en accrochant Modèle chrony-by-SNMP du pack linux-by-SNMP__shinken.



# Debian, Ubuntu
sudo apt install ntp

# Fedora, OpenSUSE
sudo yum install ntp

# Arch
sudo pacman -S ntp


sudo service ntpd restart

NTP daemon seems to be shutdown.

Il est possible que le service ntpd ne soit pas allumé. L'erreur suivante sera générée :

RESOLUTION :

Les instructions suivantes sont à exécuter sur l'hôte supervisée.

Le service ntpd doit être activé et démarré :

sudo service ntpd restart

No NTP source server found.

Une fois lancé, le service ntpd va choisir le serveur NTP, parmi un ou plusieurs configurés, qui sera utilisé pour la synchronisation NTP. Cette opération prend quelques secondes une fois le service démarré. Sans cela, l'erreur suivante sera générée :

RESOLUTION :

Il suffit d'attendre quelques secondes.
Si le problème persiste, vérifiez le bon fonctionnement du service ntpd et de sa configuration. Cliquez ici pour un guide de configuration ntpd.