torian.logstash
Rôle Ansible pour Logstash
Ce rôle Ansible installe Logstash via les paquets du dépôt officiel.
Plateformes prises en charge
- EL / Centos (6 / 7)
- Debian (Wheezy / Jessie)
- Ubuntu (Precise / Trusty)
- AMZ Linux
Variables du rôle
Les variables suivantes sont définies dans defaults/main.yml. Pour une
explication détaillée, vous pouvez consulter le fichier.
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
Les valeurs par défaut pour la configuration JVM (jvm.options) sont basées sur les valeurs
fournies par 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}}"
Les valeurs par défaut pour la configuration du démon (logstash.yml) sont également basées
sur les valeurs par défaut fournies par Logstash, mais dans ce cas, les valeurs
de logstash_config_daemon_defaults et logstash_config_daemon
sont combinées en utilisant le filtre jinja2 combine() :
logstash_config_daemon_defaults:
path.data: "{{logstash_data_dir}}"
path.config: "{{logstash_conf_dir}}"
path.logs: "{{logstash_logs_dir}}"
logstash_config_daemon: {}
Utilisation
La configuration pour input, filter et output est spécifiée
en utilisant les variables spéciales suivantes :
logstash_inputslogstash_filterslogstash_outputs
Ces variables sont développées dans leurs propres sections input {}, filter {} et
output {}, vous êtes donc libre de spécifier la configuration qui vous convient, par exemple :
---
- 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 }
Installation de plugins supplémentaires
Par défaut, et juste à titre d'exemple, le rôle installe deux plugins :
logstash_plugins:
- logstash-input-s3
- logstash-output-s3
Si vous ne les voulez pas, ou si vous avez besoin de spécifier d'autres plugins, il vous suffit de remplacer le réglage par défaut.
Mise à niveau de la version de Logstash
Si vous avez besoin de mettre à niveau une version précédente de Logstash, le rôle peut
le gérer. Spécifiez une variable supplémentaire logstash_upgrade=True et le gestionnaire de paquets
installera la dernière version disponible qui correspond à la version majeure de
logstash_version.
ansible-galaxy install torian.logstash