Registro em log de experimento para o AWS FIS - AWS Serviço de injeção de falhas

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Registro em log de experimento para o AWS FIS

Você pode usar o registro de experimentos para capturar informações detalhadas sobre seu experimento à medida que ele é executado.

Você é cobrado pelo registro do experimento com base nos custos associados a cada tipo de destino do registro. Para obter mais informações, consulte Amazon CloudWatch Pricing (em Paid Tier, Logs, Vended Logs) e Amazon S3 Pricing.

Permissões

Você deve conceder permissões do AWS FIS para enviar registros para cada destino de log que configurar. Para obter mais informações, consulte o seguinte no Guia do usuário do Amazon CloudWatch Logs:

Esquema de logs

A seguir está o esquema usado no registro de logs de experimentos. A versão atual do esquema é a 2. Os campos para details dependem do valor de log_type. Os campos para resolved_targets dependem do valor de target_type. Para ter mais informações, consulte Exemplo de registros de log.

{ "id": "EXP123abc456def789", "log_type": "experiment-start | target-resolution-start | target-resolution-detail | target-resolution-end | action-start | action-error | action-end | experiment-end", "event_timestamp": "yyyy-mm-ddThh:mm:ssZ", "version": "2", "details": { "account_id":"123456789012", "action_end_time": "yyyy-mm-ddThh:mm:ssZ", "action_id": "String", "action_name": "String", "action_start_time": "yyyy-mm-ddThh:mm:ssZ", "action_state": { "status": "pending | initiating | running | completed | cancelled | stopping | stopped | failed", "reason": "String" }, "action_targets": "String to string map", "error_information": "String", "experiment_end_time": "yyyy-mm-ddThh:mm:ssZ", "experiment_state": { "status": "pending | initiating | running | completed | stopping | stopped | failed", "reason": "String" }, "experiment_start_time": "yyyy-mm-ddThh:mm:ssZ", "experiment_template_id": "String", "page": Number, "parameters": "String to string map", "resolved_targets": [ { "field": "value" } ], "resolved_targets_count": Number, "status": "failed | completed", "target_name": "String", "target_resolution_end_time": "yyyy-mm-ddThh:mm:ssZ", "target_resolution_start_time": "yyyy-mm-ddThh:mm:ssZ", "target_type": "String", "total_pages": Number, "total_resolved_targets_count": Number } }
Notas de release
  • A versão 2 inclui:

    • O campo target_type e altera o campo resolved_targets de uma lista de ARNs para uma lista de objetos. Os campos válidos para o objeto resolved_targets dependem do valor de target_type, que é o tipo de recurso dos destinos.

    • Os tipos de eventos action-error e target-resolution-detail que adicionam o campo account_id.

  • A versão 1 é a versão inicial.

Destinos de logs

O AWS FIS oferece suporte à entrega de logs para os seguintes destinos:

  • Um bucket do Amazon S3

  • Um grupo de CloudWatch registros do Amazon Logs

Entrega de logs do S3

Os logs são entregues no local a seguir.

bucket-and-optional-prefix/AWSLogs/account-id/fis/region/experiment-id/YYYY/MM/DD/account-id_awsfislogs_region_experiment-id_YYYYMMDDHHMMZ_hash.log

Pode levar alguns minutos para que os logs sejam entregues ao bucket.

CloudWatch Entrega de registros

Os logs são enviados para um fluxo de logs chamado /aws/fis/experiment-id.

Os logs são entregues ao grupo de logs em menos de um minuto.

Exemplo de registros de log

Veja a seguir exemplos de registros de log de um experimento que executa a ação aws:ec2:reboot-instances em uma instância do EC2 selecionada aleatoriamente.

experiment-start

O seguinte é um exemplo de registro para o evento experiment-start.

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "experiment-start", "event_timestamp": "2023-05-31T18:50:45Z", "version": "2", "details": { "experiment_template_id": "EXTCDh1M8HHkhxoaQ", "experiment_start_time": "2023-05-31T18:50:43Z" } }
target-resolution-start

O seguinte é um exemplo de registro para o evento target-resolution-start.

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "target-resolution-start", "event_timestamp": "2023-05-31T18:50:45Z", "version": "2", "details": { "target_resolution_start_time": "2023-05-31T18:50:45Z", "target_name": "EC2InstancesToReboot" } }
target-resolution-detail

O seguinte é um exemplo de registro para o evento target-resolution-detail. Se a resolução do destino falhar, o registro também incluirá o campo error_information.

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "target-resolution-detail", "event_timestamp": "2023-05-31T18:50:45Z", "version": "2", "details": { "target_resolution_end_time": "2023-05-31T18:50:45Z", "target_name": "EC2InstancesToReboot", "target_type": "aws:ec2:instance", "account_id": "123456789012", "resolved_targets_count": 2, "status": "completed" } }
target-resolution-end

Se a resolução do destino falhar, o registro também incluirá o campo error_information. Se total_pages for maior que 1, o número de destinos resolvidos excedeu o limite de tamanho para um registro. Há target-resolution-end registros adicionais que contêm os destinos resolvidos restantes.

