Beat personalizado del Elastic Stack para interactuar con los cubos eBPF basados en Polycube.
Asegúrese de que esta carpeta esté en la siguiente ubicación: ${GOPATH}/src/gitlab.com/astrid-repositories/cubebeat
mkdir -p ${GOPATH}/src/gitlab.com/astrid-repositories/
cd ${GOPATH}/src/gitlab.com/astrid-repositories
git clone https://gitlab.com/astrid-repositories/cubebeat.git
Para compilar el binario para Cubebeat
ejecute el siguiente comando. Esto generará un binario en el mismo directorio con el nombre cubebeat.
chmod +x build.sh
build.sh
Para ejecutar Cubebeat
con la salida de depuración habilitada, ejecute:
./cubebeat -c cubebeat.yml -e -d "*"
Para ejecutar Cubebeat
sin la salida de depuración habilitada, ejecute:
./cubebeat -c cubebeat.yml -e
Cubebeat
lee el archivo de configuración (predeterminado: cubebeat.yml
) que se pasa como argumento.
Este archivo acepta las configuraciones de ritmo comunes como se describe en Formato de archivo de configuración.
Además, acepta configuraciones específicas como se muestra en el siguiente ejemplo:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
Las diferentes opciones se explicarán en las siguientes secciones.
Cubebeat
puede cargar archivos de configuración externos para entradas, lo que le permite separar su configuración en varios archivos de configuración más pequeños.
En sistemas con permisos de archivos
POSIX
, todos los archivos de configuración están sujetos a comprobaciones de propiedad y permisos de archivos.
Para obtener más información, consulte Permisos y propiedad de archivos de configuración en la referencia de la plataforma Beats .
La opción path
se especifica en la sección cubebeat.config.inputs
de cubebeat.yml
. Por ejemplo:
cubebeat :
config.inputs :
path : config.d/*.yml
Cada archivo encontrado por la path
Glob debe contener una lista de una o más definiciones de entrada.
La primera línea de cada archivo de configuración externo debe ser una definición de entrada que comience con
- name
.
Por ejemplo:
- name : synflood
enabled : true
period : 10s
polycube.api-url : " http://localhost:9000/polycube/v1/synflood/sf/stats/ "
- name : packetcapture
enabled : true
period : 5s
polycube.api-url : " http://localhost:9000/polycube/v1/packetcapture/pc "
Es fundamental que dos entradas en ejecución NO tengan el mismo
name
. Si más de uno ingresa el mismoname
, solo se acepta el primero; mientras que los demás se descartan.
Cuando la opción enabled
es true
, la entrada del cubo específico interactúa periódicamente con el cubo Polycube específico cada intervalo de tiempo definido en period
realizando una solicitud HTTP a la URL definida en polycube.api-url
.
Si no se puede acceder al cubo o hay algún error al recuperar los datos,
cubebeat
seguirá funcionando, intentando una nueva conexión después de un período de tiempo definido enperiod
.
Cada period
de tiempo, la entrada del cubo específico envía un nuevo evento Elastic
a la salida como se define en el archivo de configuración cubebeat.yml
Puede configurar cubebeat
para recargar dinámicamente archivos de configuración externos cuando haya cambios. Esta función está disponible para configuraciones de entrada que se cargan como archivos de configuración externos. No puede utilizar esta función para recargar el archivo de configuración principal cubebeat.yml
.
Para configurar esta función, especifica una path
(Glob) para observar los cambios de configuración. Cuando los archivos encontrados por Glob cambian, se inician y detienen nuevas entradas de acuerdo con los cambios en los archivos de configuración.
Esta característica es especialmente útil en entornos de contenedores donde se utiliza un contenedor para seguir los registros de servicios que se ejecutan en otros contenedores en el mismo host.
Para habilitar la recarga de configuración dinámica, especifique la path
y las opciones reload
en la sección cubebeat.config.inputs
. Por ejemplo:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
Opción | Descripción |
---|---|
path | Un globo que define los archivos para comprobar si hay cambios. |
reload.enabled | Cuando se establece en verdadero, habilita la recarga de configuración dinámica. |
reload.period | Especifica la frecuencia con la que se comprueban los archivos en busca de cambios. No establezca el period en menos de 1s porque el tiempo de modificación de los archivos a menudo se almacena en segundos.Establecer el period en menos de 1s generará gastos generales innecesarios . |
En sistemas con permisos de archivos
POSIX
, todos los archivos de configuración están sujetos a comprobaciones de propiedad y permisos de archivos.
Para obtener más información, consulte Permisos y propiedad de archivos de configuración en la referencia de la plataforma Beats .