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
ansible-galaxy install bimdata.fluentbit