geerlingguy.filebeat
Ansible-Rolle: Filebeat für den ELK-Stack
Eine Ansible-Rolle, die Filebeat auf RedHat/CentOS oder Debian/Ubuntu installiert.
Anforderungen
Keine.
Rollenvariablen
Verfügbare Variablen sind unten aufgeführt, zusammen mit Standardwerten (siehe defaults/main.yml
):
filebeat_version: 7.x
Bestimmt die Hauptversion von Filebeat, die installiert wird.
filebeat_package: filebeat
filebeat_package_state: present
Das spezifische Paket, das installiert werden soll. Sie können eine Version des Pakets angeben, indem Sie den Paketnamen entsprechend Ihrer Plattform und dem Paketmanager ändern. Sie können auch den Paketstatus steuern (z. B. vorhanden, nicht vorhanden oder aktuell).
filebeat_create_config: true
Ob die Filebeat-Konfigurationsdatei erstellt und die SSL-Schlüssel und das Zertifikat für Filebeat kopiert werden sollen. Wenn Sie die Konfigurationsdatei selbst erstellen möchten, können Sie dies auf false
setzen.
filebeat_inputs:
- type: log
paths:
- "/var/log/*.log"
Eingaben, die im Abschnitt inputs
der Filebeat-Konfiguration aufgeführt werden. Lesen Sie den Filebeat Inputs-Konfigurationsleitfaden für weitere Optionen.
filebeat_output_elasticsearch_enabled: false
filebeat_output_elasticsearch_hosts:
- "localhost:9200"
Ob die Elasticsearch-Ausgabe aktiviert werden soll und an welche Hosts die Ausgabe gesendet werden soll.
filebeat_output_elasticsearch_auth:
username: "admin"
password: "S3CR3eeet"
# oder, nur für Version 8+
filebeat_output_elasticsearch_auth:
api_key: "xa-123a-f3ea012d-aaae1"
Konfiguriert die Authentifizierung für die Elasticsearch-Ausgabe. Beachten Sie, dass api_key und Benutzer/Paswort sich gegenseitig ausschließen, und api_key ist nur ab Version 8 verfügbar.
filebeat_output_logstash_enabled: true
filebeat_output_logstash_hosts:
- "localhost:5000"
Ob die Logstash-Ausgabe aktiviert werden soll und an welche Hosts die Ausgabe gesendet werden soll.
filebeat_enable_logging: false
filebeat_log_level: warning
filebeat_log_dir: /var/log/filebeat
filebeat_log_filename: filebeat.log
Filebeat-Protokollierung.
filebeat_ssl_certs_dir: /etc/pki/logstash
filebeat_ssl_private_dir: "{{ filebeat_ssl_certs_dir }}"
Der Pfad, wo Zertifikate und Schlüsseldateien gespeichert werden.
filebeat_ssl_ca_file: ""
filebeat_ssl_certificate_file: ""
filebeat_ssl_key_file: ""
Lokale Pfade zu den SSL-Zertifikaten und Schlüsseldateien.
filebeat_ssl_copy_file: true
Ob das Zertifikat und der Schlüssel in das filebeat_ssl_dir
kopiert werden sollen oder ob vorhandene verwendet werden sollen.
Für maximale Sicherheit sollten Sie Ihr eigenes gültiges Zertifikat und Schlüssel verwenden und die filebeat_ssl_*
Variablen in Ihrem Playbook aktualisieren, um Ihr Zertifikat zu verwenden.
Um ein selbstsigniertes Zertifikat/Schlüsselpaar zu generieren, können Sie den Befehl verwenden:
$ sudo openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout filebeat.key -out filebeat.crt
Beachten Sie, dass Filebeat und Logstash möglicherweise nicht korrekt mit selbstsignierten Zertifikaten arbeiten, es sei denn, Sie haben auch die gesamte Zertifikatskette (einschließlich der Zertifizierungsstelle für Ihr selbstsigniertes Zertifikat) auf Ihrem Server hinzugefügt. Siehe: https://github.com/elastic/logstash/issues/4926#issuecomment-203936891
filebeat_ssl_insecure: "false"
Setzen Sie dies auf "true"
, um die Verwendung von selbstsignierten Zertifikaten zuzulassen (wenn keine CA verfügbar ist).
Überschreiben der Filebeat-Vorlage
Wenn Sie nicht über Variablen anpassen können, weil eine Option nicht verfügbar ist, können Sie die Vorlage, die zur Generierung der Filebeat-Konfiguration verwendet wird, überschreiben.
filebeat_template: "filebeat.yml.j2"
Sie können entweder die bereitgestellte Vorlage kopieren und ändern oder beispielsweise auf eine Vorlagendatei in Ihrem Playbook-Verzeichnis verweisen, die anstelle der verwalteten Vorlage verwendet wird.
filebeat_template: "{{ playbook_dir }}/templates/filebeat.yml.j2"
Abhängigkeiten
Keine.
Beispiel-Playbook
- hosts: logs
- name: Setze die Variable java_packages (Debian/Ubuntu).
set_fact:
java_packages:
- openjdk-8-jdk
when: ansible_os_family == 'Debian'
roles:
- geerlingguy.java
- geerlingguy.elasticsearch
- geerlingguy.logstash
- geerlingguy.filebeat
Lizenz
MIT / BSD
Autor Informationen
Diese Rolle wurde 2016 von Jeff Geerling erstellt, Autor von Ansible for DevOps.
ansible-galaxy install geerlingguy.filebeat