solutionDrive.logstash

Rola Ansible: Logstash

Status budowy

Rola Ansible, która instaluje Logstash na systemach RedHat/CentOS oraz Debian/Ubuntu.

Należy pamiętać, że ta rola domyślnie instaluje wzór grok dla sysloga; jeśli chcesz dodać więcej filtrów, zobacz dokumentację dla logstash_configuration_files i logstash_filter_files.

Na przykład, możesz stworzyć plik o nazwie 13-myapp.conf z odpowiednim filtrem grok i zrestartować logstash, aby zaczął go używać. Przetestuj swój regex grok za pomocą Grok Debugger.

Wymagania

Chociaż istnieją inne metody, ta rola została stworzona do pracy z Elasticsearch jako backendem do przechowywania wiadomości logów.

Zmienne Roli

Dostępne zmienne są wymienione poniżej, wraz z wartościami domyślnymi (zobacz defaults/main.yml):

logstash_listen_port_beats: 5044

Port, na którym Logstash będzie nasłuchiwał na beats.

logstash_version: 2.3

Domyślna wersja główna Logstash do zainstalowania.

logstash_configuration_files:
  - 01-lumberjack-input.conf
  - 30-lumberjack-output.conf

logstash_filter_files:
  - 10-syslog.conf
  - 11-nginx.conf
  - 12-apache.conf
  - 14-solr.conf
  - 15-drupal.conf
  
logstash_elasticsearch_host: localhost

Lista plików wejściowych/wyjściowych (plików konfiguracyjnych) oraz plików filtrów do zainstalowania. Domyślnie instalowane są pliki wejściowe/wyjściowe lumberjack oraz filtry zmiennych. Możesz określić własne pliki konfiguracyjne, umieszczając pliki wejściowe/wyjściowe w swoim własnym katalogu templates, a filtry w swoim własnym katalogu files. Następnie stwórz własną listę w katalogu vars/main.yml oraz vars_files w swojej roli opakowującej i dołącz tę rolę, aby wdrożyć Logstash z własną konfiguracją. Zobacz Przykład Playbook poniżej.

logstash_elasticsearch_hosts:
  - http://localhost:9200

Hosty, do których Logstash powinien przesyłać logi do Elasticsearch.

logstash_ssl_dir: /etc/pki/logstash
logstash_ssl_certificate_file: logstash-forwarder-example.crt
logstash_ssl_key_file: logstash-forwarder-example.key

Konfiguracja SSL dla Logstash, aby akceptował żądania od logstash-forwarder działającego na zdalnych hostach. Notatka dotycząca bezpieczeństwa: Na serwerach produkcyjnych lub publicznych (np. wszelkich serwerach, które nie są testowe), powinieneś stworzyć własną parę kluczy/certyfikatów i użyć jej zamiast domyślnej! Możesz użyć OpenSSL do stworzenia plików kluczy i certyfikatów, używając polecenia podobnego do poniższego: openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout logstash.key -out logstash.crt.

Należy zauważyć, że filebeat i logstash mogą nie działać poprawnie z certyfikatami samopodpisanymi, chyba że masz również pełny łańcuch zaufania (w tym Urząd Certyfikacji dla Twojego certyfikatu samopodpisanego) dodany na swoim serwerze. Zobacz: https://github.com/elastic/logstash/issues/4926#issuecomment-203936891

Dla logstash_ssl_certificate_file i logstash_ssl_key_file, możesz podać ścieżkę względną względem katalogu roli lub absolutną ścieżkę do pliku.

logstash_local_syslog_path: /var/log/syslog
logstash_monitor_local_syslog: true

Czy konfiguracja dla lokalnego pliku syslog (zdefiniowanego jako logstash_local_syslog_path) powinna być dodana do logstash. Ustaw to na false, jeśli monitorujesz lokalny syslog w inny sposób lub jeśli nie zależy Ci na lokalnym pliku syslog. Inne logi lokalne mogą być dodawane przez własne pliki konfiguracyjne umieszczone w /etc/logstash/conf.d.

logstash_enabled_on_boot: yes

Ustaw to na no, jeśli nie chcesz, aby logstash uruchamiał się przy starcie systemu.

logstash_install_plugins:
  - logstash-input-beats

Lista wtyczek Logstash, które powinny być zainstalowane.

logstash_install_dir: /usr/share/logstash

Ścieżka do katalogu instalacyjnego. Wcześniej "/opt/logstash" była zakodowana na sztywno, teraz domyślną wartością jest "/usr/share/logstash".

Inne uwagi

Jeśli zauważysz wysokie zużycie CPU przez jeden z procesów logstash, a używasz Logstash w połączeniu z inną aplikacją działającą na porcie 80 w systemie Ubuntu z upstart, proces logstash-web może utknąć w pętli próbując uruchomić się na porcie 80, co kończy się niepowodzeniem, a następnie ponownie próbuje się uruchomić, z powodu flagi restart obecnej w /etc/init/logstash-web.conf.

Aby uniknąć tego problemu, zmień tę linię, aby dodać limit do instrukcji respawn lub ustaw usługę logstash-web na enabled=no w swoim playbooku, na przykład:

- name: Upewnij się, że proces logstash-web jest zatrzymany i wyłączony.
  service: name=logstash-web state=stopped enabled=no

Przykład Playbook

- hosts: search
  vars_files:
    - vars/main.yml

  roles:
    - geerlingguy.elasticsearch
    - geerlingguy.logstash

Licencja

MIT / BSD

Informacje o autorze

Ta rola została stworzona w 2014 roku przez Jeffa Geerlinga, autora Ansible for DevOps.

O projekcie

Logstash for Linux.

Zainstaluj
ansible-galaxy install solutionDrive.logstash
Licencja
mit
Pobrania
497
Właściciel