O seguinte é um exemplo de registro para o evento target-resolution-end para uma ação do EC2.

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "target-resolution-end", "event_timestamp": "2023-05-31T18:50:45Z", "version": "2", "details": { "target_resolution_end_time": "2023-05-31T18:50:46Z", "target_name": "EC2InstanceToReboot", "target_type": "aws:ec2:instance", "resolved_targets": [ { "arn": "arn:aws:ec2:us-east-1:123456789012:instance/i-0f7ee2abffc330de5" } ], "page": 1, "total_pages": 1 } }

O seguinte é um exemplo de registro para o evento target-resolution-end para uma ação do EKS.

{ "id": "EXP24YfiucfyVPJpEJn", "log_type": "target-resolution-end", "event_timestamp": "2023-05-31T18:50:45Z", "version": "2", "details": { "target_resolution_end_time": "2023-05-31T18:50:46Z", "target_name": "myPods", "target_type": "aws:eks:pod", "resolved_targets": [ { "pod_name": "example-696fb6498b-sxhw5", "namespace": "default", "cluster_arn": "arn:aws:eks:us-east-1:123456789012:cluster/fis-demo-cluster", "target_container_name": "example" } ], "page": 1, "total_pages": 1 } }
action-start

O seguinte é um exemplo de registro para o evento action-start. Se o modelo do experimento especificar parâmetros para a ação, o registro também incluirá o campo parameters.

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "action-start", "event_timestamp": "2023-05-31T18:50:56Z", "version": "2", "details": { "action_name": "Reboot", "action_id": "aws:ec2:reboot-instances", "action_start_time": "2023-05-31T18:50:56Z", "action_targets": {"Instances":"EC2InstancesToReboot"} } }
action-error

O seguinte é um exemplo de registro para o evento action-error. Esse evento só é retornado quando uma ação falha. Ele é retornado para cada conta em que a ação falha.

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "action-error", "event_timestamp": "2023-05-31T18:50:56Z", "version": "2", "details": { "action_name": "pause-io", "action_id": "aws:ebs:pause-volume-io", "account_id": "123456789012", "action_state": { "status": "failed", "reason":"Unable to start Pause Volume IO. Target volumes must be attached to an instance type based on the Nitro system. VolumeId(s): [vol-1234567890abcdef0]:" } } }
action-end

O seguinte é um exemplo de registro para o evento action-end.

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "action-end", "event_timestamp": "2023-05-31T18:50:56Z", "version": "2", "details": { "action_name": "Reboot", "action_id": "aws:ec2:reboot-instances", "action_end_time": "2023-05-31T18:50:56Z", "action_state": { "status": "completed", "reason": "Action was completed." } } }
experiment-end

O seguinte é um exemplo de registro para o evento experiment-end.

{ "id": "EXPhjAXCGY78HV2a4A", "log_type": "experiment-end", "event_timestamp": "2023-05-31T18:50:57Z", "version": "2", "details": { "experiment_end_time": "2023-05-31T18:50:57Z", "experiment_state": { "status": "completed", "reason": "Experiment completed" } } }

Habilitar registro em log de experimento

O registro em log de experimento está desativado por padrão. Para receber logs de um experimento, você deve criar o experimento a partir de um modelo de experimento com o registro em log ativado. Na primeira vez que você executa um experimento configurado para usar um destino que não tenha sido usado anteriormente para registro, atrasamos o experimento para configurar a entrega de registros para esse destino, o que leva cerca de 15 segundos.

Para habilitar o registro em log usando o console
  1. Abra o console do AWS FIS em https://console.aws.amazon.com/fis/.

  2. No painel de navegação, selecione Modelos de experimento.

  3. Selecione o modelo do experimento e escolha Ações, Atualizar modelo de experimento.

  4. Para Logs, configure as opções de destino. Para enviar registros para um bucket do S3, escolha Enviar para um bucket do Amazon S3 e insira o nome e o prefixo do bucket. Para enviar registros para CloudWatch registros, escolha Enviar para CloudWatch registros e entre no grupo de registros.

  5. Escolha Atualizar modelo de experimento.

Para habilitar o registro em log usando a AWS CLI

Use o update-experiment-templatecomando e especifique uma configuração de log.

Desabilitar registro em log

Se não desejar mais receber logs para seus experimentos, desabilite o registro em log de experimento.

Para desabilitar o registro em log usando o console
  1. Abra o console do AWS FIS em https://console.aws.amazon.com/fis/.

  2. No painel de navegação, selecione Modelos de experimento.

  3. Selecione o modelo do experimento e escolha Ações, Atualizar modelo de experimento.

  4. Para Registros, desmarque Enviar para um bucket do Amazon S3 e Enviar para CloudWatch registros.

  5. Escolha Atualizar modelo de experimento.

Para desabilitar o registro em log usando a AWS CLI

Use o update-experiment-templatecomando e especifique uma configuração de log vazia.