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 role for Logstash

Установить
ansible-galaxy install torian/ansible-role-logstash
Лицензия
Unknown
Загрузки
20469
Владелец
Ninja Sysadmin, DevOps Monk, Fulltime Dad