Início rápido: instale o agente CloudWatch Logs usando o AWS OpsWorks Chef - CloudWatch Registros da Amazon

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á.

Início rápido: instale o agente CloudWatch Logs usando o AWS OpsWorks Chef

Você pode instalar o agente CloudWatch Logs e criar fluxos de log usando o AWS OpsWorks Chef, que é uma ferramenta terceirizada de automação de sistemas e infraestrutura em nuvem. O Chef usa "receitas", que você grava para instalar e configurar o software em seu computador, e "livros de receitas", que são coleções de receitas, para executar suas tarefas de configuração e distribuição de políticas. Para obter mais informações, consulte Chef.

Os exemplos de receitas do Chef a seguir mostram como monitorar um arquivo de log em cada instância do EC2. As receitas usam o nome da pilha como o grupo de logs e o nome de host da instância como o nome do stream de logs. Para monitorar vários arquivos de log, você precisa estender as receitas para criar vários grupos e fluxos de logs.

Etapa 1: Criar receitas personalizadas

Crie um repositório para armazenar suas receitas. AWS OpsWorks suporta Git e Subversion, ou você pode armazenar um arquivo no Amazon S3. A estrutura do repositório do livro de receitas é descrita em Repositórios de livros de receitas no Manual do usuário doAWS OpsWorks . Os exemplos a seguir presumem que o livro de receitas seja denominado logs. A receita install.rb instala o agente Logs. CloudWatch Você também pode baixar o exemplo do livro de receitas (CloudWatchLogs-Cookbooks.zip).

Crie um arquivo chamado metadata.rb que contém o código a seguir:

#metadata.rb name 'logs' version '0.0.1'

Crie o arquivo CloudWatch de configuração de registros:

#config.rb template "/tmp/cwlogs.cfg" do cookbook "logs" source "cwlogs.cfg.erb" owner "root" group "root" mode 0644 end

Baixe e instale o agente CloudWatch Logs:

# install.rb directory "/opt/aws/cloudwatch" do recursive true end remote_file "/opt/aws/cloudwatch/awslogs-agent-setup.py" do source "https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py" mode "0755" end execute "Install CloudWatch Logs agent" do command "/opt/aws/cloudwatch/awslogs-agent-setup.py -n -r region -c /tmp/cwlogs.cfg" not_if { system "pgrep -f aws-logs-agent-setup" } end
nota

No exemplo acima, substitua região por uma das seguintes: us-east-1, us-west-1, us-west-2, ap-south-1, ap-northeast-2, ap-southeast-1, ap-southeast-2, ap-northeast-1, eu-central-1, eu-west-1 ou sa-east-1.

Se a instalação do agente falhar, verifique se o pacote python-dev está instalado. Se não estiver, use o comando a seguir e, em seguida, tente outra vez a instalação do agente:

sudo apt-get -y install python-dev

Essa receita usa um arquivo de modelo cwlogs.cfg.erb que você pode modificar para especificar vários atributos, como quais arquivos registrar. Para obter mais informações sobre esses atributos, consulte Referência do agente do CloudWatch Logs.

[general] # Path to the AWSLogs agent's state file. Agent uses this file to maintain # client side state across its executions. state_file = /var/awslogs/state/agent-state ## Each log file is defined in its own section. The section name doesn't ## matter as long as its unique within this file. # #[kern.log] # ## Path of log file for the agent to monitor and upload. # #file = /var/log/kern.log # ## Name of the destination log group. # #log_group_name = kern.log # ## Name of the destination log stream. # #log_stream_name = {instance_id} # ## Format specifier for timestamp parsing. # #datetime_format = %b %d %H:%M:%S # # [<%= node[:opsworks][:stack][:name] %>] datetime_format = [%Y-%m-%d %H:%M:%S] log_group_name = <%= node[:opsworks][:stack][:name].gsub(' ','_') %> file = <%= node[:cwlogs][:logfile] %> log_stream_name = <%= node[:opsworks][:instance][:hostname] %>

O modelo obtém o nome da pilha e o nome de host consultando os atributos correspondentes na configuração de pilha e no JSON de implantação. O atributo que especifica o arquivo a ser registrado é definido no arquivo de atributos default.rb do livro de receitas (logs/atributos/default.rb).

default[:cwlogs][:logfile] = '/var/log/aws/opsworks/opsworks-agent.statistics.log'

