
RESOLVIDO Preciso que o ATOP instale no EC2 as instâncias quando as máquinas forem implantadas a partir do Beanstalk. O suporte da AWS só tinha o link abaixo para seguir, mas não mostra como implantar nos arquivos de configuração das ebextensions. Alguém já fez isso e já criou um arquivo de configuração? Obrigado! -->https://www.tecmint.com/how-to-install-atop-to-monitor-logging-activity-of-linux-system-processes/
{{Editar 23/03/18}}
Trabalhando nisso sozinho até agora, é isso que tenho. Não funciona totalmente, mas ainda está trabalhando nisso.
packages:
rpm:
epel: https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
container_commands:
1_rpm_atop:
command: "sudo /bin/rpm -i --replacepkgs
https://www.atoptool.nl/download/atop-2.3.0-1.el6.x86_64.rpm"
2_add_atop:
command: "/sbin/chkconfig --add atop"
leader_only: true
3_add_atop:
command: "/sbin/chkconfig atop on --level 235"
leader_only: true
4_config_atop:
command: "/bin/sed 's/600/60/' /usr/share/atop/atop.daily -i"
leader_only: true
5_link:
command: "/bin/ln -sfn /var/log/atop /var/app/current/wp-content/uploads/atop"
leader_only: true
6_start:
command: "/etc/init.d/atop start"
leader_only: true
Responder1
Com a ajuda do incrível suporte técnico Yao do AWS Beanstalk, conseguimos criar um arquivo que instala o ATOP em todas as instâncias. Além disso, ele grava logs de instâncias individuais em meu diretório de arquivos EFS já existente, vinculado por símbolo, para que os logs persistam durante o dimensionamento e implantações de máquina. Isso está funcionando agora na minha implantação de desenvolvimento. Se você não ouvir mais nada, isso significará que ele também estará funcionando em produção em cerca de uma semana. Aqui está o conteúdo ajustado para minha implantação do Wordpress. Aproveitar!
container_commands:
1_install_config_atop:
command: /tmp/installatop.sh
files:
"/tmp/installatop.sh":
mode: "000755"
content : |
#!/bin/bash
#############################################
ATOPLOGDEST=/var/app/current/wp-content/uploads/atop/ #where to persist the atop log
LOGFILE=/tmp/atopinstall.log #installaton log
##############################################
INSTANCEID=$(curl http://169.254.169.254/latest/meta-data/instance-id/)
exec 1>&- # close stdout
exec 2>&- # close stderr
echo "========" >> $LOGFILE
date >> $LOGFILE
echo "starting" >> $LOGFILE
echo "---- Step 1, install atop" >> $LOGFILE
echo "check if atop is installed" >> $LOGFILE
rpm -q atop >> $LOGFILE
if [ $? -ne 0 ]
then
echo "atop not installed yet" >> $LOGFILE
rpm -i https://www.atoptool.nl/download/atop-2.3.0-1.el6.x86_64.rpm
rpm -q atop >> $LOGFILE
echo "now installed" >> $LOGFILE
fi
echo "---- step 2, config atop in chkconfig" >> $LOGFILE
/sbin/chkconfig --add atop
/sbin/chkconfig atop on --level 235
echo "this is the output of chkconfig" >> $LOGFILE
/sbin/chkconfig | grep atop >> $LOGFILE
echo "---- setp 3, config atop's schedule to 60 seconds" >> $LOGFILE
/bin/sed 's/600/60/' /usr/share/atop/atop.daily -i
cat /usr/share/atop/atop.daily | grep "INTERVAL=" >> $LOGFILE
echo "---- step 4, presistent it in EFS" >> $LOGFILE
mkdir -p $ATOPLOGDEST$INSTANCEID
/bin/sed "s|/var/log/atop|$ATOPLOGDEST$INSTANCEID|" /usr/share/atop/atop.daily -i
cat /usr/share/atop/atop.daily | grep "LOGPATH=" >> $LOGFILE
stat $ATOPLOGDEST$INSTANCEID >> $LOGFILE
echo "---- step 5, restart atop" >> $LOGFILE
/etc/init.d/atop restart
sleep 5
ps aux | grep atop >> $LOGFILE
echo "---- finished!" >> $LOGFILE
date >> $LOGFILE
echo "========" >> $LOGFILE
Responder2
Não tenho certeza, mas acho que se você executar esse URL curl a partir de uma CLI de instância da AWS, ele retornará o ID da instância da qual você está ligando. Uma das maneiras de usar isso é criar diretórios de log com o ID da instância como o nome da pasta para que possam ser registrados e recuperados por instância que executa o ATOP.