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