Definição da hora de sua instância do Linux - Amazon Elastic Compute Cloud

Definição da hora de sua instância do Linux

Uma referência de tempo consistente e precisa é crucial para muitas tarefas e processos de servidor. A maioria dos logs do sistema incluem um time stamp que você pode usar para determinar quando os problemas ocorrem e em que ordem os eventos acontecem. Se você usar um SDK da AWS CLI ou da AWS para fazer solicitações de sua instância, essas ferramentas assinarão solicitações em seu nome. Se a data e a hora de sua instância não forem definidos corretamente, a data na assinatura poderá não corresponder à data da solicitação, e a AWS rejeitará a solicitação.

A Amazon fornece o Amazon Time Sync Service, que é acessível de todas as instâncias do EC2 e também é usado por outros serviços da AWS. Esse serviço utiliza uma frota de relógios atômicos de referência conectados via satélite em cada região para fornecer leituras de hora atuais e precisas do padrão global de Tempo Universal Coordenado (UTC) por meio do Network Time Protocol (NTP). O Amazon Time Sync Service suaviza automaticamente qualquer segundo bissexto adicionado ao UTC.

O Amazon Time Sync Service está disponível por meio do NTP no endereço IP 169.254.169.123 para todas as instâncias em execução em uma VPC. Sua instância não requer acesso à Internet, e você não precisa configurar suas regras de security group nem de network ACL para permitir o acesso. As versões mais recentes do Amazon Linux 2 e das AMIs do Amazon Linux são sincronizadas com o Amazon Time Sync Service por padrão.

Use os seguintes procedimentos para configurar o Amazon Time Sync Service na sua instância usando o cliente chrony. Se preferir, você também pode usar fontes de NTP externas. Para obter mais informações sobre NTP e fontes públicas de hora, consulte http://www.ntp.org/. Uma instância precisa acessar a Internet para que as fontes de hora de NTP externas funcionem.

Configuração do Amazon Time Sync Service no Amazon Linux AMI

nota

No Amazon Linux 2, a configuração padrão chrony já está definida para usar o endereço IP do Amazon Time Sync Service.

No Amazon Linux AMI, é necessário editar o arquivo de configuração chrony para adicionar uma entrada de servidor para o Amazon Time Sync Service.

