torian.logstash
Rol de Ansible para Logstash
Este rol de Ansible instala Logstash a través de los paquetes del repositorio oficial.
Plataformas Soportadas
- EL / Centos (6 / 7)
 - Debian (Wheezy / Jessie)
 - Ubuntu (Precise / Trusty)
 - AMZ Linux
 
Variables del Rol
Las siguientes variables del rol se definen en defaults/main.yml. Para una 
explicación detallada sobre ellas, puedes revisar el archivo.
logstash_version: 5.6.4
logstash_daemon_user: root
logstash_install_dir: /usr/share/logstash
logtash_conf_prefix: /etc/logstash
logstash_conf_dir: "{{logstash_conf_prefix}}/conf.d"
logstash_data_dir: /var/lib/logstash
logstash_plugins:
  - logstash-input-s3
  - logstash-output-s3
Los valores predeterminados para la configuración de la JVM (jvm.options) se basan en los valores
proporcionados por Logstash.
logstash_jvm_mem: 1g
logstash_config_jvm_defaults: |
  -Xms{{logstash_jvm_mem}}
  -Xmx{{logstash_jvm_mem}}
  -XX:+UseParNewGC
  -XX:+UseConcMarkSweepGC
  -XX:CMSInitiatingOccupancyFraction=75
  -XX:+UseCMSInitiatingOccupancyOnly
  -XX:+DisableExplicitGC
  -Djava.awt.headless=true
  -Dfile.encoding=UTF-8
  -XX:+HeapDumpOnOutOfMemoryError
logstash_config_jvm: "{{logstash_config_jvm_defaults}}"
Los valores predeterminados para la configuración del demonio (logstash.yml) también se basan 
en los valores predeterminados proporcionados por Logstash, pero en este caso, los valores 
de logstash_config_daemon_defaults y logstash_config_daemon se combinan usando el filtro jinja2 combine():
logstash_config_daemon_defaults:
  path.data: "{{logstash_data_dir}}"
  path.config: "{{logstash_conf_dir}}"
  path.logs: "{{logstash_logs_dir}}"
logstash_config_daemon: {}
Uso
La configuración para input, filter y output se especifica usando las siguientes variables especiales:
logstash_inputslogstash_filterslogstash_outputs
Estas variables se expanden en sus propias secciones input {}, filter {} y 
output {}, por lo que puedes especificar cualquier configuración que necesites, por ejemplo:
---
- hosts: all
  vars:
    - logstash_inputs: |
        file {
            path => "/var/log/nginx/access.log"
            tags => ["nginx"]
        }
        file {
            path => "/var/log/nginx/error.log"
            tags => ["nginx"]
        }
    - logstash_filters: |
        grok { match => [ "message", "%{HTTPDATE:[@metadata][timestamp]}" ] }
        date { match => [ "[@metadata][timestamp]", "dd/MMM/yyyy:HH:mm:ss Z" ] }
    - logstash_outputs: |
        stdout { codec => rubydebug }
  roles:
    - { role: torian.logstash}
Instalando plugins adicionales
Por defecto, y solo como ejemplo, el rol instala dos plugins:
logstash_plugins:
  - logstash-input-s3
  - logstash-output-s3
Si no los necesitas, o necesitas especificar otros diferentes, simplemente sobrescribe la configuración predeterminada.
Actualización de la versión de Logstash
Si necesitas actualizar desde una versión anterior de Logstash, el rol puede
manejarlo. Especifica una variable adicional logstash_upgrade=True y el gestor de paquetes
instalará la última versión disponible que coincida con la principal de 
logstash_version.
ansible-galaxy install torian.logstash