Udplogbeat es una aplicación de ritmos personalizada destinada a permitir a los desarrolladores registrar eventos para indexarlos en Elasticsearch. Las entradas del registro se envían a un socket UDP local y luego se envían a través de la salida seleccionada. El propósito de esta herramienta es permitir que cualquier aplicación registre mensajes fácilmente localmente sin escribir en el disco y aprovechando las diversas salidas y funciones integradas de Beats Framework.
Asegúrese de que esta carpeta esté en la siguiente ubicación: ${GOPATH}/github.com/hartfordfive
Este ritmo ahora está siendo reemplazado por protologbeat. Aunque este beat debería funcionar bien, se recomienda utilizar su sucesor ya que tiene algunas mejoras, así como la capacidad de elegir entre tcp o udp. Ya no se realizarán cambios en este proyecto.
udplogbeat.port
: el puerto UDP en el que escuchará el proceso (predeterminado = 5000)udplogbeat.max_message_size
: el tamaño máximo de mensaje aceptado (predeterminado = 1024)udplogbeat.enable_syslog_format_only
: valor booleano que indica si solo se deben aceptar mensajes syslog. (Predeterminado = falso)udplogbeat.enable_json_validation
: valor booleano que indica si se debe aplicar la validación del esquema JSON para mensajes en formato json
(predeterminado = falso)udplogbeat.publish_failed_json_invalid
: Valor booleano que indica si los objetos JSON deben enviarse serializados en caso de una validación fallida. Esto agregará la etiqueta _udplogbeat_jspf
. (Predeterminado = falso)udplogbeat.json_document_type_schema
: un hash que consta del tipo Elasticsearch como clave y la ruta absoluta del archivo de esquema local como valor.Configuración de muestra para un reemplazo de syslog
udplogbeat:
port: 5000
max_message_size: 4096
enable_syslog_format_only: false
Configuración de ejemplo que aplica esquemas para eventos en 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"
Los esquemas JSON se pueden generar automáticamente a partir de un objeto aquí: http://jsonschema.net/. También puede ver los esquemas de muestra incluidos app1_schema.json
y app2_schema.json
como ejemplos.
Si tiene la intención de utilizar esto como un reemplazo directo para iniciar sesión con Rsyslog, este método no mantendrá sus datos en un archivo en el disco.
Si udplogbeat no funciona por algún motivo determinado, los mensajes enviados al puerto UDP configurado nunca se procesarán ni enviarán a su clúster ELK. Si necesita una garantía del 100% de que cada mensaje se entregará al menos una vez, es posible que esta no sea la mejor solución para usted.
Si alguna posible pérdida de eventos de registro es aceptable para usted, esta puede ser una solución razonable para usted.
Para que la aplicación udplogbeat acepte eventos, cuando no esté en modo solo formato syslog ( enable_syslog_format_only: false ), deben estructurarse en el siguiente formato:
[FORMATO]:[ES_TYPE]:[EVENT_DATA]
json
o plain
. Las entradas codificadas en JSON se analizarán automáticamente.Ejemplo:
Evento codificado sin formato:
plain:syslog:Nov 26 18:51:42 my-web-host01 dhclient: DHCPACK of 10.2.1.2 from 10.2.1.3
Evento codificado en JSON:
json:my_application:{"message":"This is a test JSON message", "application":"my_application", "log_level":"INFO"}
Tenga en cuenta que la fecha/hora actual se agrega automáticamente a cada entrada del registro.
Consulte el directorio sample_clients/
para ver ejemplos de clientes en varios idiomas.
Para comenzar a ejecutar Udplogbeat y también instalar las dependencias, ejecute el siguiente comando:
make setup
Creará un historial de git limpio para cada paso importante. Tenga en cuenta que siempre puede reescribir el historial si lo desea antes de realizar los cambios.
Para insertar Udplogbeat en el repositorio de git, ejecute los siguientes comandos:
git remote set-url origin https://github.com/hartfordfive/udplogbeat
git push origin master
Para un mayor desarrollo, consulte la guía para desarrolladores de Beat.
Para compilar el binario para Udplogbeat, ejecute el siguiente comando. Esto generará un binario en el mismo directorio con el nombre udplogbeat.
make
O para compilar los binarios comprimidos para OSX, Windows y Linux:
./build_os_binaries.sh "[VERSION_NUMBER]"
Estos se colocarán en el directorio bin/
.
Para ejecutar Udplogbeat con la salida de depuración habilitada, ejecute:
./udplogbeat -c udplogbeat.yml -e -d "*"
Para probar Udplogbeat, ejecute el siguiente comando:
make testsuite
alternativamente:
make unit-tests
make system-tests
make integration-tests
make coverage-report
La cobertura de la prueba se informa en la carpeta ./build/coverage/
Cada ritmo tiene una plantilla para el mapeo en elasticsearch y una documentación para los campos que se genera automáticamente en función de etc/fields.yml
. Para generar etc/udplogbeat.template.json y etc/udplogbeat.asciidoc
make update
Para limpiar el código fuente de Udplogbeat, ejecute los siguientes comandos:
make fmt
make simplify
Para limpiar el directorio de compilación y los artefactos generados, ejecute:
make clean
Para clonar Udplogbeat desde el repositorio de git, ejecute los siguientes comandos:
mkdir -p ${GOPATH}/github.com/hartfordfive
cd ${GOPATH}/github.com/hartfordfive
git clone https://github.com/hartfordfive/udplogbeat
Para un mayor desarrollo, consulte la guía para desarrolladores de Beat.
Beat Frameworks proporciona herramientas para compilar y empaquetar tu ritmo para diferentes plataformas. Esto requiere Docker y Vendor como se describe anteriormente. Para crear paquetes de tu ritmo, ejecuta el siguiente comando:
make package
Esto buscará y creará todas las imágenes necesarias para el proceso de construcción. El proceso del agujero para finalizar puede tardar varios minutos.
Alain Lefebvre <hartfordfive 'en' gmail.com>
Cubierto bajo la licencia Apache, Versión 2.0 Copyright (c) 2016 Alain Lefebvre