freedomofpress.elk

Rola Ansible dla ELK

Instaluje stak ELK (Elasticsearch, Logstash i Kibana) do agregacji i monitorowania logów. Przeznaczona do integracji z Riemann w celu funkcjonalności powiadamiania.

Wymagania

Zmienne roli

elk_kibana_user: "kibana"
elk_kibana_logfile: "/var/log/kibana.log"

# Umożliwia wyłączenie funkcjonalności snapshot. Nie jest dobrze
# przetestowana, więc domyślnie ustawiona na false. Jeśli ustawiona na true przy pierwszym
# uruchomieniu, należy dodać `meta: flush_handlers` przed uruchomieniem, aby upewnić się
# że zmienna `path.repo:` jest rozpoznawana przez działający serwis elasticsearch.
elk_elasticsearch_snapshot: false

elk_elasticsearch_snapshot_directory: /var/lib/elasticsearch/backups
elk_elasticsearch_snapshot_repository: es_backup
elk_elasticsearch_snapshot_initialization:
  type: fs
  settings:
    location: "{{ elk_elasticsearch_snapshot_directory }}"
    compress: yes
  _hack: null

# Byłoby dobrze użyć iso8601 zamiast epoki, ale API ElasticSearch
# zgłasza błąd invalid_snapshot_name z formatem iso8601.
elk_elasticsearch_snapshot_name: "snapshot-{{ ansible_date_time.epoch }}"

# Limity do ustawienia w /etc/security/limits.conf. Upewnij się, że skopiujesz
# całą listę, jeśli nadpisujesz jakikolwiek z elementów.
elk_elasticsearch_pam_limits:
    - domain: elasticsearch
      limit_item: memlock
      limit_type: hard
      value: unlimited

    - domain: elasticsearch
      limit_item: memlock
      limit_type: soft
      value: unlimited

    - domain: elasticsearch
      limit_item: nofile
      limit_type: soft
      value: 65535

    - domain: elasticsearch
      limit_item: nofile
      limit_type: hard
      value: 65535

# Wtyczka Riemann do powiadamiania, filtr de-dot dla zgodności z ElasticSearch v2.
# Zobacz: https://www.elastic.co/blog/introducing-the-de_dot-filter
elk_logstash_plugins:
  - logstash-output-riemann
  - logstash-filter-de_dot

# Interfejs używany do ograniczeń zapory i wyszukiwań IPv4
elk_network_interface: eth0

elk_cluster_name: elk-logging

# SSL jest domyślnie wyłączony. Ustaw te zmienne na pełne ścieżki do certyfikatów SSL,
# które chcesz użyć, a Nginx wymusi połączenia HTTPS.
# Musisz umieścić certyfikaty SSL w osobnym odtwarzaniu.
elk_nginx_ssl_certificate: ""
elk_nginx_ssl_certificate_key: ""
elk_nginx_server_name: localhost

# Niebezpieczne w użyciu produkcyjnym! Nadpisz, aby zabezpieczyć loginy.
elk_kibana_username: kibana
elk_kibana_password: kibana

# Nadpisz, aby zmienić stronę powitalną, np. na niestandardowy pulpit:
# "dashboard/Twoja-Nazwa-Pulpitu". Musisz zamienić spacje w
# nazwach pulpitów na myślniki, ponieważ Kibana tego oczekuje.
elk_kibana_default_app: discover

# Włącz automatyczną konfigurację białej listy IP dla "logclients".
# Używa ufw. Wyłącz, jeśli używasz innej roli do konfiguracji zapory.
elk_configure_firewall: true

# Pozwól na korzystanie z konfiguracji serwera internetowego w dalszych odtwarzaniach
# Ustaw to na false, aby pominąć wdrożenie nginx w tej roli.
elk_configure_nginx: true

# Pozwól na nadpisanie wzorców i listy filtrów dla dalszych odtwarzaniach
elk_logstash_patterns:
  - logstash-patterns/*
elk_logstash_filters:
  - logstash-configs/*

# Deklaruj glob plików baz danych GeoIP do skopiowania. Domyślnie wyłączone.
elk_logstash_geoipdbs: []

Użytkowanie

Użyj roli w pliku odtwarzania w ten sposób:

- hosts: logserver
  roles:
    - role: elk
      elk_kibana_username: admin
      elk_kibana_password: WowWhatAStrongPassword4

Dodawanie wizualizacji

Rola jeszcze nie tworzy wizualizacji Kibana automatycznie. Możesz jednak zaimportować zapisane wizualizacje, które są dostarczane z rolą w files/kibana-dashboards.json. Przejdź do Ustawienia -> Obiekty -> Importuj w interfejsie użytkownika Kibana i przeglądaj plik JSON.

Uruchamianie testów

Ta rola używa Molecule i ServerSpec do testowania. Aby jej użyć:

pip install molecule
gem install serverspec
molecule test

Możesz również uruchomić wybrane komendy:

molecule idempotence
molecule verify

Zobacz dokumentację Molecule po więcej informacji.

Dalsza lektura

Konfiguracja

Tworzenie niestandardowych filtrów

Zobacz katalog examples/writing-filters w tym repozytorium dla wstępnie skonfigurowanego środowiska developerskiego. Skopiuj ten katalog na serwer z zainstalowanym logstash lub użyj VM testowego Vagrant.

Utrzymanie

Licencja

MIT

O projekcie

Stands up ELK stack for log aggregation.

Zainstaluj
ansible-galaxy install freedomofpress.elk
Licencja
Unknown
Pobrania
152
Właściciel
Defending and supporting cutting-edge transparency journalism in the face of adversity.