GNU/Linux >> Znalost Linux >  >> Cent OS

CentOS / RHEL 7:Tipy pro řešení problémů s NTP / chronickými problémy

Služba chrony nemění čas
Často je mylná představa, že chrony služba nastavuje čas na čas daný serverem NTP. To je nesprávné – ve skutečnosti se stane to, že na základě odpovědi ze serveru NTP, chrony pouze řekne systémovým hodinám, aby šly rychleji nebo pomaleji. Z tohoto důvodu někdy, i když je čas nesprávný a server NTP funguje, čas se neopraví okamžitě.

Pouze čas, kdy chrony nastavuje čas

Po spuštění služby chrony jsou v souboru /etc/chrony/chrony.conf určitá nastavení soubor, který mu říká, aby skutečně nastavil čas, pokud nastanou určité podmínky:

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

což znamená, že pokud chrony během prvních 10 měření po svém začátku zjistí, že čas je o více než 1000 sekund mimo, nastaví hodiny.

Některé užitečné příkazy

Níže jsou uvedeny některé užitečné příkazy, které lze použít k řešení problémů souvisejících s chronickými problémy.

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

Zkontrolujte stav chronydu

Chcete-li zkontrolovat stav démona 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.

Příkaz chronyc sources

Spuštěné zdroje chronyc -v zobrazuje aktuální stav NTP serveru/ů nakonfigurovaných v systému. Zde je příklad výstupu, ve kterém se ntp.example.com zobrazuje jako platný server, který je online:

# 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

Všimněte si, že stav zdroje jiný než „*“ obvykle označuje problém se serverem NTP.

Stav zdroje „~“ znamená, že čas je příliš proměnný
Pokud je stav zdroje „~ ‘, pravděpodobně to znamená, že server je dostupný, ale čas je příliš proměnlivý. To se může stát, pokud server reaguje příliš pomalu nebo reaguje někdy pomaleji a někdy rychleji. Můžete zkontrolovat dobu odezvy pingů na server a zjistit, zda jsou pomalé nebo proměnlivé. Tento stav byl také zaznamenán, když server běží na virtuálních počítačích, které jsou příliš pomalé a způsobují problémy s časováním.

Kontrola Chrony a restartování každou hodinu

Jednou za hodinu služba chrony zkontroluje výstup zdrojů chronyc -v příkaz spuštěním skriptu /usr/sbin/palladion_chrony_healthcheck který spouští /usr/sbin/palladion_check_chrony a zkontroluje jeho výstup:

  • Pokud /usr/sbin/palladion_check_chrony vrátí 1 – znamená to, že neexistoval žádný online zdroj (žádný zdroj se stavem zdroje =‚*‘), takže se chrony restartuje ve snaze znovu inicializovat stav serveru
  • pokud /usr/sbin/palladion_check_chrony vrátí 0 – to znamená, že je vše v pořádku, chrony není třeba restartovat, protože již má platný online zdroj
# 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

Protokoly Chrony

Existuje několik chrony logů, které lze použít k odstraňování problémů. Většina z nich se nachází v /var/log/chrony/ . Všimněte si, že nejnovější soubor není vždy *.log. Někdy se stane, že i soubory *.log.2 nebo *.log.3 jsou ty novější. Zde je příklad výpisu souborů s řazením podle nejnovějších:

# 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
............

Zkuste nastavit pouze jeden NTP server zadáním jeho IP adresy

Pokud jste dosud používali dva nebo více serverů NTP (buď proto, že byly nastaveny, nebo proto, že jste zadali úplný název domény, který rozlišuje různé adresy IP), zkuste nastavit jeden server NTP zadáním pouze jedné adresy IP. To může vyřešit váš problém související s NTP.

Sledování komunikace se serverem NTP

Chcete-li znovu zkontrolovat, zda server NTP odpovídá nebo ne, je možné sledovat provoz mezi chrony a serverem NTP po určitou dobu při monitorování serveru:
1. Spusťte trasování pcap pomocí tcpdump na portu NTP 123 a nechte jej spuštěný, dokud se problém neobjeví (spusťte jej na obrazovce nebo pomocí 'nohup', abyste zabránili jeho zastavení, pokud se odpojíte od příkazu shellu)
2 . Jakmile se problém znovu objeví, získejte diagnostiku systému pokrývající celou historii, protože jste nastavili server na název DNS, dokud se mezera znovu neobjeví. Pokud to vytvoří soubor, který je příliš velký, stáhněte si System Diagnostics for Current data a navíc zkopírujte všechny soubory z /var/log/chrony/ a všechny soubory s názvem /var/log/syslog* . Nezapomeňte zastavit trasování, které jste zahájili v kroku 1


Cent OS
  1. CentOS / RHEL 7 :Jak synchronizovat chrony s místními hodinami

  2. CentOS / RHEL 7:Jak změnit časové pásmo

  3. Jak řešit problémy s iSCSI v CentOS / RHEL 6,7

  1. CentOS / RHEL 7 :Konfigurace NTP pomocí chrony

  2. CentOS / RHEL 7:Povolte spuštění NTP při spuštění po nové instalaci (zakázat chrony)

  3. Odstraňování běžných problémů s GUI / X-Window na CentOS/RHEL

  1. CentOS / RHEL 7:Chrony V/s NTP (Rozdíly mezi ntpd a chronyd)

  2. Jak nakonfigurovat NTP server a klienta v CentOS / RHEL 7

  3. CentOS / RHEL 7 :Jak nastavit datum, čas / NTP a časové pásmo pomocí timedatectl