Contexte

Le check Ntp Sync Chrony by SNMPv3 va vérifier la date et l'heure de votre système et le comparer à celles obtenues par le service chronyd installé sur la machine supervisé.

Si le service chronyd est accessible et il va questionner le ou les serveurs NTP configurés pour obtenir les deux mesures suivantes :

  • le décalage ( OFFSET ) : différence de temps entre l'horloge entre la machine supervisé et le serveur NTP de référence.
  • le délai ( DELAY ) : temps d'aller-retour d'une requête NTP entre votre client et le serveur NTP de référence.


Le status du check va être dépendant de ces deux mesures :

  • Un décalage trop important indique que la machine supervisée n'est plus à la bonne heure.
  • Un délai trop élevé implique des risques d'imprécisions sur les calculs du décalage. Il peut également indiquer vous faire remarquer que de mauvaises sources de temps sont utilisés. (ex : Une machine supervisée en France aura un délai de ~300 ms avec un serveur NTP de référence localisé au Japon).


Note : Le check Ntp Sync Chrony by SNMPv3 est activé uniquement lorsque le modèle chrony-by-snmp est attaché à l'équipement supervisé. Détachez le modèle chrony-by-snmp pour remplacer le check par Ntp Sync by SNMPv3 qui surveille la synchronisation NTP par le service ntpd.

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-CHRONY__DELAY-CRIT$,$_HOSTLINUX-BY-SNMP__NTP-SYNC-CHRONY__OFFSET-CRIT$"
    -w "$_HOSTLINUX-BY-SNMP__NTP-SYNC-CHRONY__DELAY-WARN$,$_HOSTLINUX-BY-SNMP__NTP-SYNC-CHRONY__OFFSET-WARN$"
    --chrony
    --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-CHRONY__DELAY-CRIT$,$_HOSTLINUX-BY-SNMP__NTP-SYNC-CHRONY__OFFSET-CRIT$"
    -w "$_HOSTLINUX-BY-SNMP__NTP-SYNC-CHRONY__DELAY-WARN$,$_HOSTLINUX-BY-SNMP__NTP-SYNC-CHRONY__OFFSET-WARN$"
    --chrony
    --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-CHRONY__DELAY-CRIT$,$_HOSTLINUX-BY-SNMP__NTP-SYNC-CHRONY__OFFSET-CRIT$"
    -w "$_HOSTLINUX-BY-SNMP__NTP-SYNC-CHRONY__DELAY-WARN$,$_HOSTLINUX-BY-SNMP__NTP-SYNC-CHRONY__OFFSET-WARN$"
    --chrony
    --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-CHRONY__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-CHRONY__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-CHRONY__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-CHRONY__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-CHRONY__OFFSET-CRIT

      • LINUX-BY-SNMP__NTP-SYNC-CHRONY__OFFSET-WARN

      • LINUX-BY-SNMP__NTP-SYNC-CHRONY__DELAY-CRIT

      • LINUX-BY-SNMP__NTP-SYNC-CHRONY__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-CHRONY__OFFSET-CRIT
CRITIQUE

  • Le décalage observé dépasse LINUX-BY-SNMP__NTP-SYNC-CHRONY__OFFSET-WARN
ATTENTION

  • Le délai observé dépasse LINUX-BY-SNMP__NTP-SYNC-CHRONY__DELAY-CRIT

CRITIQUE


  • Le délai observé dépasse LINUX-BY-SNMP__NTP-SYNC-CHRONY__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 

Pré-requis et Erreurs fréquentes

Chrony daemon seems to be shutdown.

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


Résolution :

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

sudo service ntpd restart

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

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 :

Résolution :

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-chrony__chronyc /bin/sh -c "export LC_LANG=C && unset LANG && chronyc tracking ; 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

Chrony daemon is not installed

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

Résolution :

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

# Debian, Ubuntu
sudo apt install chrony

# Centos, Fedora, OpenSUSE
sudo yum install chrony

# Arch
sudo pacman -S chrony 




sudo service chronyd restart

Chrony daemon is not synchronized

Une fois lancé, le service chronyd va choisir un ou plusieurs serveurs NTP, parmi ceux configurés, qui seront utilisés 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 :

Résolution :

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