Servidor de Tempo NTP: Instalando e usando o Chrony no Linux

Como vimos em alguns posts anteriores, é importante que tenhamos um servidor de tempo NTP instalado em nosso computador para que o horário e data fiquem sempre sincronizados. Essa sincronização pode se dar através de servidor ntp pela internet ou ser obtida por um servidor de tempo(ntp) instalado em nossa rede local.

Já vimos um tutorial sobre o ntpd, um outro artigo sobre como fazer os computadores cadastrados no samba obterem seu horário através do chrony ou ntpd via samba.

Aqui vamos ver como instalar e usar o chrony.

Se está perdido, saiba que ntp é um protocolo para implementação e sincronização de  tempo. Quando digo que ntp é um protocolo quero dizer que ele não é um programas mas somente os meios, as instruções de como se obter algo, nesse caso ele ajuda a desenvolvedores a criarem programas(implementações) que ajuste o horário dos computadores.

Veja esse arquivo que fala a respeito de protocolo: O que são Protocolos e Standards em Informática?

Instalando o chrony

 

CentOS/Red Hat

yum install chrony

 

Debian/Ubuntu

apt install chrony

 

Fedora(Versões recentes: 22+)

dnf install chrony

 

Programas do Chrony

Ao instalarmos o chrony teremos dois programas em nossas mãos:

  • chronyd: Esse é o daemon chrony, ou seja o processo(programa) que é executado ao iniciarmos o chrony.
  • chronyc: responsável por linha de comando.

 

Parando e Iniciando o chrony

 

Obs.: no CentOS use chronyd ao invés de chrony

para isso podemos usar o systemd:

Iniciar o chrony

sudo systemctl start chrony

Parar o chrony

sudo systemctl stop chrony

Fazer o chrony iniciar automaticamente ao ligarmos o pc

sudo systemctl  enable chrony

Tirar a inicialização automática do chrony

sudo systemctl disable chrony

 

Ao iniciar o chrony poderá vê-lo ao usarmos “ps”. perceba abaixo que o processo se chama chronyd:

elder@server02:~$ ps aux | grep chrony
_chrony  23293  0.0  0.2  13132  2736 ?        S    09:44   0:00 /usr/sbin/chronyd -F -1
_chrony  23294  0.0  0.2   4952  2316 ?        S    09:44   0:00 /usr/sbin/chronyd -F -1

 

Executando Comandos Usando chronyc

O normal é deixarmos o chronyd sendo executando e iniciado automaticamente.

chronyc é uma interface para linha de comando do chrony. Ele tem algumas opções que não afetarão o modo como o programa(chronyd) funcionará. São apenas monitoramentos. São essas as opções: activity, manual list, rtcdata, smoothing, sources,
sourcestats, tracking, waitsync.

Para executar essas opções basta teclar “chronyc + nome_opção”, veja exemplo:

chronyc tracking

Essas opções de monitoramento podem ser, também, executadas remotamente via rede; para isso precisaríamos permitir o computador remoto inserindo o nome dele na opção “cmdallow” do arquivo /etc/chrony/chrony.conf.

 

Opções para chronyc que Usaremos Nesse Laboratório

 

Muitas das opções abaixo podem ser ativadas pelo arquivo /etc/chrony/chrony.conf 

  • -h: permite definirmos um host, ou mais de um, para conectarmos com chronyd.
  • -v: Exibe a versão do chrony

Também usaremos as opções citadas acima: activity, manual list, rtcdata, smoothing, sources,
sourcestats, tracking, waitsync.

  • tracking: mostra parâmetros sobre a performance do relógio do sistema.
  • makestep: às vezes o horário pode está bem desajustado, muito atrasado ou adiantado. Como o chronyd ajusta lentamente para não criar impacto esse ajuste poderia levar muito tempo. Quando executado “chronyc makestep” o horário será ajustado imediatamente. Também pode ser executado de outra forma mais complexa: “chronyc  makestep 0.1 1”, onde 0.1 é o limite de escalonamento?? e 1 é o número de atualizações futuras que  0.1 ficaria ativo.
  • sources: Exibe informações sobre das fontes de onde chronyd está está acessando.
  • sourcestats:???? O comando sourcestats exibe informações sobre a taxa de deriva e deslocamento processo de estimativa para cada uma das fontes atualmente sendo examinadas por chronyd ????
  • activity: Exibe  servidores e peers que estão online e offline.
  • refresh: ao trocarmos de ip ou se trocamos a placa de rede podemos executar “chronyc refresh” para atualizamos forçando o chronyd  a resolver nomes para IPs de sources(fontes) configuradas.
  • clients: Quando nosso pc age como servidor ntp, essa opção exibe os clientes que acessaram.
  • allow: permite que  definamos acesso para uma rede. Exemplo: chronyc  allow foo.example.net, chronyc allow 6.7.8.9/22 ou chronyc allow all.
  • deny: O inverso de allow. deny bloqueia acesso.

Praticando com chronyd

 

Usando chronyc tracking