Para configurar sua instância do e usar o Amazon Time Sync Service

  1. Conecte-se à sua instância e desinstale o serviço NTP.

    [ec2-user ~]$ sudo yum erase 'ntp*'
  2. Instale o pacote chrony.

    [ec2-user ~]$ sudo yum install chrony
  3. Abra o arquivo /etc/chrony.conf usando um editor de texto (como vim ou nano). Verifique se o arquivo inclui a seguinte linha:

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

    Se a linha estiver presente, significa que o Amazon Time Sync Service já está configurado. Nesse caso, siga para a próxima etapa. Caso contrário, adicione a linha depois de todas as outras instruções server ou pool já presentes no arquivo e salve as alterações.

  4. Reinicie o daemon chrony (chronyd).

    [ec2-user ~]$ sudo service chronyd restart
    Starting chronyd: [ OK ]
    nota

    No RHEL e no CentOS (até a versão 6), o nome do serviço é chrony em vez de chronyd.

  5. Use o comando chkconfig para configurar o chronyd para ser iniciado em cada inicialização do sistema.

    [ec2-user ~]$ sudo chkconfig chronyd on
  6. Verifique se chrony está usando o endereço IP 169.254.169.123 para sincronizar a hora.

    [ec2-user ~]$ chronyc sources -v
    210 Number of sources = 7 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 169.254.169.123 3 6 17 43 -30us[ -226us] +/- 287us ^- ec2-12-34-231-12.eu-west> 2 6 17 43 -388us[ -388us] +/- 11ms ^- tshirt.heanet.ie 1 6 17 44 +178us[ +25us] +/- 1959us ^? tbag.heanet.ie 0 6 0 - +0ns[ +0ns] +/- 0ns ^? bray.walcz.net 0 6 0 - +0ns[ +0ns] +/- 0ns ^? 2a05:d018:c43:e312:ce77:> 0 6 0 - +0ns[ +0ns] +/- 0ns ^? 2a05:d018:dab:2701:b70:b> 0 6 0 - +0ns[ +0ns] +/- 0ns

    Na saída retornada, ^* indica a fonte de hora preferida.

  7. Verifique as métricas de sincronização da hora informadas pelo chrony.

    [ec2-user ~]$ chronyc tracking
    Reference ID : A9FEA97B (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed Nov 22 13:18:34 2017 System time : 0.000000626 seconds slow of NTP time Last offset : +0.002852759 seconds RMS offset : 0.002852759 seconds Frequency : 1.187 ppm fast Residual freq : +0.020 ppm Skew : 24.388 ppm Root delay : 0.000504752 seconds Root dispersion : 0.001112565 seconds Update interval : 64.4 seconds Leap status : Normal

Configuração do Amazon Time Sync Service no Ubuntu

É necessário editar o arquivo de configuração chrony para adicionar uma entrada de servidor para o Amazon Time Sync Service.

Para configurar sua instância do e usar o Amazon Time Sync Service

  1. Conecte-se à sua instância e use apt para instalar o pacote chrony.

    ubuntu:~$ sudo apt install chrony
    nota

    Se necessário, atualize sua instância primeiro executando sudo apt update.

  2. Abra o arquivo /etc/chrony/chrony.conf usando um editor de texto (como vim ou nano). Adicione a seguinte linha antes de todas as outras instruções server ou pool já presentes no arquivo, e salve as alterações:

    server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4
  3. Reinicie o serviço chrony.

    ubuntu:~$ sudo /etc/init.d/chrony restart
    [ ok ] Restarting chrony (via systemctl): chrony.service.
  4. Verifique se chrony está usando o endereço IP 169.254.169.123 para sincronizar a hora.

    ubuntu:~$ chronyc sources -v
    210 Number of sources = 7 .-- Source mode '^' = server, '=' = peer, '#' = local clock. / .- Source state '*' = current synced, '+' = combined , '-' = not combined, | / '?' = unreachable, 'x' = time may be in error, '~' = time too variable. || .- xxxx [ yyyy ] +/- zzzz || Reachability register (octal) -. | xxxx = adjusted offset, || Log2(Polling interval) --. | | yyyy = measured offset, || \ | | zzzz = estimated error. || | | \ MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== ^* 169.254.169.123 3 6 17 12 +15us[ +57us] +/- 320us ^- tbag.heanet.ie 1 6 17 13 -3488us[-3446us] +/- 1779us ^- ec2-12-34-231-12.eu-west- 2 6 17 13 +893us[ +935us] +/- 7710us ^? 2a05:d018:c43:e312:ce77:6 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? 2a05:d018:d34:9000:d8c6:5 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? tshirt.heanet.ie 0 6 0 10y +0ns[ +0ns] +/- 0ns ^? bray.walcz.net 0 6 0 10y +0ns[ +0ns] +/- 0ns

    Na saída retornada, ^* indica a fonte de hora preferida.

  5. Verifique as métricas de sincronização da hora informadas pelo chrony.

    ubuntu:~$ chronyc tracking
    Reference ID : 169.254.169.123 (169.254.169.123) Stratum : 4 Ref time (UTC) : Wed Nov 29 07:41:57 2017 System time : 0.000000011 seconds slow of NTP time Last offset : +0.000041659 seconds RMS offset : 0.000041659 seconds Frequency : 10.141 ppm slow Residual freq : +7.557 ppm Skew : 2.329 ppm Root delay : 0.000544 seconds Root dispersion : 0.000631 seconds Update interval : 2.0 seconds Leap status : Normal

Configuração do Amazon Time Sync Service no SUSE Linux

Instale o chrony encontrado em https://software.opensuse.org/package/chrony.

Abra o arquivo /etc/chrony.conf usando um editor de texto (como vim ou nano). Verifique se o arquivo contém a seguinte linha:

server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4

Se essa linha não estiver presente, adicione-a. Comente qualquer outro servidor ou linhas de consulta. Abra o yast e ative o serviço chrony.

Alteração do fuso horário no Amazon Linux

As instâncias do Amazon Linux são configuradas para o fuso horário UTC (Tempo Universal Coordenado) por padrão, mas você pode alterar o horário de uma instância para o horário local ou outro fuso horário na rede.

Importante

Essas informações se aplicam ao Amazon Linux. Para obter informações sobre outras distribuições, consulte a documentação específica.

Para alterar o fuso horário de uma instância

  1. Identifique o fuso horário a ser usado na instância. O diretório /usr/share/zoneinfo contém uma hierarquia de arquivos de dados de fuso horário. Navegue a estrutura do diretório no local para localizar um arquivo para seu fuso horário.

    [ec2-user ~]$ ls /usr/share/zoneinfo Africa Chile GB Indian Mideast posixrules US America CST6CDT GB-Eire Iran MST PRC UTC Antarctica Cuba GMT iso3166.tab MST7MDT PST8PDT WET Arctic EET GMT0 Israel Navajo right W-SU ...

    Algumas das entradas nesse local são diretórios (como America), e esses diretórios contêm arquivos de fuso horário para cidades específicas. Encontre sua cidade (ou uma cidade em seu fuso horário) para ser usada para a instância. Neste exemplo, você pode usar o arquivo de fuso horário para Los Angeles, /usr/share/zoneinfo/America/Los_Angeles.

  2. Atualize o arquivo /etc/sysconfig/clock com o novo fuso horário.

    1. Abra o arquivo /etc/sysconfig/clock com seu editor de texto de preferência (como vim ou nano). Você precisa usar sudo com o comando do editor, pois /etc/sysconfig/clock é de propriedade de root.

    2. Localize a entrada ZONE e a altere para o fuso horário (omitindo a seção /usr/share/zoneinfo do caminho). Por exemplo, para alterar o fuso horário de Los Angeles, altere a entrada ZONE para:

      ZONE="America/Los_Angeles"
      nota

      Não altere a entrada UTC=true para outro valor. Essa entrada é para o relógio de hardware e não precisa ser ajustada quando você está configurando um fuso horário diferente em sua instância.

    3. Salve o arquivo e saia do editor de texto.

  3. Crie um link simbólico entre /etc/localtime e o arquivo de fuso horário para que a instância localize o arquivo de fuso horário quando fizer referência a informações do horário local.

    [ec2-user ~]$ sudo ln -sf /usr/share/zoneinfo/America/Los_Angeles /etc/localtime
  4. Reinicialize o sistema para obter as informações do novo fuso horário em todos os serviços e aplicativos.

    [ec2-user ~]$ sudo reboot