L'importance d'avoir des serveurs de supervision qui sont synchronisés en temps (NTP ou Chrony)
Shinken Enterprise est un système distribué entre ses démons, qui vont se retrouver sur différents serveurs virtuels ou physiques quand l'infrastructure à superviser va grossir ou être géographiquement distance. Il est impératif que TOUS les serveurs de supervisions soient synchronisés en terme de temps.
En effet, si une vérification est faite sur un serveur distant avec une mauvaise date, puis consommée par un autre démon qui a une autre date, l'analyse va être totalement faussée, soit trop dans le passé, soit trop dans le futur, mais dans tous les cas totalement inexacte. Ceci va causer de grave problèmes de cohérences de données, qui ne seront pas récupérables.
| Info | ||
|---|---|---|
| ||
| Il est important de noter que la présence de timezones locales est totalement acceptable et normale. C'est bien le temps système unix (timestamp) qui est important, pas sa représentation locale pour les humains (qui prends donc ce timestamp unix et lui applique la timzone locale pour l'affichage). |
Comment vérifier que ses serveurs sont à l'heure
Le plus simple pour vérifier que ses serveurs sont à l'heure est d'utiliser les checks NTP des packs linux et chrony livrés avec Shinken Enterprise, qui vous avertirons en cas de problème de synchronisation, ou si vos démons ntp ou chrony sont arrêtés.
Sachant que suivant votre OS c'est le démon ntp ou chrony que vous avez:
- Centos/Redhat 6: ntp
- Centos/Redhat 7: ntp
- Centos/Redhat 8: chrony
Pour faire une vérification manuelle du temps effectivement en cours sur vos serveurs, vous pouvez lancer:
| Code Block | ||
|---|---|---|
| ||
$ date '+%s' 1667379864 |
Vous devez avoir le même résultat sur l'ensemble de vos serveurs, peu importe leur timezone (ces dernières n'influent pas sur le temps unix, c'est son principal intérêt).
Comment forcer la synchronisation de vos serveurs
Il est important de noter que dans tous les cas, vous aller forcer une synchronisation avec les serveurs de temps auxquels vous avez accès (soit des serveurs disponibles publiquement sur internet, soit des serveurs disponibles sur votre infrastructure interne). Dans ce dernier cas, si ces derniers ne sont pas à l'heure, vous n'aurez pas une date valide, et c'est donc un problème à régler de toute urgence avec les administrateurs de ces services.
Si vous avez ntp (Centos/RedHat 6 ou 7)
Dans le cas d'un serveur ntp, il faut passer par "ntpdate" pour forcer une synchronisation. Il est à noter que pour pouvoir faire une synchronisation, il faut que le service ntpd soit arrêté avant car ntpdate va demander les mêmes ports que le démon ntpd.
| Code Block |
|---|
service ntpd stop service ntpdate start service ntpd start date '+%s' |
Si vous avez chrony (RedHat 8)
Dans le cas d'un serveur chrony, la commande est "makestep".
| Code Block |
|---|
systemctl start chronyd chronyc makestep date '+%s' |