tartansandal.awslogs-setup
awslogs-setup
Configura el agente de AWS CloudWatch Logs desde cero.
A diferencia de roles similares, esto no llama al script awslogs-agent-setup.py
. En su lugar, ese script se ha descompuesto en un conjunto de archivos, plantillas y tareas de Ansible que se pueden ejecutar para lograr los mismos resultados (sin interacción).
Esto nos permite separar claramente la configuración del agente de la instalación del agente. La configuración será muy específica para tu sistema y probablemente debería ser manejada por un rol separado que tenga awslogs-setup
como dependencia (ver más abajo).
Se proporciona una copia del script original awslogs-agent-setup.py
en el directorio /src
como referencia.
Requisitos
Para usar con instancias de EC2 Linux que se ejecutan en AWS.
Variables del Rol
Probablemente necesitarás establecer la región de AWS que será utilizada por el aws-cli
instalado. Esto tiene como valor predeterminado:
awslogs_setup_region: ap-southeast-2
La configuración instala un script "launcher" y un script de agente "nanny" que intenta asegurar que el agente siempre esté en ejecución. Estos requieren que se especifiquen un par de rutas a comandos del sistema. Los siguientes valores predeterminados deberían funcionar en la mayoría de los sistemas modernos:
awslogs_setup_launcher_nice: /usr/bin/nice
awslogs_setup_nanny_ps: /usr/bin/ps
awslogs_setup_nanny_cat: /usr/bin/cat
awslogs_setup_nanny_grep: /usr/bin/grep
awslogs_setup_nanny_service: /usr/sbin/service
Sin embargo, si tienes un sistema peculiar (o antiguo), estos pueden ser sobreescritos.
Ejemplo de Playbook
Este rol solo configura el agente awslogs. La configuración del agente queda a tu cargo. Esto es muy simple, pero puede ser muy específico para tu sistema.
- hosts: servidores
vars:
awslogs_setup_region: us-east-1 # o establecerlo a través de inventario
roles:
- tartansandal.awslogs-setup
handlers:
- name: reiniciar awslogs
service: awslogs state=restarted
post_tasks:
- name: configurar awslogs para archivos de registro del sistema
template:
src: awslogs.conf.j2
dest: /var/awslogs/etc/awslogs.conf
notify: reiniciar awslogs
# usa el directorio /var/awslogs/etc/config/ para configuraciones específicas del servicio
- name: configurar awslogs para archivos de registro de nginx
template:
src: nginx-awslogs.conf.j2
dest: /var/awslogs/etc/config/nginx.conf
notify: reiniciar awslogs
Las post_tasks
mostradas arriba podrían separarse en roles distintos que tengan a awslogs-setup
como dependencia.
Consulta http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/AgentReference.html para obtener detalles sobre la configuración del agente.
Por Hacer
- Crear una configuración de systemd para gestionar el script launcher.
Licencia
BSD
Set up the AWS CloudWatch Logs Agent from scratch.
ansible-galaxy install tartansandal.awslogs-setup