GNU/Linux >> Tutoriales Linux >  >> Cent OS

CentOS/RHEL 7:Consejos para solucionar problemas de NTP/chrony

El servicio chrony no cambia la hora
La idea errónea a menudo es que el servicio chrony está ajustando la hora a la proporcionada por el servidor NTP. Esto es incorrecto; lo que realmente sucede es que, según la respuesta del servidor NTP, chrony simplemente le dice al reloj del sistema que vaya más rápido o más lento. Por esta razón, a veces, aunque la hora sea incorrecta y el servidor NTP esté funcionando, la hora no se corrige inmediatamente.

Única hora cuando chrony establece la hora

Cuando se inicia el servicio chrony, hay algunas configuraciones en /etc/chrony/chrony.conf archivo que le dice que realmente establezca la hora si ocurren condiciones específicas:

# Force system clock correction at boot time.
makestep 1000 10

lo que significa que si el chrony detecta durante las primeras 10 mediciones después de su inicio que la hora está desfasada en más de 1000 segundos, configurará el reloj.

Algunos comandos útiles

A continuación se muestran algunos comandos útiles que se pueden usar para solucionar problemas relacionados con chrony.

# chronyc tracking  
# chronyc sources
# chronyc sourcestats
# systemctl status chronyd
# chronyc activity
# timedatectl

Verificar el estado de cronyd

Para comprobar el estado del demonio chronyd:

# systemctl status -l chronyd
● chronyd.service - NTP client/server
   Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2016-08-12 13:22:22 IST; 1s ago
  Process: 33263 ExecStartPost=/usr/libexec/chrony-helper update-daemon (code=exited, status=0/SUCCESS)
  Process: 33259 ExecStart=/usr/sbin/chronyd $OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 33261 (chronyd)
   CGroup: /system.slice/chronyd.service
           └─33261 /usr/sbin/chronyd

Aug 12 13:22:22 NVMBD1S11BKPMED03 systemd[1]: Starting NTP client/server...
Aug 12 13:22:22 NVMBD1S11BKPMED03 chronyd[33261]: chronyd version 2.1.1 starting (+CMDMON +NTP +REFCLOCK +RTC +PRIVDROP +DEBUG +ASYNCDNS +IPV6 +SECHASH)
Aug 12 13:22:22 NVMBD1S11BKPMED03 chronyd[33261]: Frequency 0.000 +/- 1000000.000 ppm read from /var/lib/chrony/drift
Aug 12 13:22:22 NVMBD1S11BKPMED03 systemd[1]: Started NTP client/server.

El comando de fuentes de chronyc

Ejecutando fuentes de chronyc -v muestra el estado actual del/los servidor/es NTP configurados en el sistema. Aquí hay un resultado de ejemplo, en el que ntp.example.com se muestra como un servidor válido que está en línea:

# chronyc sources -v
210 Number of sources = 1

  .-- Source mode  '^' = server, '=' = peer, '#' = local clock.
 / .- Source state '*' = current synced, '+' = OK for sync, '?' = unreachable,
| /                'x' = time may be in error, '~' = time is too variable.
||                                                 .- xxxx [ yyyy ] +/- zzzz
||                                                /   xxxx = adjusted offset,
||         Log2(Polling interval) -.             |    yyyy = measured offset,
||                                              |    zzzz = estimated error.
||                                   |           |                         
MS Name/IP address           Stratum Poll LastRx Last sample
============================================================================
^* ntp.example.com          3    6     40    +31us[  -98us] +/-  118ms

Tenga en cuenta que un estado de origen diferente a '*' generalmente indica un problema con el servidor NTP.

El estado de origen '~' significa que el tiempo es demasiado variable
Si el estado de origen es '~ ', probablemente significa que el servidor es accesible pero el tiempo es demasiado variable. Esto puede suceder si el servidor responde demasiado lento o responde a veces más lento ya veces más rápido. Puede verificar el tiempo de respuesta de los pings al servidor para ver si son lentos o variables. Este estado también se ha notado cuando el servidor se ejecuta en máquinas virtuales que son demasiado lentas y causan problemas de tiempo.

Chrony revisa y reinicia cada hora

