geerlingguy.filebeat

Rôle Ansible : Filebeat pour la pile ELK

CI

Un rôle Ansible qui installe Filebeat sur RedHat/CentOS ou Debian/Ubuntu.

Exigences

Aucune.

Variables du Rôle

Les variables disponibles sont énumérées ci-dessous, avec leurs valeurs par défaut (voir defaults/main.yml) :

filebeat_version: 7.x

Contrôle la version majeure de Filebeat qui sera installée.

filebeat_package: filebeat
filebeat_package_state: present

Le package spécifique à installer. Vous pouvez spécifier une version du package en modifiant le nom du package selon votre plateforme et votre gestionnaire de packages. Vous pouvez également contrôler l'état du package (par exemple, présent, absent ou à jour).

filebeat_create_config: true

Indique s'il faut créer le fichier de configuration de Filebeat et gérer la copie de la clé SSL et du certificat pour Filebeat. Si vous préférez créer le fichier de configuration vous-même, vous pouvez le mettre sur false.

filebeat_inputs:
  - type: log
    paths:
      - "/var/log/*.log"

Les entrées qui seront listées dans la section inputs de la configuration de Filebeat. Lisez le guide de configuration des entrées Filebeat pour plus d'options.

filebeat_output_elasticsearch_enabled: false
filebeat_output_elasticsearch_hosts:
  - "localhost:9200"

Indique s'il faut activer la sortie vers Elasticsearch, et vers quels hôtes envoyer la sortie.

filebeat_output_elasticsearch_auth:
    username: "admin"
    password: "S3CR3eeet"

# ou seulement pour la version 8+
filebeat_output_elasticsearch_auth:
    api_key: "xa-123a-f3ea012d-aaae1"

Configure l'authentification pour la sortie vers Elasticsearch. Notez que api_key et user/pass sont mutuellement exclusifs, et api_key n'est disponible qu'à partir de la version 8.

filebeat_output_logstash_enabled: true
filebeat_output_logstash_hosts:
  - "localhost:5000"

Indique s'il faut activer la sortie vers Logstash, et vers quels hôtes envoyer la sortie.

filebeat_enable_logging: false
filebeat_log_level: warning
filebeat_log_dir: /var/log/filebeat
filebeat_log_filename: filebeat.log

Journalisation de Filebeat.

filebeat_ssl_certs_dir: /etc/pki/logstash
filebeat_ssl_private_dir: "{{ filebeat_ssl_certs_dir }}"

Le chemin où les certificats et les fichiers de clé seront stockés.

filebeat_ssl_ca_file: ""
filebeat_ssl_certificate_file: ""
filebeat_ssl_key_file: ""

Chemins localisés vers le certificat SSL et les fichiers de clé.

filebeat_ssl_copy_file: true

Indique s'il faut copier le certificat et la clé dans le filebeat_ssl_dir, ou utiliser ceux existants.

Pour une sécurité maximale, vous devez utiliser votre propre certificat et fichier de clé valides, et mettre à jour les variables filebeat_ssl_* dans votre playbook pour utiliser votre certificat.

Pour générer un certificat/clé auto-signé, vous pouvez utiliser la commande :

$ sudo openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout filebeat.key -out filebeat.crt

Notez que Filebeat et Logstash peuvent ne pas fonctionner correctement avec des certificats auto-signés, à moins que vous n'ayez également ajouté la chaîne de confiance complète (y compris l'Autorité de Certification de votre certificat auto-signé) sur votre serveur. Voir : https://github.com/elastic/logstash/issues/4926#issuecomment-203936891

filebeat_ssl_insecure: "false"

Mettez cela sur "true" pour permettre l'utilisation de certificats auto-signés (lorsqu'une CA n'est pas disponible).

Remplacer le modèle Filebeat

Si vous ne pouvez pas personnaliser via des variables parce qu'une option n'est pas exposée, vous pouvez remplacer le modèle utilisé pour générer la configuration de Filebeat.

filebeat_template: "filebeat.yml.j2"

Vous pouvez soit copier et modifier le modèle fourni, soit pointer vers un fichier de modèle dans le répertoire de votre playbook qui sera utilisé à la place du modèle géré.

filebeat_template: "{{ playbook_dir }}/templates/filebeat.yml.j2"

Dépendances

Aucune.

Exemple de Playbook

- hosts: logs

- name: Définir la 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

Licence

MIT / BSD

Informations sur l'Auteur

Ce rôle a été créé en 2016 par Jeff Geerling, auteur de Ansible for DevOps.

Installer
ansible-galaxy install geerlingguy.filebeat
Licence
mit
Téléchargements
2.6M
Propriétaire
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns