Udplogbeat é um aplicativo Beats personalizado destinado a permitir que os desenvolvedores registrem eventos a serem indexados no Elasticsearch. As entradas de log são enviadas para um soquete UDP local e depois enviadas através da saída selecionada. O objetivo desta ferramenta é permitir que qualquer aplicativo registre mensagens localmente facilmente, sem gravar no disco e aproveitando as várias saídas e recursos integrados da estrutura beats.
Certifique-se de que esta pasta esteja no seguinte local: ${GOPATH}/github.com/hartfordfive
Essa batida agora está sendo substituída pelo protologbeat. Embora esta batida deva funcionar bem, é aconselhável que você use seu sucessor, pois ele tem algumas melhorias, bem como a capacidade de escolher entre tcp ou udp. Não serão mais feitas alterações neste projeto.
udplogbeat.port
: A porta UDP na qual o processo irá escutar (Padrão = 5000)udplogbeat.max_message_size
: o tamanho máximo da mensagem aceita (padrão = 1024)udplogbeat.enable_syslog_format_only
: Valor booleano que indica se apenas mensagens syslog devem ser aceitas. (Padrão = falso)udplogbeat.enable_json_validation
: valor booleano que indica se a validação do esquema JSON deve ser aplicada para mensagens no formato json
(padrão = falso)udplogbeat.publish_failed_json_invalid
: valor booleano que indica se os objetos JSON devem ser enviados serializados no caso de falha na validação. Isso adicionará a tag _udplogbeat_jspf
. (Padrão = falso)udplogbeat.json_document_type_schema
: um hash que consiste no tipo Elasticsearch como chave e no caminho absoluto do arquivo do esquema local como valor.Configuração de amostra para uma substituição de syslog
udplogbeat:
port: 5000
max_message_size: 4096
enable_syslog_format_only: false
Exemplo de configuração que impõe esquemas para eventos no formato JSON
udplogbeat:
port: 5001
max_message_size: 2048
enable_json_validation: true
json_document_type_schema:
email_contact: "/etc/udplogbeat/app1_schema.json"
stock_item: "/etc/udplogbeat/app2_schema.json"
Esquemas JSON podem ser gerados automaticamente a partir de um objeto aqui: http://jsonschema.net/. Você também pode visualizar os esquemas de amostra incluídos app1_schema.json
e app2_schema.json
como exemplos.
Se você pretende usar isso como um substituto imediato para o registro em log com Rsyslog, esse método não persistirá seus dados em um arquivo no disco.
Se o udplogbeat estiver inativo por qualquer motivo, as mensagens enviadas para a porta UDP configurada nunca serão processadas ou enviadas para o cluster ELK. Se você precisa de 100% de garantia de que cada mensagem será entregue pelo menos uma vez, esta pode não ser a melhor solução para você.
Se alguma perda potencial de eventos de log for aceitável para você, esta pode ser uma solução razoável para você.
Para que o aplicativo udplogbeat aceite eventos, quando não estiver no modo somente formato syslog ( enable_syslog_format_only: false ), eles devem ser estruturados no seguinte formato:
[FORMAT]:[ES_TYPE]:[EVENT_DATA]
json
ou plain
. As entradas codificadas em JSON serão analisadas automaticamente.Exemplo:
Evento codificado simples:
plain:syslog:Nov 26 18:51:42 my-web-host01 dhclient: DHCPACK of 10.2.1.2 from 10.2.1.3
Evento codificado JSON:
json:my_application:{"message":"This is a test JSON message", "application":"my_application", "log_level":"INFO"}
Observe que a data/hora atual é adicionada automaticamente a cada entrada de registro.
Consulte o diretório sample_clients/
para obter exemplos de clientes em vários idiomas.
Para começar a usar o Udplogbeat e também instalar as dependências, execute o seguinte comando:
make setup
Ele criará um histórico git limpo para cada etapa principal. Observe que você sempre pode reescrever o histórico, se desejar, antes de enviar suas alterações.
Para enviar Udplogbeat no repositório git, execute os seguintes comandos:
git remote set-url origin https://github.com/hartfordfive/udplogbeat
git push origin master
Para maior desenvolvimento, confira o guia do desenvolvedor do beat.
Para construir o binário para Udplogbeat execute o comando abaixo. Isto irá gerar um binário no mesmo diretório com o nome udplogbeat.
make
Ou para construir os binários compactados para OSX, Windows e Linux:
./build_os_binaries.sh "[VERSION_NUMBER]"
Eles serão colocados no diretório bin/
.
Para executar o Udplogbeat com a saída de depuração habilitada, execute:
./udplogbeat -c udplogbeat.yml -e -d "*"
Para testar o Udplogbeat, execute o seguinte comando:
make testsuite
alternativamente:
make unit-tests
make system-tests
make integration-tests
make coverage-report
A cobertura do teste é relatada na pasta ./build/coverage/
Cada batida possui um template para mapeamento no elasticsearch e uma documentação para os campos que é gerada automaticamente com base em etc/fields.yml
. Para gerar etc/udplogbeat.template.json e etc/udplogbeat.asciidoc
make update
Para limpar o código-fonte do Udplogbeat, execute os seguintes comandos:
make fmt
make simplify
Para limpar o diretório de construção e os artefatos gerados, execute:
make clean
Para clonar Udplogbeat do repositório git, execute os seguintes comandos:
mkdir -p ${GOPATH}/github.com/hartfordfive
cd ${GOPATH}/github.com/hartfordfive
git clone https://github.com/hartfordfive/udplogbeat
Para maior desenvolvimento, confira o guia do desenvolvedor do beat.
As estruturas de batida fornecem ferramentas para compilar e empacotar sua batida para diferentes plataformas. Isso requer docker e vendor conforme descrito acima. Para construir pacotes da sua batida, execute o seguinte comando:
make package
Isso irá buscar e criar todas as imagens necessárias para o processo de construção. O processo de acabamento do furo pode levar vários minutos.
Alain Lefebvre <hartfordfive 'em' gmail.com>
Coberto pela licença Apache, versão 2.0 Copyright (c) 2016 Alain Lefebvre