geerlingguy.filebeat

Ansible-Rolle: Filebeat für den ELK-Stack

CI

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.

Installieren
ansible-galaxy install geerlingguy.filebeat
Lizenz
mit
Downloads
2.6M
Besitzer
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns