Archivo de configuración para la implementación ATOP en AWS Elastic Beanstalk

Archivo de configuración para la implementación ATOP en AWS Elastic Beanstalk

SOLUCIONADO Necesito ATOP para instalar en EC2 las instancias en las que las máquinas se implementan desde Beanstalk. El soporte de AWS solo tenía el siguiente enlace para seguir, pero no muestra cómo implementar en los archivos de configuración de ebextensions. ¿Alguien ya ha hecho esto y ya tiene un archivo de configuración creado? ¡Gracias! -->https://www.tecmint.com/how-to-install-atop-to-monitor-logging-activity-of-linux-system-processes/

{{Editar 23/03/18}}

Hasta ahora, trabajando en esto por mi cuenta, esto es lo que tengo. No funciona del todo, pero todavía estoy trabajando en ello.

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

Respuesta1

Con la ayuda del increíble Yao del soporte técnico de AWS Beanstalk, hemos podido crear un archivo que instala ATOP en todas las instancias. Además, escribe registros de instancias individuales en mi directorio de archivos EFS vinculado simbólicamente existente para que los registros persistan durante el escalado y las implementaciones de máquinas. Esto está funcionando ahora en mi implementación de desarrollo. Si no escucha nada más, significará que también estará funcionando en producción en aproximadamente una semana. Aquí está el contenido modificado para mi implementación de Wordpress. ¡Disfrutar!

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

Respuesta2

No estoy seguro, pero creo que si ejecutara esa URL curl desde una CLI de instancia de AWS, devolverá el ID de instancia desde donde está llamando. Una de las formas en que utiliza esto es crear directorios de registro con el ID de la instancia como nombre de la carpeta para que puedan registrarse y recuperarse por instancia que se ejecuta ATOP.

información relacionada