solutionDrive.logstash

Ansible Rolle: Logstash

Build-Status

Eine Ansible Rolle, die Logstash auf RedHat/CentOS Debian/Ubuntu installiert.

Diese Rolle installiert standardmäßig ein syslog grok Muster. Wenn Sie weitere Filter hinzufügen möchten, siehe die Dokumentation für logstash_configuration_files und logstash_filter_files.

Als Beispiel könnten Sie eine Datei mit dem Namen 13-myapp.conf mit dem entsprechenden grok Filter erstellen und Logstash neu starten, um es zu verwenden. Testen Sie Ihren grok Regex mit dem Grok Debugger.

Anforderungen

Obwohl auch andere Methoden möglich sind, ist diese Rolle so konzipiert, dass sie mit Elasticsearch als Backend zum Speichern von Protokollnachrichten funktioniert.

Rollenvariablen

Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml):

logstash_listen_port_beats: 5044

Der Port, über den Logstash auf Beats hört.

logstash_version: 2.3

Standard-Hauptversion von Logstash, die installiert werden soll.

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

Liste von Eingangs-/Ausgangs- (Konfigurationsdateien) und Filterdateien, die installiert werden sollen. Standardmäßig werden die Lumberjack-Eingangs-/Ausgangs- und Variablenfilterdateien installiert. Sie können Ihre eigenen Konfigurationsdateien spezifizieren, indem Sie Eingangs-/Ausgangsdateien in Ihr eigenes templates Verzeichnis und Filter in Ihr eigenes files Verzeichnis legen. Dann erstellen Sie Ihre eigene Liste im Verzeichnis vars/main.yml und vars_files in Ihrer Wrapper-Rolle und binden Sie diese Rolle ein, um Logstash mit Ihrer eigenen Konfiguration bereitzustellen. Siehe Beispiel-Playbook unten.

logstash_elasticsearch_hosts:
  - http://localhost:9200

Die Hosts, an die Logstash Protokolle an Elasticsearch senden soll.

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

SSL-Konfiguration für Logstash, um Anfragen von logstash-forwarder zu akzeptieren, die auf entfernten Hosts ausgeführt werden. Sicherheitsnotiz: Auf Produktions- oder öffentlich zugänglichen (z.B. nicht-Test-) Servern sollten Sie ein eigenes Schlüssel-/Zertifikatspaar erstellen und das anstelle des enthaltenen Standards verwenden! Sie können OpenSSL verwenden, um die Schlüssel- und Zertifikatsdateien zu erstellen, mit einem Befehl wie folgt: openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout logstash.key -out logstash.crt.

Beachten Sie, dass Filebeat und Logstash möglicherweise nicht korrekt mit selbstsignierten Zertifikaten funktionieren, es sei denn, Sie haben auch die gesamte Vertrauenskette (einschließlich der Zertifizierungsstelle für Ihr selbstsigniertes Zertifikat) auf Ihrem Server hinzugefügt. Siehe: https://github.com/elastic/logstash/issues/4926#issuecomment-203936891

Für logstash_ssl_certificate_file und logstash_ssl_key_file können Sie einen Pfad relativ zum Rollenverzeichnis oder einen absoluten Pfad zur Datei angeben.

logstash_local_syslog_path: /var/log/syslog
logstash_monitor_local_syslog: true

Ob Konfiguration für die lokale Syslog-Datei (definiert als logstash_local_syslog_path) zu Logstash hinzugefügt werden soll. Setzen Sie dies auf false, wenn Sie das lokale Syslog anders überwachen oder wenn Ihnen die lokale Syslog-Datei nicht wichtig ist. Andere lokale Protokolle können durch Ihre eigenen Konfigurationsdateien hinzugefügt werden, die sich in /etc/logstash/conf.d befinden.

logstash_enabled_on_boot: yes

Setzen Sie dies auf no, wenn Sie nicht möchten, dass Logstash beim Systemstart ausgeführt wird.

logstash_install_plugins:
  - logstash-input-beats

Eine Liste von Logstash-Plugins, die installiert werden sollen.

logstash_install_dir: /usr/share/logstash

Pfad zum Installationsverzeichnis. Früher war "/opt/logstash" fest codiert, jetzt ist der Standard "/usr/share/logstash".

Weitere Hinweise

Wenn Sie eine hohe CPU-Auslastung von einem der logstash Prozesse feststellen und Sie Logstash zusammen mit einer anderen Anwendung verwenden, die auf Port 80 auf einer Plattform wie Ubuntu mit Upstart läuft, ist der Prozess logstash-web möglicherweise in einer Schleife gefangen, die versucht, auf Port 80 zu starten, fehlschlägt und es erneut versucht, aufgrund des restart-Flags in /etc/init/logstash-web.conf.

Um dieses Problem zu vermeiden, ändern Sie entweder diese Zeile, um ein limit zur Wiederherstellungserklärung hinzuzufügen, oder setzen Sie den Dienst logstash-web auf enabled=no in Ihrem Playbook, z.B.:

- name: Sicherstellen, dass der logstash-web Prozess gestoppt und deaktiviert ist.
  service: name=logstash-web state=stopped enabled=no

Beispiel Playbook

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

  roles:
    - geerlingguy.elasticsearch
    - geerlingguy.logstash

Lizenz

MIT / BSD

Autorinformationen

Diese Rolle wurde 2014 von Jeff Geerling erstellt, Autor von Ansible für DevOps.

Über das Projekt

Logstash for Linux.

Installieren
ansible-galaxy install solutionDrive.logstash
GitHub Repository
Lizenz
mit
Downloads
497