torian.logstash

Rola Ansible dla Logstasha

Status Budowy

Ta rola Ansible instaluje Logstasha za pomocą oficjalnych pakietów z repozytoriów.

Obsługiwane platformy

  • EL / CentOS (6 / 7)
  • Debian (Wheezy / Jessie)
  • Ubuntu (Precise / Trusty)
  • AMZ Linux

Zmienne roli

Następujące zmienne roli są zdefiniowane w defaults/main.yml. Aby uzyskać szczegółowe wyjaśnienia, możesz zapoznać się z tym plikiem.

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

Domyślne ustawienia dla konfiguracji JVM (jvm.options) opierają się na wartościach dostarczanych przez Logstasha.

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}}"

Domyślne ustawienia dla konfiguracji demona (logstash.yml) również opierają się na domyślnych wartościach dostarczanych przez Logstasha, jednak w tym przypadku zmienne logstash_config_daemon_defaults i logstash_config_daemon są łączone przy użyciu filtru jinja2 combine():

logstash_config_daemon_defaults:
  path.data: "{{logstash_data_dir}}"
  path.config: "{{logstash_conf_dir}}"
  path.logs: "{{logstash_logs_dir}}"

logstash_config_daemon: {}

Użycie

Konfiguracja dla input, filter i output jest określona za pomocą następujących specjalnych zmiennych:

  • logstash_inputs
  • logstash_filters
  • logstash_outputs

Te zmienne są rozwijane do oddzielnych sekcji input {}, filter {} i output {}, więc możesz określić dowolną konfigurację, która Ci odpowiada, np.:

---
- 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 }

Instalowanie dodatkowych wtyczek

Domyślnie, a także jako przykład, rola instaluje dwie wtyczki:

logstash_plugins:
  - logstash-input-s3
  - logstash-output-s3

Jeśli ich nie chcesz, lub potrzebujesz określić inne, po prostu nadpisz domyślne ustawienia.

Uaktualnienie wersji Logstasha

Jeśli musisz uaktualnić z wcześniejszej wersji Logstasha, rola może to zarządzać. Określ dodatkową zmienną logstash_upgrade=True, a menedżer pakietów zainstaluje najnowszą dostępną wersję, która odpowiada głównemu numerowi z logstash_version.

O projekcie

Ansible role for Logstash

Zainstaluj
ansible-galaxy install torian.logstash
Licencja
Unknown
Pobrania
20.5k
Właściciel
Ninja Sysadmin, DevOps Monk, Fulltime Dad