Etapa 2: criar uma AWS OpsWorks pilha

  1. Abra o AWS OpsWorks console em https://console.aws.amazon.com/opsworks/.

  2. No OpsWorks Painel, escolha Adicionar pilha para criar uma AWS OpsWorks pilha.

  3. Na tela Adicionar pilha, escolha Pilha do Chef 11.

  4. Em Nome da pilha, digite um nome.

  5. Em Usar livros de receitas personalizadas do Chef, escolha Sim.

  6. Em Tipo de repositório, selecione o tipo de repositório que você usa. Se você estiver usando o exemplo acima, escolha Arquivo Http.

  7. Em URL de repositório, insira o repositório onde você armazenou o livro de receitas criado na etapa anterior. Se você estiver usando o exemplo acima, insira https://s3.amazonaws.com/aws-cloudwatch/downloads/CloudWatchLogs-Cookbooks.zip.

  8. Selecione Criar para criar uma pilha.

Etapa 3: Estender sua função do IAM

Para usar CloudWatch Logs com suas AWS OpsWorks instâncias, você precisa estender a função do IAM usada por suas instâncias.

  1. Abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Políticas, Criar política.

  3. Na página Criar política, em Criar sua própria política, escolha Selecionar. Para obter mais informações sobre como criar políticas personalizadas, consulte Políticas do IAM para o Amazon EC2 no Manual do usuário do Amazon EC2 para instâncias do Linux.

  4. Na página Revisar política, em Nome da política, digite um nome para a política.

  5. Em Documento da política, cole a política a seguir:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
  6. Escolha Create Policy.

  7. No painel de navegação, escolha Funções e, em seguida, no painel de conteúdo, em Nome da função, selecione o nome da função da instância usada pela sua AWS OpsWorks pilha. Você pode encontrar a usada pela sua pilha nas configurações da pilha (o padrão é aws-opsworks-ec2-role).

    nota

    Escolha o nome da função, não a caixa de seleção.

  8. Na guia Permissões, em Políticas gerenciadas, selecione Anexar política.

  9. Na página Anexar política, no cabeçalho da tabela (ao lado de Filtro e Pesquisar), escolha Tipo de política, Políticas gerenciadas pelo cliente.

  10. Em Customer Managed Policies (Políticas gerenciadas pelo cliente), selecione a política do IAM que você criou acima e escolha Attach Policy (Anexar política).

    Para obter mais informações sobre usuários e políticas, consulte Usuários e grupos do IAM e Gerenciar políticas do IAM no Guia do usuário do IAM.

Etapa 4: Adicionar uma camada

  1. Abra o AWS OpsWorks console em https://console.aws.amazon.com/opsworks/.

  2. No painel de navegação, escolha Camadas.

  3. No painel de conteúdo, selecione uma camada e escolha Adicionar camada.

  4. Na OpsWorksguia, em Tipo de camada, escolha Personalizado.

  5. Nos campos Nome e Nome curto, digite os nomes longo e curto da camada. Em seguida, escolha Adicionar camada.

  6. Na guia Receitas, em Receitas personalizadas do Chef, há vários títulos — Configuração, Configuração, Implantação, Desimplantação e Desativação — que correspondem aos eventos do ciclo de vida. AWS OpsWorks AWS OpsWorks aciona esses eventos nesses pontos-chave do ciclo de vida da instância, que executa as receitas associadas.

    nota

    Se os títulos acima não estiverem visíveis, em Receitas personalizadas do chef, escolha editar.

  7. Digite logs::config, logs::install próximo de Configuração, escolha + para adicioná-lo à lista e escolha Salvar.

    AWS OpsWorks executa essa receita em cada uma das novas instâncias dessa camada, logo após a inicialização da instância.

Etapa 5: Adicionar uma instância

A camada só controla como configurar instâncias. Agora, é preciso adicionar algumas instâncias à camada e iniciá-las.

  1. Abra o AWS OpsWorks console em https://console.aws.amazon.com/opsworks/.

  2. No painel de navegação, selecione Instâncias e, na sua camada, selecione + Instância.

  3. Aceite as configurações padrão e escolha Adicionar instância para adicionar a instância à camada.

  4. Na coluna Ações da linha, clique em iniciar para iniciar a instância.

    AWS OpsWorks inicia uma nova instância do EC2 e configura os registros. CloudWatch O status da instância mudará para online quando estiver pronta.

Etapa 6: Visualizar seus logs

Você deverá ver o grupo de registros e o stream de registros recém-criados no CloudWatch console depois que o agente estiver em execução por alguns instantes.

Para ter mais informações, consulte Exibir dados de registro enviados para o CloudWatch Logs.