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: instalar o agente do CloudWatch Logs usando o AWS OpsWorks e o Chef
Você pode instalar o agente do CloudWatch Logs e criar fluxos de logs usando o AWS OpsWorks e o Chef, que é uma ferramenta de automação de sistemas e infraestrutura em nuvem de terceiros. 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. O AWS OpsWorks oferece suporte ao Git e ao 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 do AWS OpsWorks. Os exemplos a seguir presumem que o livro de receitas seja denominado logs
. A receita install.rb instala o agente do CloudWatch Logs. Também é possível fazer download do exemplo de 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'
Criar o arquivo de configuração do CloudWatch Logs:
#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 do 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 pilha do AWS OpsWorks
Abra o console AWS OpsWorks do em https://console.aws.amazon.com/opsworks/
. -
Em OpsWorks Dashboard (Painel do OpsWorks), escolha Add stack (Adicionar pilha) para criar uma pilha do AWS OpsWorks.
-
Na tela Adicionar pilha, escolha Pilha do Chef 11.
-
Em Nome da pilha, digite um nome.
-
Em Usar livros de receitas personalizadas do Chef, escolha Sim.
-
Em Tipo de repositório, selecione o tipo de repositório que você usa. Se você estiver usando o exemplo acima, escolha Arquivo Http.
-
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
. -
Selecione Criar para criar uma pilha.
Etapa 3: Estender sua função do IAM
Para usar o CloudWatch Logs com suas instâncias do AWS OpsWorks, é necessário estender a função do IAM usada por suas instâncias.
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
. -
No painel de navegação, escolha Políticas, Criar política.
-
Na página Criar política, em Criar sua própria política, escolha Selecionar. Para obter mais informações sobre a criação de políticas personalizadas, consulte Políticas do IAM para o Amazon EC2 no Manual do usuário do Amazon EC2.
-
Na página Revisar política, em Nome da política, digite um nome para a política.
-
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:*:*:*" ] } ] }
-
Escolha Criar política.
-
No painel de navegação, escolha Roles (Funções) e, em seguida, no painel de conteúdo, em Role Name (Nome da função), selecione o nome da função da instância usada por sua pilha do AWS OpsWorks. 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.
-
Na guia Permissões, em Políticas gerenciadas, selecione Anexar política.
-
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.
-
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
Abra o console AWS OpsWorks do em https://console.aws.amazon.com/opsworks/
. -
No painel de navegação, escolha Camadas.
-
No painel de conteúdo, selecione uma camada e escolha Adicionar camada.
-
Na guia OpsWorks, em Tipo de camada, escolha Personalizar.
-
Nos campos Nome e Nome curto, digite os nomes longo e curto da camada. Em seguida, escolha Adicionar camada.
-
Na guia Recipes (Receitas), em Custom Chef Recipes (Receitas personalizadas do chefe), há vários títulos: Setup (Instalar), Configure (Configurar), Deploy (Implantar), Undeploy (Desfazer a implantação) e Shutdown (Encerrar). Esses títulos correspondem aos eventos de ciclo de vida do AWS OpsWorks. O AWS OpsWorks aciona esses eventos nos 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.
-
Digite logs::config, logs::install próximo de Configuração, escolha + para adicioná-lo à lista e escolha Salvar.
O AWS OpsWorks executa essa receita em cada uma das novas instâncias nessa camada, logo depois que a instância é inicializada.
Etapa 5: Adicionar uma instância
A camada só controla como configurar instâncias. Agora, é preciso adicionar algumas instâncias à camada e iniciá-las.
Abra o console AWS OpsWorks do em https://console.aws.amazon.com/opsworks/
. -
No painel de navegação, selecione Instâncias e, na sua camada, selecione + Instância.
-
Aceite as configurações padrão e escolha Adicionar instância para adicionar a instância à camada.
-
Na coluna Ações da linha, clique em iniciar para iniciar a instância.
O AWS OpsWorks inicia uma nova instância do EC2 e configura o CloudWatch Logs. O status da instância mudará para online quando estiver pronta.
Etapa 6: Visualizar seus logs
Você deve ver o grupo de logs recém-criado e o fluxo de logs no console do CloudWatch depois de alguns minutos de execução do agente.
Para ter mais informações, consulte Exibir dados de registro enviados para CloudWatch Logs.