Una vez por hora, el servicio chrony comprueba la salida de las fuentes chronyc -v comando, ejecutando el script /usr/sbin/palladion_chrony_healthcheck que ejecuta /usr/sbin/palladion_check_chrony y comprueba su salida:

  • si /usr/sbin/palladion_check_chrony devuelve 1, significa que no había una fuente en línea (ninguna fuente con estado de fuente ='*'), por lo que chrony se reinicia en un intento de reinicializar el estado del servidor
  • si /usr/sbin/palladion_check_chrony devuelve 0, esto significa que todo está bien, no es necesario reiniciar chrony porque ya tiene una fuente en línea válida
# cat /etc/cron.d/chrony
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
#
# Check chrony every hour and restart if necessary.
#
16 * * * *     root    /usr/sbin/palladion_chrony_healthcheck

Registros de cronología

Hay varios registros crony que se pueden usar para solucionar problemas. La mayoría de ellos se encuentran en /var/log/chrony/ . Tenga en cuenta que el archivo más reciente no siempre es el *.log. A veces sucede que incluso el archivo *.log.2 o *.log.3 son los más recientes. Aquí hay un ejemplo de una lista de archivos ordenados por el más reciente:

# ls -lisaht  /var/log/chrony/
total 1.5M
3801115 580K -rw-r--r--  1 root root 574K Oct 21 14:56 measurements.log.3
3801131 544K -rw-r--r--  1 root root 540K Oct 21 14:56 statistics.log.3
3801166 356K -rw-r--r--  1 root root 350K Oct 21 14:56 tracking.log.3
3801089 4.0K drwxr-xr-x 16 root root 4.0K Oct 21 00:01 ..
3801114 4.0K drwxr-xr-x  2 root root 4.0K Oct 21 00:01 .
3801128    0 -rw-r--r--  1 root root    0 Oct 21 00:01 tracking.log
3801110    0 -rw-r--r--  1 root root    0 Oct 21 00:01 measurements.log
3801120    0 -rw-r--r--  1 root root    0 Oct 21 00:01 statistics.log
3801167    0 -rw-r--r--  1 root root    0 Oct 20 00:01 tracking.log.1
3801165    0 -rw-r--r--  1 root root    0 Oct 20 00:01 statistics.log.1
3801159    0 -rw-r--r--  1 root root    0 Oct 20 00:01 measurements.log.1
............

Intente configurar solo un servidor NTP ingresando su dirección IP

Si hasta ahora ha estado usando dos o más servidores NTP (ya sea porque estaban configurados o porque ingresó un FQDN que se resuelve en diferentes direcciones IP), intente configurar un solo servidor NTP ingresando solo una dirección IP. Esto puede resolver su problema relacionado con NTP.

Rastreo de la comunicación con el servidor NTP

Para verificar dos veces si el servidor NTP responde o no, es posible rastrear el tráfico entre chrony y el servidor NTP durante un período de tiempo mientras se monitorea el servidor:
1. Inicie un seguimiento de pcap con tcpdump en el puerto NTP 123 y déjelo en ejecución hasta que aparezca el problema (ejecútelo en 'pantalla' o con 'nohup' para evitar que se detenga si se desconecta del comando de shell)
2 . Tan pronto como vuelva a aparecer el problema, obtenga un Diagnóstico del sistema que cubra todo el historial desde que configuró el servidor con el nombre DNS hasta que volvió a ocurrir la brecha. Si esto produce un archivo que es demasiado grande, simplemente obtenga el Diagnóstico del sistema para datos actuales y, además, copie todos los archivos de /var/log/chrony/, y todos los archivos llamados /var/log/syslog* . Recuerde detener el seguimiento que inició en el paso 1


Cent OS
  1. CentOS/RHEL 7:Configuración de NTP mediante chrony

  2. CentOS/RHEL 7:habilite NTP para que se inicie en el arranque después de una instalación nueva (desactive chrony)

  3. CentOS / RHEL 7:Chrony V/s NTP (Diferencias entre ntpd y chronyd)

  4. Cómo configurar servidor y cliente NTP en CentOS/RHEL 7

  5. CentOS/RHEL 7:cómo configurar la fecha, la hora/NTP y la zona horaria usando timedatectl

Cómo configurar el servidor NTP en RHEL 8 / CentOS 8 Linux

Cómo sincronizar la hora correctamente con el servidor NTP en CentOS 7

Cómo instalar NTP (Chrony) en CentOS 8 / CentOS 7 y RHEL 8 / RHEL 7

Cómo cambiar la zona horaria en CentOS 8 / RHEL 8

Cómo solucionar problemas de latencia de transferencia de NFS usando "nfsiostat" en CentOS/RHEL

CentOS / RHEL:guía de solución de problemas de iptables