geerlingguy.filebeat
Ansible Rol: Filebeat para ELK Stack
Una rol de Ansible que instala Filebeat en RedHat/CentOS o Debian/Ubuntu.
Requisitos
Ninguno.
Variables del rol
Las variables disponibles se enumeran a continuación, junto con sus valores predeterminados (ver defaults/main.yml
):
filebeat_version: 7.x
Controla la versión principal de Filebeat que se instala.
filebeat_package: filebeat
filebeat_package_state: present
El paquete específico que se instalará. Puedes especificar una versión del paquete usando la sintaxis correcta para tu plataforma y gestor de paquetes cambiando el nombre del paquete. También puedes controlar el estado del paquete (por ejemplo, presente, ausente o último).
filebeat_create_config: true
Si se debe crear el archivo de configuración de Filebeat y manejar la copia de la clave y el certificado SSL para Filebeat. Si prefieres crear el archivo de configuración por ti mismo, puedes establecer esto en false
.
filebeat_inputs:
- type: log
paths:
- "/var/log/*.log"
Entradas que se enumerarán en la sección inputs
de la configuración de Filebeat. Lee la guía de configuración de entradas de Filebeat para más opciones.
filebeat_output_elasticsearch_enabled: false
filebeat_output_elasticsearch_hosts:
- "localhost:9200"
Si activar la salida de Elasticsearch, y a qué hosts enviar la salida.
filebeat_output_elasticsearch_auth:
username: "admin"
password: "S3CR3eeet"
# o, solo para versión 8+
filebeat_output_elasticsearch_auth:
api_key: "xa-123a-f3ea012d-aaae1"
Configura la autenticación para la salida de Elasticsearch. Ten en cuenta que api_key
y user/pass
son mutuamente excluyentes, y api_key
solo está disponible a partir de la versión 8.
filebeat_output_logstash_enabled: true
filebeat_output_logstash_hosts:
- "localhost:5000"
Si habilitar la salida de Logstash, y a qué hosts enviar la salida.
filebeat_enable_logging: false
filebeat_log_level: warning
filebeat_log_dir: /var/log/filebeat
filebeat_log_filename: filebeat.log
Registro de Filebeat.
filebeat_ssl_certs_dir: /etc/pki/logstash
filebeat_ssl_private_dir: "{{ filebeat_ssl_certs_dir }}"
La ruta donde se almacenarán los certificados y archivos de clave.
filebeat_ssl_ca_file: ""
filebeat_ssl_certificate_file: ""
filebeat_ssl_key_file: ""
Rutas locales para el certificado SSL y los archivos de clave.
filebeat_ssl_copy_file: true
Si copiar el certificado y la clave en el filebeat_ssl_dir
, o usar los existentes.
Para la máxima seguridad, debes usar tu propio certificado y archivo de clave válidos, y actualizar las variables filebeat_ssl_*
en tu playbook para usar tu certificado.
Para generar un par de certificado/claves autofirmados, puedes usar el comando:
$ sudo openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout filebeat.key -out filebeat.crt
Ten en cuenta que filebeat y logstash pueden no funcionar correctamente con certificados autofirmados a menos que también tengas la cadena de confianza completa (incluyendo la Autoridad Certificadora para tu certificado autofirmado) añadida en tu servidor. Ver: https://github.com/elastic/logstash/issues/4926#issuecomment-203936891
filebeat_ssl_insecure: "false"
Establece esto en "true"
para permitir el uso de certificados autofirmados (cuando no hay disponible una CA).
Sobrescribiendo la plantilla de filebeat
Si no puedes personalizar a través de variables porque una opción no está expuesta, puedes sobrescribir la plantilla utilizada para generar la configuración de filebeat.
filebeat_template: "filebeat.yml.j2"
Puedes copiar y modificar la plantilla proporcionada, o puedes, por ejemplo, apuntar a un archivo de plantilla en tu directorio de playbook que se usará en lugar de la plantilla gestionada.
filebeat_template: "{{ playbook_dir }}/templates/filebeat.yml.j2"
Dependencias
Ninguna.
Ejemplo de Playbook
- hosts: logs
- name: Establecer 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
Licencia
MIT / BSD
Información del Autor
Este rol fue creado en 2016 por Jeff Geerling, autor de Ansible for DevOps.
ansible-galaxy install geerlingguy.filebeat