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_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
.
ansible-galaxy install torian.logstash