Funcionamiento pipelines

Hola

Estoy generando un laboratorio para la recogida de logs (Apache, Sophos,.....)

Si tengo dos ficheros de apache (access y error) como especifico que cada fichero utilice su pipeline.
filebeat-7.17.15-apache-access-pipeline
filebeat-7.17.15-apache-error-pipeline

Configuracion del laboratorio

a)Esquema
Filebeat (filebeat-7.17.15) --> Elastichsearch (7.17.10)

b)Configuracion pipelines

filebeat setup --pipelines --modules apache

filebeat-7.17.15-apache-access-pipeline
filebeat-7.17.15-apache-error-pipeline

Configuración filebeat.yml

> filebeat:
>   config:
>     modules:
>       path: /etc/filebeat/modules.d/*.yml
>       reload:
>         enabled: false
>   inputs:
>   - enabled: false
>     id: my-filestream-id
>     paths: null
>     type: filestream
>   - enabled: true
>     id: apache-filebeat
>     paths:
>     - /root/access_test.log
>     type: filestream
> output:
>   elasticsearch:
>     hosts:
>     - localhost:9200
> path:
>   config: /etc/filebeat
>   data: /var/lib/filebeat
>   home: /usr/share/filebeat
>   logs: /var/log/filebeat
> processors:
> - add_host_metadata:
>     when:
>       not:
>         contains:
>           tags: forwarded
> - add_cloud_metadata: null
> - add_docker_metadata: null
> - add_kubernetes_metadata: null

Configuracion por defecto carga los logs, no ejecutar pipeline
output.elasticsearch:
hosts: ["localhost:9200"]

Configuracion especifico el index,error
output.elasticsearch:
hosts: ["localhost:9200"]
index: "%{[fields.log_type]}-%{[agent.version]}-%{+yyyy.MM.dd}"

Exiting: setup.template.name and setup.template.pattern have to be set if index name is modified

Funciona correctamente
output.elasticsearch:
hosts: ["localhost:9200"]
pipeline: "filebeat-7.17.15-apache-access-pipeline"

Gracias

1 Like

Hola, puedo leer español pero solo escribir en inglés, espero que esto sea útil.

Invocar el comando
sudo filebeat modules enable apache

That command will rename modules.d/apache.yml.disabled to modules.d/apache.yml

Editar el archivo modules.d/apache.yml

- module: apache
  access:
    enabled: true
    var.paths: ["/root/access_test.log*"]
  error:
    enabled: true
    var.paths: ["/root/error_test.log*"]

Editar el archivo Filebeat.yml

 filebeat:
   config:
     modules:
       path: /etc/filebeat/modules.d/*.yml
       reload:
         enabled: false
 output:
   elasticsearch:
     hosts:
     - localhost:9200
 path:
   config: /etc/filebeat
   data: /var/lib/filebeat
   home: /usr/share/filebeat
   logs: /var/log/filebeat
 processors:
 - add_host_metadata:
     when:
       not:
         contains:
           tags: forwarded
 - add_cloud_metadata: null
 - add_docker_metadata: null
 - add_kubernetes_metadata: null

Hola.
Gracias por tu respuesta.

He probado la configuración que indicas, pero no se aplican las pipelines.

Donde podría ver información de lo que esta ocurriendo , he revisado el fichero /var/log/filebeat/filebeat y no muestra información?

The pipelines are applied automatically by the module in the background and executed when the document hits elasticsearch (ingest pipelines run in elasticsearch) as long as you do not override the pipeline settings.

Machine Translation:
El módulo aplica automáticamente las canalizaciones en segundo plano y las ejecuta cuando el documento llega a elasticsearch (las canalizaciones de ingesta se ejecutan en elasticsearch), siempre y cuando no anule la configuración de la canalización.

We can also have filebeat output to the console which would help me troubleshoot this issue with you.

Machine Translation: También podemos tener salida de filebeat a la consola, lo que me ayudaría a solucionar este problema con usted.

 output.console:
   pretty: true

Editar el archivo Filebeat.yml

 filebeat:
   config:
     modules:
       path: /etc/filebeat/modules.d/*.yml
       reload:
         enabled: false
 output.console:
   pretty: true
 path:
   config: /etc/filebeat
   data: /var/lib/filebeat
   home: /usr/share/filebeat
   logs: /var/log/filebeat
 processors:
 - add_host_metadata:
     when:
       not:
         contains:
           tags: forwarded
 - add_cloud_metadata: null
 - add_docker_metadata: null
 - add_kubernetes_metadata: null

Can you invoke the command and share the result with me? Specifically whatever is logged to the console?

Machine Translation: ¿Puedes invocar el comando y compartir el resultado conmigo? ¿Específicamente lo que está registrado en la consola?

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.