Cómo enviar registros de aplicaciones de Linux a AWS CloudWatch

Seleccione IAM de la lista de servicios

AWS CloudWatch es un servicio de monitoreo proporcionado por la nube de AWS. AWS proporciona monitoreo predeterminado para los parámetros del servidor, como la utilización de la CPU, la entrada y la salida de la red, etc. AWS CloudWatch se puede usar para el monitoreo personalizado, como la utilización del disco y la utilización de la memoria (RAM). Para el monitoreo personalizado, debemos seguir algunos pasos para monitorearlo.

De la misma manera, AWS CloudWatch se puede utilizar para monitorear los registros del servidor o de la aplicaci√≥n. Como esta no es una caracter√≠stica predeterminada de AWS por razones obvias, podemos configurarla seg√ļn nuestros requisitos. Depender√° del usuario qu√© registros debemos enviar a AWS CloudWatch para su monitoreo.

No limitado a los recursos de AWS

Incluso si AWS CloudWatch es un servicio de AWS, no significa que solo se pueda usar para las instancias EC2, también se puede configurar para enviar registros de aplicaciones o servidores desde las VM de otros proveedores de la nube y también desde las VM en la unidad física. .

Cómo enviar registros de aplicaciones o servidores a AWS CloudWatch

Para enviar los registros de la aplicación o del servidor a AWS CloudWatch, debemos instalar el agente de CloudWatch en el servidor respectivo. Usaremos la instancia AWS EC2 para lograr nuestro objetivo en este blog.

Pasos

  1. Rol adecuado que se adjuntar√° a la instancia para comunicarse con AWS CloudWatch
  2. Instalación del agente de AWS CloudWatch
  3. Configuración del agente de AWS CloudWatch
  4. Probar registros en el portal de AWS CloudWatch

Rol de gestión de identidades y accesos

Para enviar los registros de la aplicación o del servidor a AWS CloudWatch, debemos asociar un rol a la instancia EC2 con los permisos adecuados. El rol permitirá realizar cambios en AWS CloudWatch.

Debe contener las siguientes políticas.

  • CreateLogStream
  • DescribeLogStream
  • CreateLogGroup
  • PutLogEvents

Vamos a crear un rol en AWS IAM.

Vaya a la secci√≥n IAM de la lista de Servicios en la consola de AWS. Si a√ļn no tiene una cuenta de AWS, cree una desde aqu√≠.

Seleccione IAM de la lista de servicios

En el panel de control de IAM, vaya a Política y luego a Crear política.

En la p√°gina ¬ęCrear pol√≠tica¬Ľ, seleccione ¬ęJSON¬Ľ en la pesta√Īa y pegue la siguiente pol√≠tica JSON eliminando la predeterminada.

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogStreams"
    ],
      "Resource": [
        "arn:aws:logs:*:*:*"
    ]
  }
 ]
}

Su pol√≠tica debe verse como a continuaci√≥n. Una vez que haya terminado, haga clic en el bot√≥n ¬ęRevisar pol√≠tica¬Ľ en la parte inferior de la p√°gina.

En la página siguiente, debe proporcionar el nombre de la política.

Una vez hecho esto, haga clic en el bot√≥n ¬ęCrear pol√≠tica¬Ľ en la parte inferior de la p√°gina.

Una vez que cree una política, será redirigido a la página de funciones de IAM. Como ya hemos creado la política requerida, crearemos un rol que se adjuntará a la instancia.

En la p√°gina ¬ęCrear rol¬Ľ, seleccione ¬ęEC2¬Ľ. Como vamos a adjuntar el rol a la instancia EC2.

Haga clic en el bot√≥n ¬ęSiguiente: Permiso¬Ľ en la parte inferior izquierda de la p√°gina.

En la página siguiente, se le pedirá que adjunte una política al rol. Busque el nombre de la política que proporcionó en el paso anterior. Una vez encontrada, seleccione la política de la lista.

Una vez hecho esto, haga clic en el bot√≥n ¬ęSiguiente: Etiquetas¬Ľ en la parte inferior de la p√°gina.

