bimdata.fluentbit

Rol de Ansible Fluentbit

Esta rol instala y configura Fluentbit.

Requisitos

  • Esta rol solo ha sido probado con Ansible >= 2.9.

Variables del Rol

Esta rol intenta mantener la misma configuración predeterminada que si instalaras Fluentbit manualmente. Puedes encontrar más información sobre cada opción en la documentación de Fluentbit.

Variables utilizadas para la instalación:

Variables Valor predeterminado Descripción
fluentbit_prerequisites ['apt-transport-https', 'curl', 'gnupg'] Lista de paquetes que deben instalarse antes de Fluentbit.
fluentbit_apt_key_path "/usr/share/keyrings/fluentbit-keyring.gpg" Ruta de llavero APT para almacenar la clave de Fluentbit.
fluentbit_apt_key_url https://packages.fluentbit.io/fluentbit.key La clave APT para el paquete de Fluentbit.
fluentbit_apt_repos_url "https://packages.fluentbit.io/{{ ansible_distribution lower }}/{{ ansible_distribution_release
fluentbit_apt_repos_component main Componente del repositorio APT.
fluentbit_pkg_name fluent-bit Nombre del paquete APT de Fluentbit.
fluentbit_pkg_version "" Instalar una versión específica del paquete.
fluentbit_pkg_version_hold "{{ fluentbit_pkg_version default(False)
fluentbit_svc_name fluent-bit Nombre del servicio de Fluentbit para iniciar/detener el daemon.
fluentbit_apt_cleanup_legacy false Eliminar claves antiguas y fuentes APT antiguas si es verdadero.
fluentbit_apt_key_legacy_id F209D8762A60CD49E680633B4FF8368B6EA0722A ID de la antigua clave GPG a eliminar del llavero.
fluentbit_naming_cleanup_legacy false Eliminar antiguos servicios/conf/apt con el nombre td-agent.
fluentbit_pkg_name_legacy td-agent-bit Nombre del paquete que será eliminado por el limpiador legado.
fluentbit_svc_name_legacy td-agent-bit Nombre del servicio que será eliminado por el limpiador legado.
fluentbit_conf_directory_legacy /etc/td-agent-bit/ Directorio de configuraciones que será eliminado por el limpiador legado.

Variables utilizadas para la configuración general:

Variables Valor predeterminado Descripción
fluentbit_svc_flush 5 Tiempo de flush en formato segundos.nanosegundos.
fluentbit_svc_grace 5 Establecer el tiempo de gracia en segundos.
fluentbit_svc_daemon "off" Valor On/Off para especificar si Fluentbit se ejecuta como un daemon. Debe estar apagado al usar la unidad de Systemd proporcionada.
fluentbit_svc_logfile "" Ruta absoluta para un archivo de registro opcional. Registro en stdout si no se especifica.
fluentbit_svc_loglevel info Establecer el nivel de verbosidad del registro.
fluentbit_svc_parsers_file ["parsers.conf"] Lista de rutas para archivos de configuración de parsers.
fluentbit_svc_plugins_file ["plugins.conf"] Lista de rutas para archivos de configuración de plugins.
fluentbit_svc_streams_file [] Lista de rutas para archivos de configuración de stream processors.
fluentbit_managed_parsers_enable "{{ ((_fluentbit_parsers length) or (_fluentbit_mlparsers
fluentbit_managed_parsers_file "{{ fluentbit_conf_directory }}/managed-parsers.conf" Archivo donde se definen los parsers personalizados si es necesario.
fluentbit_svc_http {} Diccionario para la configuración del servidor HTTP incorporado.
fluentbit_svc_storage {} Diccionario para la configuración de almacenamiento/buffer.
fluentbit_svc_limit_open_files Undefined Configurar LimitNOFILE para el servicio de systemd si se define

Para fluentbit_svc_http, cada clave se utiliza como un nombre de opción de configuración y los valores como valores. No necesitas agregar el prefijo HTTP_, se añadirá automáticamente. Por ejemplo, puedes definirlo así:

fluentbit_svc_http:
  server: On
  listen: 0.0.0.0
  port: "{{ fluentbit_monitoring_port }}"

Es lo mismo para fluentbit_svc_storage: no necesitas especificar el prefijo storage.. Ejemplo:

fluentbit_svc_storage:
  path: /var/log/flb-storage/
  sync: full
  checksum: "off"

Otras variables:

Variables Valor predeterminado Descripción
fluentbit_dbs_path "" Una ruta para un directorio que será creado por la rol. Por ejemplo, para almacenar tus archivos de entrada DB.

Variables para el procesamiento de logs:

Variables Valor predeterminado Descripción
_fluentbit_inputs "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='input') }}" Lista de diccionarios que definen todas las entradas de logs.
_fluentbit_filters "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='filter') }}" Lista de diccionarios que definen todos los filtros de logs.
_fluentbit_outputs "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='output') }}" Lista de diccionarios que definen todas las salidas de logs.
_fluentbit_parsers "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='parser') }}" Lista de diccionarios que definen todos los parsers gestionados de logs.
_fluentbit_mlparsers "{{ lookup('template', 'get_vars.j2'), template_vars=dict(var_type='mlparser') }}" Lista de diccionarios que definen todos los parsers multilínea gestionados de logs.

En la mayoría de los casos, no deberías modificar estas variables. Se utiliza plantillas para construir estas listas con otras variables.

  • _fluentbit_inputs agregará todas las variables cuyo nombre coincida con esta expresión regular: ^fluentbit_.+_input(s)?$'.
  • _fluentbit_filters agregará todas las variables cuyo nombre coincida con esta expresión regular: ^fluentbit_.+_filter(s)?$'.
  • _fluentbit_outputs agregará todas las variables cuyo nombre coincida con esta expresión regular: ^fluentbit_.+_output(s)?$'.
  • _fluentbit_parsers agregará todas las variables cuyo nombre coincida con esta expresión regular: ^fluentbit_.+_parser(s)?$'.
  • _fluentbit_outputs agregará todas las variables cuyo nombre coincida con esta expresión regular: ^fluentbit_.+_mlparser(s)?$'.

Cada variable que coincida con estas expresiones regulares debe ser:

  • un diccionario que defina una entrada/filtro/salida/parser o
  • una lista de diccionarios que defina una o más entradas/filtros/salidas/parsers.

Cada diccionario se utiliza para definir una sección [INPUT], [FILTER], [OUTPUT], [PARSER] o [MULTILINE_PARSER] en el archivo de configuración de Fluentbit o en el archivo de parsers gestionados. Cada sección de configuración se configura con pares clave/valor, por lo que las claves del diccionario se utilizan como claves de configuración y los valores como valores.

Por ejemplo:

fluentbit_nginx_input:
  - name: tail
    path: /var/log/nginx/access.log
  - name: tail
    path: /var/log/nginx/error.log

fluentbit_kernel_input:
  name: tail
  path: /var/log/kern.log

creará:

[INPUT]
  name tail
  path /var/log/nginx/access.log
[INPUT]
  name tail
  path /var/log/nginx/error.log
[INPUT]
  name tail
  path /var/log/kern.log

Esto te permite definir variables en múltiples group_vars y acumulándolas para hosts en múltiples grupos sin necesidad de reescribir la lista completa.

Los diccionarios de Ansible no pueden tener la misma clave múltiples veces. Esto puede ser un problema al usar elementos como record. Para superar este problema, cada clave puede estar prefijada con un número que se eliminará en el archivo de plantilla. Debe coincidir con esta expresión regular: '^[0-9]+__'.

Por ejemplo:

fluentbit_add_context_filter:
  - name: record_modifier
    match: '*'
    0__record: hostname ${HOSTNAME}
    1__record: product Awesome_Tool

creará:

[FILTER]
  name record_modifier
  match *
  record hostname ${HOSTNAME}
  record product Awesome_Tool

Dependencias

Ninguna

Ejemplo de Playbook

en group_vars/all.yml:

fluentbit_kernel_input:
  name: tail
  path: /var/log/kern.log

fluentbit_env_filter:
  name: record_modifier
  match: '*'
  record: "env {{ env }}"

fluentbit_central_output:
  name: forward
  match: '*'
  host: "{{ logs_server_address }}"
  port: "{{ log_forward_port }}"

en group_vars/web.yml:

fluentbit_nginx_input:
  - name: tail
    path: /var/log/nginx/access.log
  - name: tail
    path: /var/log/nginx/error.log

en playbook.yml:

- hosts: web
  gather_facts: True
  become: yes
  roles:
    - bimdata.fluentbit

Licencia

BSD

Información del Autor

BIMData.io

Acerca del proyecto

This role installs and configures Fluentbit.

Instalar
ansible-galaxy install bimdata.fluentbit
Licencia
mit
Descargas
2.7k
Propietario