Documentação
Resolução de problemas no acesso ao TKLBAM S3
Geralmente TKLBAM "apenas funciona" mas ocasionalmente alguns usuários têm problemas de conexão com Amazon S3.
Questões comuns
As causas comuns são o bloqueio do tráfego de firewall ou um proxy da web (comum nas redes corporativas) bloqueando ou manipulando o tráfego. Para fins de teste, por favor, certifique-se de que você desativa estes (de preferência) ou pelo menos criar uma exceção para o seu servidor TKL (para que ele possa ter acesso claro à internet).
Verificando o registro
O próximo passo é verificar o registo de erros. Sugiro que o procure pela palavra "erro" assim:
grep error /var/log/tklbam-backup
Se você estiver tendo erros de conexão, ele deve retornar algo como isto:
Upload 's3://s3-eu-west-1.amazonaws.com/tklbam-eu-west-1-c992423735f1f4ee9616/24fh4htqs3t3tfju/duplicity-full.20160825T115809Z.vol1.difftar.gpg' failed (attempt #1, reason: error: [Errno 104] Connection reset by peer) Upload 's3://s3-eu-west-1.amazonaws.com/tklbam-eu-west-1-c992423735f1f4ee9616/24fh4htqs3t3tfju/duplicity-full.20160825T115809Z.vol1.difftar.gpg' failed (attempt #2, reason: error: [Errno 104] Connection reset by peer) Upload 's3://s3-eu-west-1.amazonaws.com/tklbam-eu-west-1-c992423735f1f4ee9616/24fh4htqs3t3tfju/duplicity-full.20160825T115809Z.vol1.difftar.gpg' failed (attempt #3, reason: error: [Errno 32] Broken pipe) Upload 's3://s3-eu-west-1.amazonaws.com/tklbam-eu-west-1-c992423735f1f4ee9616/24fh4htqs3t3tfju/duplicity-full.20160825T115809Z.vol1.difftar.gpg' failed (attempt #4, reason: error: [Errno 104] Connection reset by peer) Upload 's3://s3-eu-west-1.amazonaws.com/tklbam-eu-west-1-c992423735f1f4ee9616/24fh4htqs3t3tfju/duplicity-full.20160825T115809Z.vol1.difftar.gpg' failed (attempt #5, reason: error: [Errno 32] Broken pipe) Backend error detail: Traceback (most recent call last):
Neste exemplo, o servidor TurnKey está obviamente na Europa Ocidental e está tentando se conectar ao s3-eu-west-1.amazonaws.com. Os erros que estão sendo encontrados são "Reset Connection by peer" e "Broken pipe". Estes são erros comumente encontrados quando há um problema com conectividade de rede e/ou autorização.
Verificando a conectividade de rede: ping
Então vamos verificar a conectividade (substituir "s3-eu-west-1.amazonaws.com" para o endereço S3 que seu TKLBAM está tentando conectar) do seu servidor TKL para AWS S3:
ping -c 4 s3-eu-west-1.amazonaws.com
Se tudo estiver bem, deve devolver algo assim:
PING s3-eu-west-1.amazonaws.com (54.231.133.100) 56(84) bytes of data. 64 bytes from s3-eu-west-1.amazonaws.com (54.231.133.100): icmp_seq=1 ttl=48 time=66.8 ms 64 bytes from s3-eu-west-1.amazonaws.com (54.231.133.100): icmp_seq=2 ttl=48 time=104 ms 64 bytes from s3-eu-west-1.amazonaws.com (54.231.133.100): icmp_seq=3 ttl=48 time=136 ms 64 bytes from s3-eu-west-1.amazonaws.com (54.231.133.100): icmp_seq=4 ttl=48 time=122 ms
Obviamente, os tempos e o IP do servidor que você está conectando serão diferentes, mas isso mostra que o servidor TKL pode se conectar ao s3-eu-west-1.amazonaws.com bem.
Se você não é capaz de se conectar, então você está tendo um problema com configuração de rede (firewall? conexão à internet?) e / ou resolução DNS. Por favor, tente resolver esse problema dentro de sua rede antes de progredir mais.
Verificando conectividade de rede S3: navegador web
Em seguida, vamos testar conexões http e https. Estes testes seguintes assumem que você tem um PC (com um navegador web) no mesmo LAN que seu servidor e usa isso para encontrar um URL e fazer o(s) teste(s) inicial(ais). Se você não tiver um PC no mesmo LAN que seu servidor (por exemplo, um servidor remoto hospedado em outro lugar) então você ainda precisará encontrar um S3 URL apropriado para o próximo passo. Assim que tivermos um S3 URL que sabemos que funciona, podemos então verificar a partir do servidor TKL. Mas os resultados deste teste serão irrelevantes para os propósitos do TKLBAM. Eu tenho um URL para testar já, mas se você não fizer, a melhor maneira de encontrar um é via google.
site:s3-eu-west-1.amazonaws.com
Em seguida, selecione um site que tenha o URL relevante. Veja imagem anexada (FWIW Eu estou apenas usando "modo de reconhecimento" para reduzir informações irrelevantes em minhas capturas de tela - não há necessidade de você fazer isso).

No seu navegador clique em um link relevante. Estou usando "Hotspot Shield" para o meu exemplo aqui. Certifique-se de que o URL na barra de endereços ainda é um S3. Alguns sites podem redirecionar para outro URL. Se isso acontecer, volte para o Google e tente um diferente. Aqui está um exemplo de como ele deve se parecer:

Então eu acabei de confirmar o acesso ao s3-eu-west-1.amazonaws.com usando HTTPS. Para uma verificação final vamos também testar HTTP simples. Na barra de endereços, remova os 's' de 'https://...' para que seja 'http://...' . Alguns sites podem redirecionar de volta para HTTPS. Se isso acontecer, ele ainda prova que ele pode se conectar via HTTP simples (porque o servidor está redirecionando você de volta para HTTPS).
Se você está tendo erros aqui, e verificou duas URLs diferentes do S3 (encontradas via google) então há obviamente algo errado. Verifique novamente a configuração de firewall e rede. Caso contrário, verifique agora a partir de dentro do seu servidor TKL.
Verificando a conectividade de rede S3: linha de comando (curl)
Armado com um S3 URL válido (e funcional) você pode verificar se o seu servidor também pode se conectar corretamente ao S3. Para fazer isso, usaremos o curl.
Aqui está o que eu recomendo. Ele usa o curl para baixar a página, mas ignora o html baixado (só precisamos ver se há um erro ou não). Este é o comando (óbviamente use o URL que já encontrou acima).
curl http://s3-eu-west-1.amazonaws.com/tradwrds/index.html > /dev/nullSe estiver funcionando como deveria, deve fornecer saída algo como este:
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 12750 100 12750 0 0 13537 0 --:--:-- --:--:-- --:--:-- 13549
Para demonstrar como ele pode parecer se ele encontrar um erro eu mutilado o URL (então eu sei que ele não vai funcionar); isso é o que ele parece:
curl http://s3-euz-west-1.amazonaws.com/tradwrds/index.html > /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: s3-euz-west-1.amazonaws.com
Note o "curl: (6) Não foi possível resolver host: s3-euz-west-1.amazonaws.com".Novamente se você não tiver sucesso aqui, há algo errado com o acesso de rede do seu servidor TurnKey. Assumindo que isso funcione, vamos investigar mais profundamente o acesso AWS.
Acesso S3 via linha de comando: awscli
Estamos novamente trabalhando em seu servidor TKL. Primeiro instale dependências awscli:apt-get update && apt-get install python-pipUma vez que tenha completado (assumindo que completa com sucesso) então instale o próprio awscli:
pip install awscli
W também precisará criar um usuário que possa usar o perfil de segurança 'turnkeyhub' (para verificar se podemos acessar o balde como TKLBAM).
Navegue para a página de gerenciamento de usuários do AWS console IAMs: https://console.aws.amazon.com/iam/home#users
Crie um novo usuário (Eu chamei minha 'tklbam-test') e clique em criar. Na tela seguinte clique no link "Mostrar Credenciais de Segurança do Usuário" para exibir as informações de credenciais (em uma lista). Ele deve se parecer com algo como isto:
tklbam-test
Access Key ID: AKIAJ3B6NSG22LO47BUA
Secret Access Key: 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
Certifique-se de copiar/colar esta informação em algum lugar seguro (ou transferir o ficheiro csv) uma vez que sair desta tela, não poderá aceder a esta informação novamente (é necessário recriar as chaves Obviamente manter este segredo e não publicá-lo em qualquer lugar público!
Agora, de volta à tela de usuário dos IAMs, clique no novo usuário. Selecione a aba "Permissões" e clique no botão "Política de Attach". Você deve ver "turnkeyhub" listado lá. Se não, coloque- o na caixa Filtro no topo. Depois de o ter encontrado, clique dentro da caixa à direita (coloca uma marca na caixa) e clique em "Atacar a Política".
Agora é hora de usar as credenciais que salvamos antes e configurar o awscli. A maneira mais fácil de fazer a configuração é simplesmente lançar o awscli assim:
aws configureEm seguida, copie/copie as informações relevantes na janela do console. Por exemplo:
AWS Access Key ID [None]: AKIAJ3B6NSG22LO47BUA AWS Secret Access Key [None]: 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 Default region name [none]: eu-west-1 Default output format [none]:Para nossos propósitos, não importa qual região nós definimos como padrão, no entanto, faz sentido usar a região onde o TKLBAM está tentando salvar seus backups (neste caso eu-west-1). Se quiser verificar duas vezes as regiões válidas, pode encontrar as possíveis regiões e os seus códigos relevantes Aqui.
Agora verifique que você pode listar seus baldes S3 e que tudo está funcionando como deveria.
aws s3 lsDeve devolver algo assim:
2016-08-30 15:53:35 tklbam-eu-west-1-c992423735f1f4ee9616Agora vê se consegues olhar para dentro do balde.
aws s3 ls tklbam-eu-west-1-c992423735f1f4ee9616Se tudo estiver bem, deve mostrar algo assim:
PRE 24fh4htqs3t3tfj/Vamos perfurar novamente para ver o que está no subdiretório:
aws s3 ls tklbam-eu-west-1-c992423735f1f4ee9616/24fh4htqs3t3tfj/O meu parece-se com isto:
2016-08-30 15:53:50 247045 duplicity-full-signatures.20160830T055346Z.sigtar.gpg 2016-08-30 15:53:51 218 duplicity-full.20160830T055346Z.manifest.gpg 2016-08-30 15:53:49 10168660 duplicity-full.20160830T055346Z.vol1.difftar.gpgSe você pode então ver todos os seus arquivos de volume TKLBAM (como os meus displays) então tudo está bem. Se você estiver tendo algum problema de permissão ao usar o awscli, então isso sugere que há algo de errado com as permissões que você definiu no AWS. Provavelmente é o perfil de segurança "turnkeyhub" dentro do Área dos IAMs "Roles" (Console AWS).