solutionDrive.logstash
Rola Ansible: Logstash
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.
ansible-galaxy install solutionDrive.logstash