Inicio rápido: instale el agente CloudWatch de registros con AWS OpsWorks un Chef - Amazon CloudWatch Logs

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Inicio rápido: instale el agente CloudWatch de registros con AWS OpsWorks un Chef

Puede instalar el agente de CloudWatch registros y crear flujos de registros mediante AWS OpsWorks AndChef, que es una herramienta de automatización de sistemas e infraestructuras de nube de terceros. Chef utiliza “recetas”, que se escriben para instalar y configurar software en el ordenador, y “libros de recetas”, que son colecciones de recetas, para realizar sus tareas de configuración y distribución de políticas. Para obtener más información, consulte Chef.

Los siguientes ejemplos de recetas muestran cómo monitorear un archivo de registros en cada instancia EC2. Las recetas utilizan el nombre de pila como grupo de registros y el nombre de host de la instancia como el nombre del flujo de registro. Si desea monitorear varios archivos de registros, tendrá que ampliar las recetas para crear varios grupos y flujos de registro.

Paso 1: crear recetas personalizadas

Crea un repositorio para almacenar tus recetas. AWS OpsWorks es compatible con Git y Subversion, o puede almacenar un archivo en Amazon S3. La estructura de su repositorio de libros de recetas se describe en Cookbook Repositories (Repositorios de libros de recetas) en la Guía del usuario deAWS OpsWorks . Los ejemplos que aparecen a continuación suponen que el libro de recetas se llama logs. La receta install.rb instala el agente Logs. CloudWatch También puede descargar el ejemplo del libro de cocina (-Cookbooks.zip). CloudWatchLogs

Cree un archivo denominado metadata.rb que contiene el siguiente código:

#metadata.rb name 'logs' version '0.0.1'

Cree el archivo de configuración de CloudWatch registros:

#config.rb template "/tmp/cwlogs.cfg" do cookbook "logs" source "cwlogs.cfg.erb" owner "root" group "root" mode 0644 end

Descargue e instale el agente CloudWatch de registros:

# install.rb directory "/opt/aws/cloudwatch" do recursive true end remote_file "/opt/aws/cloudwatch/awslogs-agent-setup.py" do source "https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py" mode "0755" end execute "Install CloudWatch Logs agent" do command "/opt/aws/cloudwatch/awslogs-agent-setup.py -n -r region -c /tmp/cwlogs.cfg" not_if { system "pgrep -f aws-logs-agent-setup" } end
nota

En el ejemplo anterior, reemplace la región con una de las siguientes: us-east-1, us-west-1, us-west-2, ap-south-1, ap-northeast-2, ap-southeast-1, ap-southeast-2, ap-northeast-1, eu-central-1, eu-west-1 o sa-east-1.

Si se produce algún error en la instalación del agente, asegúrese de que el paquete python-dev está instalado. Si no lo está, utilice el siguiente comando e intente de nuevo la instalación del agente:

sudo apt-get -y install python-dev

Esta receta utiliza un archivo de plantilla cwlogs.cfg.erb que puede modificar para especificar distintos atributos como, por ejemplo, archivos que registrar. Para obtener más información sobre estos atributos, consulte Referencia del agente de CloudWatch Logs.

[general] # Path to the AWSLogs agent's state file. Agent uses this file to maintain # client side state across its executions. state_file = /var/awslogs/state/agent-state ## Each log file is defined in its own section. The section name doesn't ## matter as long as its unique within this file. # #[kern.log] # ## Path of log file for the agent to monitor and upload. # #file = /var/log/kern.log # ## Name of the destination log group. # #log_group_name = kern.log # ## Name of the destination log stream. # #log_stream_name = {instance_id} # ## Format specifier for timestamp parsing. # #datetime_format = %b %d %H:%M:%S # # [<%= node[:opsworks][:stack][:name] %>] datetime_format = [%Y-%m-%d %H:%M:%S] log_group_name = <%= node[:opsworks][:stack][:name].gsub(' ','_') %> file = <%= node[:cwlogs][:logfile] %> log_stream_name = <%= node[:opsworks][:instance][:hostname] %>

La plantilla obtiene el nombre de la pila y el nombre del host haciendo referencia a los atributos correspondientes en la configuración de pila e implementación JSON. El atributo que especifica el archivo que registrar se define en el archivo de atributos default.rb del libro de recetas cwlogs (logs/attributes/default.rb).

default[:cwlogs][:logfile] = '/var/log/aws/opsworks/opsworks-agent.statistics.log'