En la página siguiente, se le pedirá que asigne algunas etiquetas al rol. Como ese es un paso opcional, no estoy asignando ninguna etiqueta al rol y me salté el paso.

Una vez que haga clic en siguiente, se le pedir√° que asigne un nombre al rol.

Su rol se crear√° en unos segundos.

Ahora que hemos completado la configuración requerida desde el lado de la infraestructura, configuremos el agente de AWS CloudWatch en la instancia EC2.

Para este paso, necesita una instancia EC2 en estado de ejecución. Conéctese a la instancia de la manera que desee. Hay varias formas de conectarse a la instancia. Puedes consultarlos aquí.

Si tiene una instancia de Amazon Linux, siga los pasos mencionados a continuación.

Si inicia sesi√≥n en la instancia por primera vez, aseg√ļrese de ejecutar el siguiente comando de actualizaci√≥n.

A continuación los pasos que puede seguir para amazonas linux máquinas.

sudo yum update -y

Una vez que se complete la actualización, ejecute el siguiente comando para instalar el awslogs paquete.

sudo yum install -y awslogs

Una vez instalado el paquete, puede cambiar la región en /etc/awslogs/awscli.conf expediente.

Ahora, para configurar los registros que le gustaría enviar en AWS CloudWatch, abra el archivo /etc/awslogs/awslogs.conf y verifique las siguientes líneas.

[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = Amazon-Linux-2

La configuraci√≥n anterior indica que la ruta del archivo de registro de su sistema /var/log/messages se cargar√° en AWS CloudWatch. La configuraci√≥n anterior crear√° un grupo de registros en AWS CloudWatch con el nombre mencionado en el par√°metro log_group_name. Adem√°s, tendr√° la jerarqu√≠a mencionada en log_stream_name. Para el tiempo de b√ļfer, podemos cambiar el valor de buffer_duration. El valor predeterminado de buffer_duration es 5000ms.

Una vez que realice los cambios, reinicie la aplicación ejecutando el siguiente comando. Reiniciará la aplicación awslog y el agente comenzará a cargar los registros en AWS CloudWatch.

$ sudo service awslogsd start

Para instalar y configurar el agente de AWS CloudWatch en RHEL o CentOS, puede seguir los pasos a continuación.

Ejecute el siguiente comando para descargar el paquete.

curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O

Encontrar√° un archivo con el nombre awslogs-agent-setup.py en la ubicaci√≥n actual. Como el archivo descargado es un script de python, debe tener python instalado en su m√°quina para el siguiente paso. Aseg√ļrese de tener un paquete de python instalado y luego ejecute el siguiente comando. Debe especificar la regi√≥n en el siguiente comando. Tambi√©n puede cambiar lo mismo en la configuraci√≥n m√°s adelante si lo desea.

python ./awslogs-agent-setup.py --region ap-south-1

Una vez que ejecute el comando anterior, le pedir√° algunas entradas. Mencione lo mismo seg√ļn los requisitos.

El script anterior generará el archivo de configuración /var/awslogs/etc/awslogs.conf. Los detalles que proporcionó en el script se guardarán en el archivo de configuración.

a√ļn puede modificar el archivo de configuraci√≥n seg√ļn sus requisitos.

Una vez que haya terminado con todos los cambios, reinicie el agente ejecutando el siguiente comando.

# systemctl start awslogs

Verificar la configuración configurada

1. Vuelva a iniciar sesión en su cuenta de AWS.

2. Busque CloudWatch en la lista de Servicios.

3. Elija el Grupo de registros opci√≥n de los men√ļs del lado izquierdo.

4. Busque el valor que proporcionó en el parámetro log_stram_name en la configuración.

5. Verá que los registros se envían desde el servidor a AWS CloudWatch.

Conclusión

Puede configurar cualquier archivo de registro de su servidor para enviarlo a AWS CloudWatch. Esto se puede configurar para los servidores que no est√°n en la nube de AWS. Es decir, puede enviar los registros desde cualquiera de sus servidores alojados en Azure, GCP o cualquier otro proveedor de la nube o incluso un servidor local.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *