mircomasa.filebeat
Rol de Filebeat
Resumen
Este rol:
- instala filebeat en Ubuntu, CentOS, Windows
- copia un archivo de configuración preparado (ruta de log, conexión a Elasticsearch, etc.)
Tareas del rol
- Preparar el servidor (agregar repositorio de elastic)
- [Opcional] Crear carpeta(s) para rutas personalizadas
- Instalar filebeat
- Copiar archivo de configuración
Requisitos
- Versión mínima de Ansible para la instalación: 2.5
- Sistemas Operativos Soportados:
- CentOS
- 6, 7
- Ubuntu
- 16.04, 18.04
- Debian
- 8, 9
- Windows
- CentOS
Variables del rol
Puedes sobreescribir cualquier variable a continuación configurando "variable: valor" en el playbook.
filebeat_version
Se usa para seleccionar la rama principal de Filebeat a instalar (versiones estables actuales 5.x o 6.x). El valor por defecto es6
.filebeat_last_version
Se usa para seleccionar una versión específica de Filebeat a instalar. El valor por defecto es6.6.0
elastic_gpg_key
Clave GPG del repositorio de Elasticsearch. El valor por defecto eshttps://artifacts.elastic.co/GPG-KEY-elasticsearch
filebeat_node_name
Nombre del nodo de filebeat. El valor por defecto es{{ inventory_hostname }}
. Si no se define esta opción, se usa el nombre del host.filebeat_ssl_enabled
Activa/desactiva la conexión SSL entre filebeat y logstash/elasticsearch. Las opciones de SSL deben establecerse en los campos correspondientes como se muestra a continuación:
ssl:
key: "/etc/pki/tls/private/server.key"
certificate: "/etc/pki/tls/certs/server.crt"
certificate_authorities: "/etc/pki/CA/ca-root.pem"
En el caso de la configuración de Windows:
ssl:
key: 'c:\tls\private\server.key'
certificate: 'c:\tls\certs\server.pem'
certificate_authorities: 'c:\CA\ca-root.pem'
La sección path
de las opciones de configuración define dónde busca Filebeat sus archivos. Por ejemplo, Filebeat busca el archivo de plantilla de Elasticsearch en la ruta de configuración y escribe archivos de log en la ruta de logs. Filebeat busca sus archivos de registro en la ruta de datos. Los valores por defecto para los host de Linux están configurados de esta manera:
path:
home: /usr/share/filebeat
config: /etc/filebeat
data: /var/lib/filebeat
logs: /var/log/filebeat
En el caso de la configuración de Windows, los caminos por defecto son:
path:
home: 'c:\program files\filebeat'
config: 'c:\program files\filebeat'
data: 'c:\programdata\filebeat'
logs: 'c:\programdata\filebeat\logs'
win_download_path
Directorio temporal para Windows para descargar y descomprimir el paquete de Filebeat. El valor por defecto es'{{ ansible_env.TEMP }}/filebeat'
(el valor de ansible_env.TEMP soluciona el problema de idempotencia)input_logpath
Ruta a los archivos de log.
El valor por defecto para la familia de sistemas operativos *NIX es "/var/log/*.log"
El valor por defecto para la familia de sistemas operativos WIN es 'c:\windows\*.log'
La variable filebeat_inputs
define el tipo de logs que serán procesados por el pipeline, sus rutas de log y el índice de Elasticsearch que debe almacenar este tipo de logs.
Puedes especificar varias entradas con diferentes rutas, tipos de logs y nombres de índice usando el formato yaml como en el siguiente ejemplo:
filebeat_inputs:
- name: hybris
paths:
- '/var/log/console*.log'
fields:
logtype: hybris
index_name: hybris-console
- name: access
paths:
- '/var/log/access*.log'
- '/var/log/nginx_access*.log'
fields:
logtype: access
index_name: nginx-access
Personalización de la salida:
filebeat_output
Se usa para configurar qué salida usar al enviar datos (elasticsearch
ologstash
). El valor por defecto eselasticsearch
filebeat_elasticsearch_output.hosts
Lista de hosts para conectarse. El valor por defecto eslocalhost
filebeat_elasticsearch_output.port
Valor para establecer un puerto personalizado. El valor por defecto es9200
filebeat_logstash_outputs
Lista de hosts y puertos para conectarse. El valor por defecto eslocalhost:5044
Parámetros de configuración avanzados:
La sección filebeat(systemd)\initd
de las opciones de configuración define qué script de inicialización se utilizará para gestionar el servicio de filebeat según el sistema operativo *nix. Se tendrán en cuenta las rutas personalizadas (si están configuradas).
filebeat_service_name
Nombre del script nssm\init que gestiona el servicio de filebeatfilebeat_bulk_max_size
Número máximo de eventos para agrupar en una sola solicitud de Logstash. El valor por defecto es500
filebeat_worker
Número de trabajadores por host de Elasticsearch. El valor por defecto es1
filebeat_logging_to_syslog
Enviar toda la salida de registro a syslog. El valor por defecto esfalse
filebeat_logging_to_files
Enviar toda la salida de registro a archivos rotativos. El valor por defecto estrue
filebeat_rotateeverybytes
Define el límite de tamaño del archivo de log. El valor por defecto es104857600
=100MB
filebeat_keepfiles
Número de archivos de log para mantener. El valor por defecto es30
filebeat_ignore_older
Valor (se pueden usar cualquier cadena de tiempo como 2h, 5m) por encima del cual se ignorarán los archivos. El valor por defecto es0
(desactivado)filebeat_scan_frequency
Define con qué frecuencia filebeat verifica las actualizaciones de archivos. El valor por defecto es15s
filebeat_harvester_buffer_size
Define el tamaño del búfer. El valor por defecto es65535
filebeat_logname
Nombre de los archivos de registro. El valor por defecto es"filebeat.log"
Dependencias
ca-cert (solo para instalación con SSL)
Ejemplo de Playbook
Instalando la versión 6.x de Filebeat:
- name: Instalar filebeat
hosts: all
roles:
- role: ansible-role-filebeat
Instalando la versión 6.x de Filebeat con ruta personalizada a los archivos de log y salida a Elasticsearch:
- name: Instalar filebeat
hosts: all
roles:
- role: ansible-role-filebeat
vars:
input_logpath: "/var/log/messages"
filebeat_elasticsearch_output:
hosts:
- elasticsearch.ejemplo.com
port: 9200
Licencia
Apache
Información del Autor
autores:
- Equipo de Lean Delivery team@lean-delivery.com
Role for filebeat installation
ansible-galaxy install mircomasa.filebeat