logstash
Ansible роль для Logstash
Эта ansible роль устанавливает Logstash через официальные пакеты из репозитория.
Поддерживаемые платформы
- EL / Centos (6 / 7)
- Debian (Wheezy / Jessie)
- Ubuntu (Precise / Trusty)
- AMZ Linux
Переменные роли
Следующие переменные роли определены в defaults/main.yml
. Для подробного объяснения вы можете заглянуть в этот файл.
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
По умолчанию настройки для JVM (jvm.options
) основаны на значениях,
поставляемых вместе с 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}}"
По умолчанию настройки для демона (logstash.yml
) также основаны
на значениях, поставляемых вместе с logstash, но в этом случае значения
logstash_config_daemon_defaults
и logstash_config_daemon
объединяются с использованием фильтра jinja2 combine()
:
logstash_config_daemon_defaults:
path.data: "{{logstash_data_dir}}"
path.config: "{{logstash_conf_dir}}"
path.logs: "{{logstash_logs_dir}}"
logstash_config_daemon: {}
Использование
Настройка конфигурации для input
, filter
и output
задается
с использованием следующих специальных переменных:
logstash_inputs
logstash_filters
logstash_outputs
Эти переменные разворачиваются в их собственные секции input {}
, filter {}
и
output {}
, так что вы можете задать любую конфигурацию, которая вам удобна, например:
---
- 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}
Установка дополнительных плагинов
По умолчанию, и просто в качестве примера, роль устанавливает два плагина:
logstash_plugins:
- logstash-input-s3
- logstash-output-s3
Если вы не хотите их устанавливать или вам нужно указать другие, просто переопределите значение по умолчанию.
Обновление версии Logstash
Если вам нужно обновить версию logstash до более новой, роль может
это сделать. Укажите дополнительную переменную logstash_upgrade=True
, и менеджер пакетов
установит последнюю доступную версию, соответствующую основной версии из
logstash_version
.
ansible-galaxy install torian/ansible-role-logstash