geerlingguy.filebeat
Rôle Ansible : Filebeat pour la pile ELK
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.
ansible-galaxy install geerlingguy.filebeat