torian.logstash

Rol de Ansible para Logstash

Estado de Construcción

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_inputs
  • logstash_filters
  • logstash_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.

Acerca del proyecto

Ansible role for Logstash

Instalar
ansible-galaxy install torian.logstash
Licencia
Unknown
Descargas
20.5k
Propietario
Ninja Sysadmin, DevOps Monk, Fulltime Dad