Paso 2: Crea una AWS OpsWorks pila

  1. Abre la AWS OpsWorks consola en https://console.aws.amazon.com/opsworks/.

  2. En el OpsWorks panel de control, selecciona Añadir pila para crear una AWS OpsWorks pila.

  3. En la pantalla Add stack (Agregar pila), elija Chef 11 stack (Pila Chef 11).

  4. En Stack name (Nombre de la pila), ingrese un nombre.

  5. En Use custom Chef Cookbooks (Utilizar libros de cocina Chef personalizados), elija Yes (Sí).

  6. En Repository type (Tipo de repositorio), seleccione el tipo de repositorio que utiliza. Si utiliza el ejemplo anterior, elija Http Archive.

  7. En Repository URL (URL del repositorio), ingrese el repositorio donde almacenó el libro de recetas que creó en el paso anterior. Si utiliza el ejemplo anterior, ingrese https://s3.amazonaws.com/aws-cloudwatch/downloads/CloudWatchLogs-Cookbooks.zip.

  8. Elija Add Stack (Agregar pila) para crear la pila.

Paso 3: ampliar el rol de IAM

Para usar CloudWatch los registros con sus AWS OpsWorks instancias, debe ampliar la función de IAM que utilizan sus instancias.

  1. Abra la consola de IAM en https://console.aws.amazon.com/iam/.

  2. En el panel de navegación, elija Policies (Políticas), Create Policy (Crear políticas).

  3. En la página Create Policy (Crear políticas), en Create Your Own Policy (Crear su propia política), elija Select (Seleccionar). Para obtener más información acerca de la creación de políticas personalizadas, consulte Políticas de IAM para Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux.

  4. En la página Review Policy (Revisar políticas), en Policy Name (Nombre de la política), escriba un nombre para la política.

  5. En Policy Document (Documento de la política), pegue la siguiente política:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] } ] }
  6. Elija Create Policy (Crear política).

  7. En el panel de navegación, selecciona Roles y, a continuación, en el panel de contenido, en Nombre del rol, selecciona el nombre del rol de instancia que usa tu AWS OpsWorks pila. Puede encontrar el utilizado por su pila en la configuración de pila (el valor predeterminado es aws-opsworks-ec2-role).

    nota

    Elija el nombre del rol, no la casilla de verificación.

  8. En la pestaña Permissions (Permisos), en Managed Policies (Políticas administradas), seleccione Attach Policy (Adjuntar política).

  9. En la página Attach Policy (Adjuntar política), en el encabezado de la tabla (junto a Filter [Filtro] y Search [Buscar]), elija Policy Type (Tipo de política), Customer Managed Policies (Políticas administradas por el cliente).

  10. En Customer Managed Policies (Políticas administradas por el cliente), seleccione la política de IAM que ha creado anteriormente y elija Attach Policy (Adjuntar política).

    Para obtener más información sobre los usuarios y políticas, consulte Usuarios y grupos de IAM y Administración de políticas de IAM en la Guía del usuario de IAM.

Paso 4: agregar una capa

  1. Abre la AWS OpsWorks consola en https://console.aws.amazon.com/opsworks/.

  2. En el panel de navegación, elija Layers (Capas).

  3. En el panel de contenido, seleccione una capa y elija Add layer (Agregar capa).

  4. En la OpsWorkspestaña, en Tipo de capa, elija Personalizado.

  5. En los campos Name (Nombre) y Short name (Nombre breve), ingrese el nombre breve y largo de la capa y, a continuación, elija Add layer (Agregar capa).

  6. En la pestaña Recetas, en Custom Chef Recipes, hay varios encabezados (Configurar, Configurar, Implementar, Desplegar y Cerrar) que corresponden a AWS OpsWorks los eventos del ciclo de vida. AWS OpsWorks desencadena estos eventos en estos puntos clave del ciclo de vida de la instancia, que ejecuta las recetas asociadas.

    nota

    Si los encabezados anteriores no son visibles, en Custom Chef Recipes (Recetas Chef personalizadas), elija edit (editar).

  7. Ingrese logs::config, logs::install junto a Setup (Configuración), elija + para agregarlo a la lista y, a continuación, elija Save (Guardar).

    AWS OpsWorks ejecuta esta receta en cada una de las nuevas instancias de esta capa, justo después del arranque de la instancia.

Paso 5: agregar una instancia

La capa solo controla cómo configurar las instancias. Ahora es necesario agregar algunas instancias a la capa e iniciarlas.

  1. Abre la AWS OpsWorks consola en https://console.aws.amazon.com/opsworks/.

  2. En el panel de navegación, elija Instances (Instancias) y, a continuación, bajo su capa, elija + Instance (+ Instancia).

  3. Acepte la configuración predeterminada y elija Add Instance (Agregar instancia) para agregar la instancia a la capa.

  4. En la columna Actions (Acciones) de la fila, haga clic en start (comenzar) para comenzar la instancia.

    AWS OpsWorks lanza una nueva instancia de EC2 y configura los registros. CloudWatch El estado de la instancia cambia a en línea cuando está listo.

Paso 6: ver sus registros

Debería ver el grupo de registros y el flujo de registros recién creados en la CloudWatch consola después de que el agente haya estado ejecutándose durante unos instantes.

Para obtener más información, consulte Vea los datos de registro enviados a Logs CloudWatch .