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_versionSe 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_versionSe usa para seleccionar una versión específica de Filebeat a instalar. El valor por defecto es6.6.0elastic_gpg_keyClave GPG del repositorio de Elasticsearch. El valor por defecto eshttps://artifacts.elastic.co/GPG-KEY-elasticsearchfilebeat_node_nameNombre 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_enabledActiva/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_pathDirectorio 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_logpathRuta 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_outputSe usa para configurar qué salida usar al enviar datos (elasticsearchologstash). El valor por defecto eselasticsearchfilebeat_elasticsearch_output.hostsLista de hosts para conectarse. El valor por defecto eslocalhostfilebeat_elasticsearch_output.portValor para establecer un puerto personalizado. El valor por defecto es9200filebeat_logstash_outputsLista 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_nameNombre del script nssm\init que gestiona el servicio de filebeatfilebeat_bulk_max_sizeNúmero máximo de eventos para agrupar en una sola solicitud de Logstash. El valor por defecto es500filebeat_workerNúmero de trabajadores por host de Elasticsearch. El valor por defecto es1filebeat_logging_to_syslogEnviar toda la salida de registro a syslog. El valor por defecto esfalsefilebeat_logging_to_filesEnviar toda la salida de registro a archivos rotativos. El valor por defecto estruefilebeat_rotateeverybytesDefine el límite de tamaño del archivo de log. El valor por defecto es104857600=100MBfilebeat_keepfilesNúmero de archivos de log para mantener. El valor por defecto es30filebeat_ignore_olderValor (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_frequencyDefine con qué frecuencia filebeat verifica las actualizaciones de archivos. El valor por defecto es15sfilebeat_harvester_buffer_sizeDefine el tamaño del búfer. El valor por defecto es65535filebeat_lognameNombre 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