bimdata.fluentd
Rol de Ansible Fluentd
Este rol instala y configura Fluentd.
Requisitos
- Este rol solo ha sido probado en Debian 12.x (Bookworm).
Variables del Rol
Este rol intenta mantener la misma configuración predeterminada como si hubieras instalado Fluentd manualmente. Puedes encontrar más información sobre cada opción en la documentación de Fluentd.
Variables utilizadas para la instalación:
Variables | Valor predeterminado | Descripción |
---|---|---|
fluentd_prerequisites | ['apt-transport-https', 'curl', 'gnupg'] | Lista de paquetes que deben instalarse antes de Fluentd. |
fluentd_major_version | 5 | Versión principal de Fluentd que deseas instalar. |
fluentd_apt_key_url | https://packages.treasuredata.com/GPG-KEY-td-agent | La clave APT para el paquete de Fluentd. |
fluentd_apt_repos_url | "https://packages.treasuredata.com/{{ fluentd_major_version }}/{{ ansible_distribution | lower }}/{{ ansible_distribution_release |
fluentd_apt_repos_suites | "{{ ansible_distribution_release | lower }}" |
fluentd_apt_repos_components | ['contrib'] | Los componentes del repositorio APT. |
fluentd_pkg_name | fluent-package | El nombre del paquete APT de Fluentd. |
fluentd_pkg_version: | "" | Instalar una versión específica del paquete. |
fluentd_pkg_version_hold | "{{ fluentd_pkg_version | default(False) |
fluentd_svc_name | fluentd | El nombre del servicio de Fluentd para iniciar/detener el demonio. |
Variables utilizadas para eliminar elementos antiguos (por ejemplo, si se instaló antes del cambio de nombre de td-agent a fluentd)
Variables | Valor predeterminado | Descripción |
---|---|---|
fluentd_apt_cleanup_legacy | false | Eliminar claves antiguas y fuentes APT antiguas si es verdadero. |
fluentd_apt_key_legacy_id | BEE682289B2217F45AF4CC3F901F9177AB97ACBE | ID de la antigua clave GPG para eliminar del llavero. |
fluentd_naming_cleanup_legacy | false | Eliminar antiguo servicio / conf / apt con el nombre td-agent. |
fluentd_pkg_name_legacy | td-agent | Nombre del paquete que será eliminado por el limpiador de legado. |
fluentd_svc_name_legacy | td-agent | Nombre del servicio que será eliminado por el limpiador de legado. |
fluentd_conf_directory_legacy | /etc/td-agent/ | Directorio de configuración que será eliminado por el limpiador de legado. |
Variables utilizadas para la configuración general:
Variables | Valor predeterminado | Descripción |
---|---|---|
fluentd_plugins | [] | Lista de plugins para instalar. |
fluentd_gem_exec_path | /usr/sbin/fluent-gem | Ruta del binario Gem para instalar plugins de fluentd. |
fluentd_system | {} | Configuración del sistema de fluentd. |
fluentd_conf_directory | "/etc/fluent" | Directorio de configuración de Fluentd. |
fluentd_conf_file_path | "{{ fluentd_conf_directory }}/fluentd.conf" | Ruta del archivo de configuración de Fluentd. |
fluentd_include_directory | Indefinido | Puede usarse para incluir otros archivos de configuración. Se añadirá @include {{ fluentd_include_directory }}*.conf en la configuración. |
Para fluentd_system
, cada clave se usa como un nombre de opción de configuración y los valores como valores.
Puedes ver todas las opciones disponibles en la documentación de Fluentd
fluentd_plugins
es una lista de los plugins que serán instalados por fluentd_gem_exec_path
.
Puedes especificar la versión deseada para cada plugin:
fluentd_plugins:
- name: fluent-plugin-prometheus
version: 2.0.0
Variables para el procesamiento de logs:
Variables | Valor predeterminado | Descripción |
---|---|---|
_fluentd_sources: | "{{ lookup('template', './lookup/get_sources.j2') }}" | Lista de diccionarios que definen todas las configuraciones de fuentes. |
_fluentd_filters: | "{{ lookup('template', './lookup/get_filters.j2') }}" | Lista de diccionarios que definen todas las configuraciones de filtros. |
_fluentd_labels: | "{{ lookup('template', './lookup/get_labels.j2') }}" | Lista de diccionarios que definen todas las configuraciones de etiquetas. |
_fluentd_matches: | "{{ lookup('template', './lookup/get_matches.j2') }}" | Lista de diccionarios que definen todas las configuraciones de coincidencias. |
En la mayoría de los casos, no deberías modificar estas variables. Se utiliza la creación de plantillas para construir estas listas con otras variables.
_fluentd_sources
agregará todas las variables cuyo nombre coincida con esta expresión regular:^fluentd_.+_source(s)?$
._fluentd_filters
agregará todas las variables cuyo nombre coincida con esta expresión regular:^fluentd_.+_filter(s)?$
._fluentd_labels
agregará todas las variables cuyo nombre coincida con esta expresión regular:^fluentd_.+_label(s)$
._fluentd_matches
agregará todas las variables cuyo nombre coincida con esta expresión regular:^fluentd_.+_match(es)?$
.
Cada variable que coincida con estas expresiones regulares debe ser:
- un diccionario que defina una fuente/filtro/etiqueta/coincidencia o
- una lista de diccionarios que definen una o más fuentes/filtros/etiquetas/coincidencias.
Cada diccionario se usa para definir una sección <source>
, <filter>
, <label>
o <match>
en el archivo de configuración de Fluentd. 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.
Al algunas claves tienen comportamientos especiales:
type
será reemplazado por@type
.id
será reemplazado por@id
.label
será reemplazado por@label
.log_level
será reemplazado por@log_level
._section_args
es una clave especial utilizada para definir cosas como etiquetas que coincidirán con la configuración.- Para la configuración de etiquetas (variables que coinciden con
^fluentd_.+_label(s)$
), la clavename
se utiliza para definir el nombre de la etiqueta, como esto<label @my_name>
. - Los diccionarios no pueden tener claves duplicadas, así que cada clave que necesite repetirse puede ir precedida por un prefijo que coincida con esta expresión regular
^[0-9]+__
. El prefijo se eliminará cuando se genere la configuración.
Por ejemplo:
fluentd_default_forward_source:
type: forward
id: forward
bind: 0.0.0.0
port: 24224
fluentd_systemd_filters:
- _section_args: "systemd.**"
type: systemd_entry
id: parse_systemd
field_map: '{"_HOSTNAME": "host"}'
field_map_strict: "false"
fields_lowercase: "true"
fields_strip_underscores: "true"
- _section_args: "systemd.unknown"
type: record_modifier
id: parse_unknown
record:
comm: unknown
fluentd_archive_label:
name: archive
filter:
_section_args: "**"
type: record_modifier
whitelist_keys: host, message
0__match:
_section_args: "syslog.*.4 syslog.*.10"
type: file
id: archives_syslog_auth
path: /logs/archives/${host}/auth-%Y%m%d
1__match:
_section_args: "**"
type: "null"
id: archives_drop
creará:
<source>
@type forward
@id forward
bind 0.0.0.0
port 24224
</source>
<filter systemd.**>
@type systemd_entry
@id parse_systemd
field_map {"_HOSTNAME": "host"}
field_map_strict false
fields_lowercase true
fields_strip_underscores true
</filter>
<filter systemd.unknown>
@type record_modifier
@id parse_unknown
<record>
comm unknown
</record>
</filter>
<label @archive>
<filter **>
@type record_modifier
whitelist_keys host, message
</filter>
<match syslog.*.4 syslog.*.10>
@type file
@id archives_syslog_auth
path /logs/archives/${host}/auth-%Y%m%d
</match>
<match **>
@type null
@id archives_drop
</match>
</label>
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.
Dependencias
Ninguna
Licencia
BSD
Información del Autor
ansible-galaxy install bimdata.fluentd