Acesse a página de Armazenamento de Parâmetros do AWS System Manager para criar um parâmetro e clique no botão “Criar parâmetro”.
Defina AmazonCloudWatch-linux como nome, selecione o nível “Padrão” e tipo “String”.
Insira o conteúdo JSON descrito abaixo em “Valor”. por fim, clique em “Criar parâmetro”.
{
"metrics":{
"append_dimensions":{
"AutoScalingGroupName":"${aws:AutoScalingGroupName}",
"ImageId":"${aws:ImageId}",
"InstanceId":"${aws:InstanceId}",
"InstanceType":"${aws:InstanceType}"
},
"metrics_collected":{
"disk":{
"measurement":[
"disk_total",
"disk_used"
],
"metrics_collection_interval":300,
"ignore_file_system_types":[
"tmpfs",
"devtmpfs",
"rootfs",
"sysfs"
],
"resources":[
"*"
]
},
"mem":{
"measurement":[
"mem_total",
"mem_used"
],
"metrics_collection_interval":300
},
"swap":{
"measurement":[
"swap_used",
"swap_used_percent"
],
"metrics_collection_interval":300
}
}
}
}
Assim que for criado, o parâmetro vai aparecer na tela de “Meus parâmetros”.
Para que o CWAgent envie dados para o CloudWatch é necessário criar uma função e incluir duas permissões: AmazonEC2RoleforSSM e CloudWatchAgentServerPolicy, através das políticas gerenciadas da AWS na Função IAM para instâncias EC2. Essa função IAM deve ser anexada às instâncias EC2. Caso já possua alguma Função IAM em uso para EC2, é necessário apenas adicionar as permissões AmazonEC2RoleforSSM e CloudWatchAgentServerPolicy. Acesse a página de “Funções” para prosseguir com o tutorial:
Na tela “Criar função”, selecione ”Serviço da AWS” e EC2 como “Caso de uso”. Em seguida, clique em “Próximo”.
Selecione a política AmazonEC2RoleforSSM e clique em “Próximo”.
Na tela de revisão, verifique se as políticas corretas estão sendo aplicadas e clique em “Criar função”.
É necessário realizar a instalação do CWAgent em todas as máquinas que deseja coletar as métricas. Para isso, é possível realizar o processo a partir do acesso individual de cada uma das máquinas ou automatizar essa etapa através da instalação do script bash na rotina de DevOps.
Segue o script abaixo para realizar a instalação:
#!/bin/bash
cd /home/ubuntu
wgethttps://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/debian_amd64/amazon-ssm-agent.deb
sudo dpkg -i amazon-ssm-agent.deb
sudo rm -rf amazon-ssm-agent.deb
mkdir cwAgentPackage
cd cwAgentPackage
wgethttps://s3.amazonaws.com/amazoncloudwatch-agent/linux/amd64/latest/AmazonCloudWatchAgent.zip
sudo apt-get install -y --force-yes unzip
unzip AmazonCloudWatchAgent.zip
sudo chmod +x install.sh
sudo ./install.sh
cd ..
sudo rm -rf cwAgentPackage
## JSON file stored via ParameterStore called AmazonCloudWatch-linux
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c ssm:AmazonCloudWatch-linux -s
sudo service amazon-ssm-agent restart
🎉 Agora, o agente envia as métricas para o CloudWatch, que serão coletadas pela CleanCloud e estarão disponíveis em até 12h para serem usadas nos dashboards e insights.
<aside> ❓ Ficou com dúvida? Acesse os links abaixo.
O que é CloudWatch ? O que é SSM ? O que é CWAgent ?
</aside>