torian.logstash
Ansible-Rolle für Logstash
Diese Ansible-Rolle installiert Logstash über die offiziellen Paketquellen.
Unterstützte Plattformen
- EL / CentOS (6 / 7)
- Debian (Wheezy / Jessie)
- Ubuntu (Precise / Trusty)
- AMZ Linux
Rollenvariablen
Die folgenden Rollenvariablen sind in defaults/main.yml
definiert. Für
eine detaillierte Erklärung kannst du die Datei ansehen.
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
Die Standardwerte für die JVM-Konfiguration (jvm.options
) basieren auf den Werten,
die mit Logstash geliefert werden.
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}}"
Die Standardwerte für die Daemon-Konfiguration (logstash.yml
) basieren ebenfalls
auf den Werten, die mit Logstash geliefert werden. In diesem Fall werden die Werte
von logstash_config_daemon_defaults
und logstash_config_daemon
mit dem Jinja2-Filter combine()
zusammengeführt:
logstash_config_daemon_defaults:
path.data: "{{logstash_data_dir}}"
path.config: "{{logstash_conf_dir}}"
path.logs: "{{logstash_logs_dir}}"
logstash_config_daemon: {}
Verwendung
Die Konfiguration für input
, filter
und output
wird mit den folgenden speziellen Variablen angegeben:
logstash_inputs
logstash_filters
logstash_outputs
Diese Variablen werden in ihre eigenen Abschnitte input {}
, filter {}
und
output {}
erweitert, sodass du jede Konfiguration angeben kannst, die dir passt, z.B.:
---
- 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}
Zusätzliche Plugins installieren
Standardmäßig installiert die Rolle zwei Plugins als Beispiel:
logstash_plugins:
- logstash-input-s3
- logstash-output-s3
Wenn du diese nicht möchtest oder andere angeben musst, überschreibe einfach die Standardeinstellung.
Logstash-Version aktualisieren
Falls du von einer vorherigen Logstash-Version aktualisieren musst, kann die Rolle
das verwalten. Gib die zusätzliche Variable logstash_upgrade=True
an, und der
Paketmanager installiert die neueste verfügbare Version, die mit der Hauptversion von
logstash_version
übereinstimmt.
ansible-galaxy install torian.logstash