ECS : xDoctor : RAP081 : Code symptôme : 2048 : Différence d’heure du système au-dessus du seuil d’erreur
Summary: xDoctor a détecté un problème de processus NTP (Network Time Protocol).
Symptoms
Le processus NTP doit être en cours d’exécution sur tous les nœuds d’un rack ECS, et les serveurs NTP configurés doivent pouvoir synchroniser l’heure. Si ce n’est pas le cas, cela peut entraîner des problèmes d’ingestion des données front-end.
| Symptôme |
Message |
|---|---|
| Différence d’heure système au-delà du seuil d’erreur |
Message = System time difference above ERROR Threshold |
Cause
Les symptômes ci-dessus restent comme un AVERTISSEMENT s’ils ne se produisent pas dans les 24 heures.
Au bout de 24 heures, si le problème persiste, la gravité passe à l’état ERROR, et un RAP081 est signalé.
Resolution
Différence d’heure du nœud due au fichier de dérive NTP qui est mis à jour toutes les heures par le service ntpd sur les nœuds. Ce problème peut se produire lorsqu’un problème de réseau s’est déjà produit sur un nœud. Une fois qu’il a rejoint le réseau, il crée un fichier de dérive incorrect, ce qui impose une différence d’heure entre les nœuds.
Lorsqu’un nœud a rejoint le réseau après un problème, il peut créer temporairement un fichier de dérive pour correspondre à l’heure NTP sur le serveur NTP. Cela devrait être temporaire, mais si ntpd ne peut pas supprimer le fichier, nous pouvons supprimer les fichiers de dérive et redémarrer le service pour le restaurer.
Vérification:
Vérifiez si tous les serveurs NTP peuvent effectuer une commande ping.
1. Vérifiez si la Conformité est activée.
Commande :
# domulti 'cat /opt/emc/caspian/fabric/agent/conf/agent_customize.conf | grep compliance_enabled'
admin@node1:~> domulti 'cat /opt/emc/caspian/fabric/agent/conf/agent_customize.conf | grep compliance_enabled' 192.168.219.1 ======================================== compliance_enabled = true 192.168.219.2 ======================================== compliance_enabled = true 192.168.219.3 ======================================== compliance_enabled = true 192.168.219.4 ======================================== compliance_enabled = true
2. Vérifiez ECS pour déterminer si le cluster est conforme ou non.
# viprexec -i "/opt/emc/caspian/fabric/cli/bin/fcli lifecycle cluster.compliance"
admin@node1:~> viprexec -i "/opt/emc/caspian/fabric/cli/bin/fcli lifecycle cluster.compliance"
Output from host : 192.168.219.1
{
"compliance": "NON_COMPLIANT",
"status": "OK",
"etag": 22527
}
Output from host : 192.168.219.2
{
"compliance": "NON_COMPLIANT",
"status": "OK",
"etag": 22527
}
Output from host : 192.168.219.3
{
"compliance": "NON_COMPLIANT",
"status": "OK",
"etag": 22527
}
Output from host : 192.168.219.4
{
"compliance": "NON_COMPLIANT",
"status": "OK",
"etag": 22527
}
La sortie attendue est CONFORME. Si nous voyons NON_COMPLIANT, alors nous devons chercher pourquoi.
3. Exécutez le script de vérification de la conformité sur chaque nœud pour identifier les nœuds non conformes, ce qui peut entraîner une non-conformité de la part de la vérification ECS.
Exécutez le script de conformité sur tous les nœuds. Les nœuds avec le message « NTP peers out of sync » peuvent rencontrer le problème de fichier de dérive NTP sur certains nœuds. Le résultat de la commande « Vérification de la conformité... Sur un nœud sans sortie d’échec, signifie que la vérification a réussi sans qu’aucun problème ne soit détecté.
# domulti /opt/emc/caspian/fabric/agent/conf/compliance_check.sh
admin@node1:~> domulti /opt/emc/caspian/fabric/agent/conf/compliance_check.sh
192.168.219.1
========================================
Checking compliance...
NTP peers out of sync
192.168.219.2
========================================
Checking compliance...
192.168.219.3
========================================
Checking compliance...
NTP peers out of sync
192.168.219.4
========================================
Checking compliance...
NTP peers out of sync
Si la sortie « Homologues NTP désynchronisés », accédez à la section « Homologues désynchronisés » ci-dessous.
Résolution:
1. Vérifiez si un décalage NTP est supérieur à 10 (+/-), ce qui peut entraîner l’alerte de conformité.
# viprexec -i "ntpq -nc peers"
admin@node1:~> viprexec -i "ntpq -nc peers" Output from host : 169.254.1.1 remote refid st t when poll reach delay offset jitter ============================================================================== *10.xxx.xxx.16 .GPSs. 1 u 31 64 377 0.103 -367.66 44.909 +10.xxx.xxx.33 .GPSs. 1 u 32 64 377 0.097 -368.68 44.341 +10.xxx.xxx.35 .GPSs. 1 u 16 64 377 0.107 -338.96 69.736 Output from host : 169.254.1.2 remote refid st t when poll reach delay offset jitter ============================================================================== +10.xxx.xxx.16 .GPSs. 1 u 26 64 377 0.089 8.566 0.746 *10.xxx.xxx.33 .GPSs. 1 u 26 64 377 0.100 8.585 0.739 +10.xxx.xxx.35 .GPSs. 1 u 23 64 377 0.104 8.888 0.592 Output from host : 169.254.1.3 remote refid st t when poll reach delay offset jitter ============================================================================== *10.xxx.xxx.16 .GPSs. 1 u 31 64 377 0.101 -354.40 52.444 +10.xxx.xxx.33 .GPSs. 1 u 29 64 377 0.101 -338.84 63.750 +10.xxx.xxx.35 .GPSs. 1 u 39 64 377 0.106 -387.28 44.286 Output from host : 169.254.1.4 remote refid st t when poll reach delay offset jitter ============================================================================== *10.xxx.xxx.16 .GPSs. 1 u 26 64 377 0.084 72.675 9.200 +10.xxx.xxx.33 .GPSs. 1 u 37 64 377 0.107 65.047 14.913 +10.xxx.xxx.35 .GPSs. 1 u 33 64 377 0.103 87.374 13.435 Output from host : 169.254.1.5 remote refid st t when poll reach delay offset jitter ============================================================================== *10.xxx.xxx.16 .GPSs. 1 u 27 64 377 0.094 352.741 54.056 +10.xxx.xxx.33 .GPSs. 1 u 26 64 377 0.103 413.893 43.770 +10.xxx.xxx.35 .GPSs. 1 u 33 64 377 0.101 334.493 69.059 Output from host : 169.254.1.6 remote refid st t when poll reach delay offset jitter ============================================================================== +10.xxx.xxx.16 .GPSs. 1 u 27 64 377 0.101 -428.51 54.955 +10.xxx.xxx.33 .GPSs. 1 u 26 64 377 0.097 -326.21 91.208 *10.xxx.xxx.35 .GPSs. 1 u 32 64 377 0.098 -349.00 70.110
Si nous redémarrons le service ntpd, viprexec -i « ntpq -nc peers » nous avons un décalage de moins de 10 pendant quelques instants, puis revient à plus de 100.
2. La réapplication d’un décalage incorrect dans le fichier ntp.drift d’un nœud après le redémarrage du service ntpd peut entraîner ce problème :
# viprexec -i "cat /var/lib/ntp/drift/ntp.drift"
admin@node1:~> viprexec -i "cat /var/lib/ntp/drift/ntp.drift" Output from host : 169.254.1.1 500.000 Output from host : 169.254.1.2 -14.212 Output from host : 169.254.1.3 500.000 Output from host : 169.254.1.4 -102.474 Output from host : 169.254.1.5 -500.000 Output from host : 169.254.1.6 500.000
Un fichier de dérive NTP de cette taille de décalage peut être généré automatiquement en raison d’un problème réseau temporaire. Lorsqu’un nœud rétablit une connexion au service NTP se trouve en dehors de l’heure correcte, générez le fichier pour qu’il se corrige de nouveau. Après quelques instants, le fichier de dérive n’est plus nécessaire et peut être retiré. Par conséquent, les opérations suivantes doivent être effectuées.
Remarque : ntpd.service est un service sans impact.
Commandes :
# viprexec -i "systemctl stop ntpd" # viprexec -i "cat /var/lib/ntp/drift/ntp.drift # viprexec -i "rm -f /var/lib/ntp/drift/ntp.drift" # viprexec -i "ntpd -gq" # viprexec -i "systemctl start ntpd" # viprexec -i "ntpq -p"
Exécutez à nouveau le script de vérification de conformité : viprexec -i « /opt/emc/caspian/fabric/agent/conf/compliance_check.sh"
Si les fichiers de dérive NTP sont nuls, vérifiez s’il y a une dérive de date dans NTP, puis redémarrez le service ntpd.
# viprexec "date +%s" 2>&1 | grep "^15"
admin@node1:~> viprexec "date +%s" 2>&1 | grep "^15" 1554470147 1554470111 1554470096 1554470142 1554470144 1554470109 1554470124 1554470140
La différence entre les nœuds indique qu’une dérive NTP avec un redémarrage du service ntpd est requise. Vérifiez l’état du service ntpd, puis redémarrez le service. (Même si l’état est en cours d’exécution, procédez au redémarrage.) Remarque : ntpd.service est un service sans impact.
# viprexec systemctl status ntpd.service | grep Active:
admin@node1:~> viprexec systemctl status ntpd.service | grep Active: Active: active (running) since Tue 2019-08-06 02:49:06 UTC; 1 day 18h ago Active: active (running) since Tue 2019-08-06 02:49:07 UTC; 1 day 18h ago Active: active (running) since Wed 2019-08-07 20:13:27 UTC; 58min ago Active: active (running) since Tue 2019-08-06 02:49:06 UTC; 1 day 18h ago Active: active (running) since Tue 2019-08-06 02:49:07 UTC; 1 day 18h ago Active: active (running) since Tue 2019-08-06 02:49:07 UTC; 1 day 18h ago Active: active (running) since Tue 2019-08-06 02:49:07 UTC; 1 day 18h ago Active: active (running) since Tue 2019-08-06 02:49:07 UTC; 1 day 18h ago
# viprexec -i "systemctl restart ntpd.service"
admin@node1:~> viprexec systemctl restart ntpd.service Output from host : 192.168.219.1 Output from host : 192.168.219.2 Output from host : 192.168.219.3 Output from host : 192.168.219.4 Output from host : 192.168.219.5 Output from host : 192.168.219.6 Output from host : 192.168.219.7 Output from host : 192.168.219.8
La dérive NTP doit être résolue :
# viprexec -i "date +%s" 2>&1 | grep "^15"
admin@node1:~> viprexec -i "date +%s" 2>&1 | grep "^15" 1585746672 1585746672 1585746672 1585746672 1585746672 1585746672 1585746672 1585746672
Si le problème persiste ou ne correspond pas au problème ci-dessus, contactez le support technique ECS.
Additional Information
Si la solution ci-dessus ne fonctionne pas, l’équipe réseau du client doit être impliquée pour résoudre le problème NTP.
Pour le symptôme « NTP daemon not running » (NTPD_NOT_RUNNING), reportez-vous à l’article de la base de connaissances :
ECS : xDoctor : RAP081 : Code symptôme : 2048 : Le processus NTP n’est pas en cours d’exécution
Pour le symptôme « All NTP servers are NOT suitable for synchronization » (NTP_NOT_SUITABLE_ERROR), reportez-vous à l’article de la base de connaissances :
ECS : xDoctor : RAP081 : Code symptôme : 2048 : Tous les serveurs NTP ne sont PAS adaptés à la synchronisation.
Pour le symptôme « All NTP servers adjust an offset higher than the error threshold » (NTP_ERROR_OFFSET_ERROR), reportez-vous à l’article de la base de connaissances :
ECS : xDoctor : RAP081 : Code symptôme : 2048 : Tous les serveurs NTP ajustent un décalage supérieur au seuil d’erreur.