elder@server02:~$ sudo chronyc tracking
Reference ID    : C8594BC6 (200-89-75-198-LIBRE.uchile.cl)
Stratum         : 3
Ref time (UTC)  : Tue Aug 17 14:02:48 2021
System time     : 0.000304406 seconds fast of NTP time
Last offset     : +0.000081331 seconds
RMS offset      : 0.000147810 seconds
Frequency       : 9.709 ppm slow
Residual freq   : -0.000 ppm
Skew            : 0.039 ppm
Root delay      : 0.056679785 seconds
Root dispersion : 0.028164940 seconds
Update interval : 1036.4 seconds
Leap status     : Normal
  • Reference: o nome o ip do servidor ntp com o qual este computador está sincronizado atualmente. Se o valor for 7F7F0101 significa que não há sincronização com servidor externo. A sincronização é local(foi usado a opção local)
  • Stratum: Aqui falamos de estrato. Clique aqui para saber mais. Estratos são outros servidores de tempo que estão posicionados verticalmente, ou seja, um a um nível acima  do outro. O estrato 0 geralmente são GPSs ou satélites. O servidor no estrato 1 recebe sincronização diretamente desses dispositivos do estrato 0. No caso acima, há dois servidores de tempo(reference clock) acima do nosso.
  • ref time: Esse é o horário universal(UTC). Esse horário é o mesmo em qualquer lugar do mundo.  O que diferencia entre países é que alguns acrescentam horas e outros diminuem de forma a ficar justo de acordo com o local.
  • System time: Aqui mostra a velocidade com que chronyd está ajustando um horário errado.  Se o horário do seu computador estiver errado, o chronyd não corrige  imediatamente, vai acelerando ou desacelerando o horário até chegar no correto. Por que não corrige imediatamente? alguns programas que necessitam do horário poderiam ser impactados com mudanças repentinas no horário. Um programa poderia se comportar estranhamente se o horário, por exemplo, agora fosse 12:00 e daqui a 1 minuto fosse 13:00. Esse gap(espaço vago) de 1 horá poderia ser comprometedor.  A mudança é através de deslocamentos lentos para trás ou para frente.
  • last offset: Estimado deslocamento local da última atualização ????
  • RMS offset: Esta é uma média de longo prazo do valor de compensação. ???
  • frequency: aqui é a taxa(rate) que o horário estaria errado se chronyd não estivesse ajustando ele. É expressado em ppm(partes por milhão). Como exemplo, o valor de 1 ppm significa que o horário local está desajustado 1 segundo ou  1.000001 segundos.
  • Residual freq: aqui é uma frequência residual.????
  • skew: erro estimado vinculado à frequência.??
  • Root Delay: Este é o total dos atrasos do caminho da rede para o computador stratum-1 a partir do qual o computador é finalmente sincronizado. ????
  • Root Dispersion: ???
  • Update interval: intervalo entre as duas últimas sincronizações.
  • Leap Status: Statos do salto?? que pode ser Normal, Insert second, Delete second ou Not
    synchronised.

 

 

 

Usando chronyc makestep

elder@server02:~$ sudo chronyc makestep
200 OK

 

Usando chronyc sources

elder@server02:~$ sudo chronyc sources
210 Number of sources = 4
MS Name/IP address         Stratum Poll Reach LastRx Last sample               
===============================================================================
^+ de-user.deepinid.deepin.>     3  10   377    92  +7130us[+7130us] +/-  119ms
^- mercure.eurofmc.com           3  10   377   937  +2756us[+2995us] +/-  176ms
^+ bochum.solar                  2  10   377   180  +5761us[+6002us] +/-  112ms
^* 200-89-75-198-LIBRE.uchi>     2  10   377   146  -2275us[-2033us] +/-   70ms

Acima temos alguns detalhes importantes, na primeira coluna temos:

^ significa servidor
= é um peer
# é uma conexão local

Na segunda coluna temos

* A fonte com que chronyd está sincronizado atualemente.
+ Fontes aceitáveis que estão combinados com as selecionadas???
Fontes aceitáveis que estão excluídas das selecionadas???
? Fontes com conexões perdidas ou com pacotes que não passaram no teste
X Uma fonte com um tempo bem inconsistente das demais fontes. Pode ser um servidor falso.
~ Uma fonte com tempo variando muito

Outra colunas importantes que podemos citar são:

Na coluna poll temos o tempo em que as fontes estão sendo sondadas.  A medida é em logaritmo em base 2; então 6 significa 64 segundos. ????

Na coluna Last Sample temos a diferença(deslocamento) de tempo na última medida feita.

 

Usando chronyc sourcestats

elder@server02:~$ sudo chronyc sourcestats
210 Number of sources = 4
Name/IP Address            NP  NR  Span  Frequency  Freq Skew  Offset  Std Dev
==============================================================================
de-user.deepinid.deepin.>  56  23   15h     -0.029      0.105  +2741us  3712us
mercure.eurofmc.com        64  36   18h     -0.012      0.119  -1460us  5388us
bochum.solar               11   7  173m     -0.522      1.597  +1218us  3616us
200-89-75-198-LIBRE.uchi>  19   7  328m     +0.007      0.048  -1922us   325us

 

Executando chronyc activity

elder@server02:~$ sudo chronyc activity
200 OK
4 sources online
0 sources offline
0 sources doing burst (return to online)
0 sources doing burst (return to offline)
0 sources with unknown address

 

Usando chronyc refresh

elder@server02:~$ sudo chronyc refresh
200 OK

 

Exibindo Clientes que se Conectaram

Abaixo não houve nenhuma conexão.

elder@server02:~$ sudo chronyc clients
Hostname                      NTP   Drop Int IntL Last     Cmd   Drop Int  Last
===============================================================================

 

Permitindo acesso para uma usb-rede

elder@server02:~$ sudo chronyc  allow 192.168.0.0/24
200 OK

 

 

Por aqui é apenas isso. Para maiores detalhes ver manual do comando.

 

Fonte: manual chronyc, manual chronyd

Leitor voraz e um dos administradores do GNU/Linux Brasil no Whatsapp, facebook, youtube e nesse dito site: www.gnulinuxbrasil.com.br

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *