Menu
Logs do Amazon CloudWatch
Guia do usuário

A exportação de dados de log para o Amazon S3 usando o AWS CLI

No exemplo a seguir, você usa uma tarefa de exportação para exportar todos os dados de um grupo de logs CloudWatch Logs chamado "meu-log-group" para um bucket do Amazon S3 chamado "meu-exportados-logs."

Etapa 1: Criar um bucket do Amazon S3

Recomendamos que você use um bucket que foi criada especificamente para CloudWatch Logs. No entanto, se você deseja usar um bucket existente, vá para a etapa 2.

nota

O bucket do Amazon S3 devem residir na mesma região que os dados de log que você deseja exportar. CloudWatch Logs não oferece suporte à exportação de dados para buckets do Amazon S3 que são criados em uma região diferente. Para obter uma lista de regiões e pontos de extremidade CloudWatch Logs, consulte Regions and Endpoints em Referência geral do Amazon Web Services.

Para criar um bucket do Amazon S3

  • Em um prompt de comando, digite o seguinte comando:

    Copy
    aws s3api create-bucket --bucket my-exported-logs --create-bucket-configuration LocationConstraint=us-west-2

    Para obter mais informações sobre o aws s3api create-bucket comando e o LocationConstraint parâmetro, consulte create-bucket no AWS Command Line Interface Reference.

    Certifique-se de alterar us-west-2 de acordo com a região onde você estiver exportando seus dados de log. Se o comando for bem-sucedido, a ILC da AWS exibe o local e o nome do bucket do Amazon S3:

    Copy
    { "Location": "/my-exported-logs" }

    Você pode usar o comando list-buckets do Amazon S3 para verificar se o bucket foi criado.

Etapa 2: Defina permissões em um bucket do Amazon S3

Por padrão, todos os buckets e os objetos do Amazon S3 são privados. Somente o proprietário de recursos, a conta da AWS que criou o período, pode acessar o bucket e os objetos que ele contém. O recurso proprietário pode, no entanto, escolha para conceder permissões de acesso a outros recursos e usuários, criando uma política de acesso.

Para definir permissões em um bucket do Amazon S3

  1. Crie um arquivo chamado policy.json e adicionar a seguinte política de acesso a ele.

    Copy
    { "Version": "2012-10-17", "Statement": [ { "Action": "s3:GetBucketAcl", "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs", "Principal": { "Service": "logs.us-west-2.amazonaws.com" } }, { "Action": "s3:PutObject" , "Effect": "Allow", "Resource": "arn:aws:s3:::my-exported-logs/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } }, "Principal": { "Service": "logs.us-west-2.amazonaws.com" } } ] }
  2. Para meu-exportados-logs, substitua o nome do seu bucket e para logs.us-west-2.amazonaws.com CloudWatch Logs, substitua o endpoint da região que você planeja usar para criar sua tarefa de exportação. Para obter uma lista dos endpoints e regiões compatíveis, consulte Regions and Endpoints em Referência geral do Amazon Web Services.

  3. Defina a política que você acabou de adicionar à medida que a política de acesso em seu bucket. Esta política permite que CloudWatch Logs para exportar dados de log em seu bucket do Amazon S3. O proprietário do balde terá permissões completas sobre todos os objetos exportados.

    Copy
    aws s3api put-bucket-policy --bucket my-exported-logs --policy file://policy.json

    Atenção

    Se o bucket existente já tem uma ou mais políticas anexado a ele, adicione as instruções para CloudWatch Logs acesso a essa política ou políticas. Recomendamos que você avalie o conjunto de permissões resultante para ter certeza de que eles são apropriadas para os usuários que serão acessar o bucket.

Etapa 3: Crie uma tarefa de exportação

Nesta etapa você cria a tarefa de exportação para exportar os logs de um grupo de logs. O aws logs create-export-task comando inicia uma tarefa de exportação que pode levar de alguns segundos a algumas horas, dependendo do tamanho dos dados que você deseja exportar.

Para criar uma tarefa de exportação

  • Em um prompt de comando, digite o seguinte comando:

    Copy
    aws logs create-export-task --task-name "my-log-group-09-10-2015" --log-group-name "my-log-group" --from 1441490400000 --to 1441494000000 --destination "my-exported-logs" --destination-prefix "export-task-output"

    Se o comando for bem-sucedido, a ILC da AWS exibe o ID da tarefa que você criou:

    Copy
    { "task-id": "cda45419-90ea-4db5-9833-aade86253e66" }

Etapa 4: Descrever Exportar Tarefas

Você pode usar o ID de tarefa que é retornado pelo comando create-export-task para obter o status atual da tarefa.

Para descrever as tarefas de exportação

  • Em um prompt de comando, digite o seguinte comando:

    Copy
    aws logs describe-export-tasks --task-id "cda45419-90ea-4db5-9833-aade86253e66"

    Se o comando for bem-sucedido, a ILC da AWS exibe as seguintes informações sobre a tarefa:

    Copy
    { "ExportTasks": [ { "Destination": "my-exported-logs", "DestinationPrefix": "export-task-output", "ExecutionInfo": { "CreationTime": 1441495400000 }, "From": 1441490400000, "LogGroupName": "my-log-group", "Status": { "Code": "RUNNING", "Message": "Started Successfully" }, "TaskId": "cda45419-90ea-4db5-9833-aade86253e66", "TaskName": "my-log-group-09-10-2015", "To": 1441494000000 }] }

Você pode usar o describe-export-tasks comando em três diferentes maneiras:

  • Sem quaisquer filtros: Retorna uma lista paginada de todas as suas tarefas de exportação na ordem inversa do momento da criação.

  • Filtrar em ID de Tarefas: retorna apenas uma tarefa de exportação, se houver, com o ID especificado.

  • Filtrar em Status da Tarefa: Retorna uma lista de tarefas que satisfazem o status filtro.

O exemplo a seguir mostra como aplicar o status "FALHOU" filtro:

Copy
aws logs describe-export-tasks --status-code "FAILED"

Se o comando for bem-sucedido, a ILC da AWS exibe as seguintes informações sobre a tarefa:

Copy
{ "ExportTasks": [ { "Destination": "my-exported-logs", "DestinationPrefix": "export-task-output", "ExecutionInfo": { "CompletionTime": 1441498600000 "CreationTime": 1441495400000 }, "From": 1441490400000, "LogGroupName": "my-log-group", "Status": { "Code": "FAILED", "Message": "FAILED" }, "TaskId": "cda45419-90ea-4db5-9833-aade86253e66", "TaskName": "my-log-group-09-10-2015", "To": 1441494000000 }] }

Etapa 5: Cancelar uma tarefa de exportação

Você pode cancelar uma tarefa de exportação se estiver no estado RUNNING ou PENDING.

Para cancelar uma tarefa de exportação

  1. Em um prompt de comando, digite o seguinte comando:

    Copy
    aws logs cancel-export-task --task-id "cda45419-90ea-4db5-9833-aade86253e66"
  2. (Opcional) Use o describe-export-task comando para verificar se a tarefa foi cancelado com êxito.