Batida personalizada do Elastic Stack para interagir com os cubos eBPF baseados em Polycube.
Certifique-se de que esta pasta esteja no seguinte local: ${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 construir o binário para Cubebeat
execute o comando abaixo. Isso irá gerar um binário no mesmo diretório com o nome cubebeat.
chmod +x build.sh
build.sh
Para executar Cubebeat
com a saída de depuração habilitada, execute:
./cubebeat -c cubebeat.yml -e -d "*"
Para executar Cubebeat
sem a saída de depuração habilitada, execute:
./cubebeat -c cubebeat.yml -e
Cubebeat
lê o arquivo de configuração (padrão: cubebeat.yml
) que é passado como argumento.
Este arquivo aceita as configurações de batida comuns conforme descrito em Formato de arquivo de configuração.
Além disso, aceita configurações específicas conforme mostrado no próximo exemplo:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
As diferentes opções serão explicadas nas seções seguintes.
Cubebeat
pode carregar arquivos de configuração externos para entradas, permitindo separar sua configuração em vários arquivos de configuração menores.
Em sistemas com permissões de arquivo
POSIX
, todos os arquivos de configuração estão sujeitos a verificações de propriedade e permissão de arquivo.
Para obter mais informações, consulte Propriedade e permissões do arquivo de configuração na Referência da plataforma Beats .
Você especifica a opção path
na seção cubebeat.config.inputs
do cubebeat.yml
. Por exemplo:
cubebeat :
config.inputs :
path : config.d/*.yml
Cada arquivo encontrado pelo path
Glob deve conter uma lista de uma ou mais definições de entrada.
A primeira linha de cada arquivo de configuração externo deve ser uma definição de entrada que começa com
- name
.
Por exemplo:
- 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 "
É fundamental que duas entradas em execução NÃO tenham o mesmo
name
. Se mais de uma entrada tiver o mesmoname
, apenas a primeira será aceita; enquanto os outros são descartados.
Quando a opção enabled
é true
, a entrada do cubo específico interage periodicamente com o Cubo Polycube específico a cada intervalo de tempo definido no period
fazendo uma solicitação HTTP para a URL definida em polycube.api-url
.
Caso o cubo não esteja acessível ou haja algum erro ao recuperar os dados,
cubebeat
continuará funcionando, tentando uma nova conexão após um período de tempo definido emperiod
.
A cada period
de tempo, a entrada específica do cubo envia um novo evento Elastic
para a saída conforme definido no arquivo de configuração cubebeat.yml
Você pode configurar cubebeat
para recarregar dinamicamente arquivos de configuração externos quando houver alterações. Este recurso está disponível para configurações de entrada carregadas como arquivos de configuração externos. Você não pode usar esse recurso para recarregar o arquivo de configuração cubebeat.yml
principal.
Para configurar esse recurso, você especifica um path
(Glob) para observar alterações na configuração. Quando os arquivos encontrados pelo Glob mudam, novas entradas são iniciadas e interrompidas de acordo com as alterações nos arquivos de configuração.
Esse recurso é especialmente útil em ambientes de contêiner onde um contêiner é usado para rastrear logs de serviços em execução em outros contêineres no mesmo host.
Para ativar o recarregamento dinâmico da configuração, especifique o path
e as opções de reload
na seção cubebeat.config.inputs
. Por exemplo:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
Opção | Descrição |
---|---|
path | Um Glob que define os arquivos para verificar alterações. |
reload.enabled | Quando definido como verdadeiro, permite o recarregamento dinâmico da configuração. |
reload.period | Especifica com que frequência os arquivos são verificados quanto a alterações. Não defina o period para menos de 1s porque o tempo de modificação dos arquivos geralmente é armazenado em segundos.Definir o period para menos de 1s resultará em sobrecarga desnecessária . |
Em sistemas com permissões de arquivo
POSIX
, todos os arquivos de configuração estão sujeitos a verificações de propriedade e permissão de arquivo.
Para obter mais informações, consulte Propriedade e permissões do arquivo de configuração na Referência da plataforma Beats .