DEV Community

camilo cabrales
camilo cabrales

Posted on

Como configurar el agente de CloudWatch con Systems Manager para monitorear la memoria de una instancia EC2

CloudWatch nos permite monitorear diferentes tipos de métricas de los servicios de AWS, sin embargo si queremos monitorear la memoria de nuestras maquinas EC2, es necesario realizar la instalación del agente de CloudWatch para este fin.

En este ejemplo vamos a utilizar el servicio de Systems Manager _para realizar la instalación del agente en una instancia _EC2.

Los pasos a realizar son los siguientes.

1.Tener una(s) instancia(s) en EC2 ejecutándose con un ROL que tenga los siguientes permisos: CloudWatchAgentServerPolicy, AmazonSSMManagedInstanceCore.

2.Instalar el agente en nuestra(s) maquina EC2.

3.Configurar un Parametro en Parameter Store para almacenar la configuración del agente de CloudWatch.

4.Configurar el agente de CloudWatch.

5.Crear dashboard en CloudWatch.

Vamos a partir que tenemos una instancia EC2 en ejecución con un ROL que cuente con los permisos mencionados en el punto 1.

Para la instalación del agente vamos a utilizar el servicio Systems Manager que dentro de sus funciones esta controlar la infraestructura que tenemos desplegada.

Empecemos:

Vamos al servicio system manager y seleccionamos Run Command.

Init Systems Manager

En la barra de búsqueda de la sección Command document vamos a buscar el comando: AWS-ConfigureAWSPackage y lo seleccionamos.

Set Command

Nos dirigimos a la sección Command parameters en donde vamos a definir el paquete que queremos instalar y en el campo name colocamos: AmazonCloudWatchAgent

Set Package

Después de haber definido el comando y el paquete que queremos ejecutar, debemos seleccionar la(s) instancia(s) en la(s) cual(es) queremos que se realice la ejecución del comando.Para esto nos dirigimos a la sección targets y seleccionamos la opción Choose instances manually y en el resultado de búsqueda realizamos la selección deseada, que para este caso es una única instancia.

Set Package

Para ver los resultados de ejecución del comando podemos seleccionar un bucket en el cual se deben almacenar los resultados de la ejecución, pero para este ejercicio no vamos a activar que los resultados se guarden en un bucket de S3, por lo tanto debemos desactivar la opción en la sección Output options y damos click en el botón Run.

Output options

Al ejecutar el comando vamos a ver una pantalla como la siguiente, donde vamos a poder ver el estado de la ejecución del comando.

Output options

El siguiente paso que debemos hacer es configurar las métricas que el agente va a monitorear (memoria en uso, memoria disponible y memoria total). Vamos a crear un parámetro en Parameter Store con la siguiente configuración:

{
  "agent": {
    "metrics_collection_interval": 60,
    "logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log"
  },
  "metrics": {
    "metrics_collected": {
      "mem": {
        "measurement": [
          { "name": "mem_used", "rename": "MemoryUsed" },
          { "name": "mem_available", "rename": "MemoryAvailable" },
          { "name": "mem_total", "rename": "TotalMemory" }
        ]
      }
    },
    "append_dimensions": {
      "InstanceId": "${aws:InstanceId}"
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

Para configurar el parámetro vamos a Parameter Store que se encuentra dentro de System Mananager y damos click en Create Parameter.

Principal Parameter Store

Diligenciamos las campos requeridos del parámetro y damos click en Create parameter. En el campo value se agrega el json definido arriba.

Principal Parameter Store

Para terminar la configuración de nuestro agente debemos ejecutar nuevamente otro comando con la siguiente configuración:

Buscamos y seleccionamos el comando: AmazonCloudWatch-ManageAgent

Principal Parameter Store

Definimos la configuración que va tener el comando y pasamos el nombre del parámetro que creamos en Parameter Store que para este caso su nombre es: EC2AgentMemory

Config parameter agent

Ahora debe seleccionamos la(s) instancia(s) en la(s) cuales queremos ejecutar el comando, podemos quitar la selección para que nuestros resultados de ejecución se guarden en S3 cómo lo hicimos anteriormente, damos click en Run y vemos que nuestro comando se ejecute correctamente.

Config parameter agent

Ya que hemos instalado y configurado el agente de CloudWatch en nuestra instancia podemos ir a CloudWatch a Crear nuestro Dashboard.

Buscamos en la barra de búsquedas el servicio de CloudWatch y lo seleccionamos. Ya en la pagina principal de CloudWatch damos click en Dashboards y damos click en Create dashboard.

Create dashboard

Le damos el nombre a nuestro Dashboard

Create dashboard

En la siguiente pantalla seleccionamos el tipo de widget que queremos utilizar para la métrica que vamos a seleccionar.

Type widget

Ahora debemos seleccionar si queremos como fuente de datos de nuestro widget una métrica o un log. Para nuestro caso seleccionamos Metrics.

Metric

En la siguiente pantalla vemos una sección llamada Custom namespaces. Esta sección se creo cuando ejecutamos los comandos desde parameter store.Damos click en CWAgent.

Custom namespaces

Damos click en InstanceId.

Custom namespaces

Ahora vamos a seleccionar las métricas: MemoryAvailable y MemoryUsed y damos click en *Create widget *.

select metrics

Vemos que nuestro widget fue agregado a nuestro Dashboard. Damos click en Save dashboard para almacenar los cambios.

Save dashboard

Hemos visto cómo configurar el agente de cloud watch para monitorear el uso de memoria en una o varias instancias EC2.Hay formas de hacer este procedimiento desde la terminal, sin embargo lo debemos hacer en cada instancia por separado. Lo que nos ofrece Systems Manager es poder realizar este tipo de configuraciones en varias instancias con un único procedimiento.

Como vimos en el ejemplo solo agregamos un widget a nuestro Dashboard con dos métricas, ahora pueden agregar un nuevo widget al dashboard de tipo numero para ver el total de memoria de la instancia EC2.

Me pueden encontrar en

Camilo Cabrales

Referencias

Systems Manager

Metricas CloudWatch Agent

Instalar CloudWatch Agent Terminal

Top comments (0)