Logstash es parte del Elastic Stack junto con Beats, Elasticsearch y Kibana. Logstash es una canalización de procesamiento de datos del lado del servidor que ingiere datos de una multitud de fuentes simultáneamente, los transforma y luego los envía a su "alijo" favorito. (El nuestro es Elasticsearch, naturalmente). Logstash tiene más de 200 complementos y también puedes escribir los tuyos propios muy fácilmente.
Para obtener más información, consulte https://www.elastic.co/products/logstash
Puede encontrar la documentación y las guías de introducción a Logstash en el sitio elastic.co.
Para obtener información sobre cómo crear la documentación, consulte el archivo README en https://github.com/elastic/docs.
Puede descargar los binarios de Logstash lanzados oficialmente, así como los paquetes debian/rpm para las plataformas compatibles, desde la página de descargas.
Los complementos de Logstash están alojados en repositorios separados bajo la organización github de logstash-plugins. Cada complemento es una gema Ruby independiente que se publica en RubyGems.org.
Logstash es conocido por su extensibilidad. ¡Hay cientos de complementos para Logstash y puedes escribir los tuyos propios muy fácilmente! Para obtener más información sobre el desarrollo y prueba de estos complementos, consulte la sección Cómo trabajar con complementos.
Abra nuevas ediciones y extraiga solicitudes de complementos en su propio repositorio.
Por ejemplo, si tiene que informar un problema o una mejora en el resultado de Elasticsearch, hágalo aquí.
El núcleo de Logstash seguirá existiendo en este repositorio y todos los problemas y solicitudes de extracción relacionados se pueden enviar aquí.
JAVA_HOME
en la ruta a su directorio de instalación de JDK. Por ejemplo, set JAVA_HOME=<JDK_PATH>
rake
y bundler
usando gem install rake
y gem install bundler
respectivamente.Si prefiere utilizar rvm (administrador de versiones de Ruby) para administrar las versiones de Ruby en su máquina, siga estas instrucciones. En la carpeta Logstash:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
c url -sSL https://get.rvm.io | bash -s stable --ruby= $( cat .ruby-version )
Antes de continuar, verifique su versión de Ruby de la siguiente manera:
$ ruby -v
La versión impresa debe ser la misma que la del archivo .ruby-version
.
El proyecto Logstash incluye el código fuente de todo Logstash, incluidas las características y funciones de Elastic-Licensed X-Pack; Para ejecutar Logstash desde el código fuente usando solo el código con licencia OSS, exporte la variable de entorno OSS
con un valor true
:
export OSS=true
export LOGSTASH_SOURCE=1
export LOGSTASH_PATH=/YOUR/LOGSTASH/DIRECTORY
gradle
(recomendado) 1./gradlew installDevelopmentGems
./gradlew installDefaultGems
Para verificar su entorno, ejecute lo siguiente para iniciar Logstash y enviar su primer evento:
bin/logstash -e ' input { stdin { } } output { stdout {} } '
Esto debería iniciar Logstash con la entrada estándar esperando que ingreses a un evento.
hello world
2016-11-11T01:22:14.405+0000 0.0.0.0 hello world
Avanzado: Lanzador de goteo
Drip es una herramienta que resuelve el problema de inicio lento de JVM durante el desarrollo de Logstash. El script de goteo está destinado a ser un reemplazo directo del comando java. Recomendamos utilizar goteo durante el desarrollo, en particular para ejecutar pruebas. Al utilizar goteo, la primera invocación de un comando no será más rápida, pero los comandos posteriores sí lo serán.
Para indicarle a logstash que use goteo, configure la variable de entorno JAVACMD=`which drip`
.
Ejemplo (pero consulte la sección Pruebas a continuación antes de ejecutar rspec por primera vez):
JAVACMD=`which drip` bin/rspec
Advertencias
El goteo no funciona con STDIN. No puede usar goteo para ejecutar configuraciones que usan el complemento stdin.
Para crear la referencia de Logstash (solo contenido de código abierto) en su máquina local, clone los siguientes repositorios:
logstash: contiene documentos principales sobre las funciones principales
logstash-docs: contiene documentos de complementos generados
docs: contiene archivos de compilación de documentos
Asegúrese de tener la misma rama registrada en logstash
y logstash-docs
. Consulte master
en el repositorio docs
.
Ejecute el script de compilación de documentos desde el repositorio docs
. Por ejemplo:
./build_docs.pl --doc ../logstash/docs/index.asciidoc --chunk=1 -open
La mayoría de las pruebas unitarias en Logstash se escriben utilizando rspec para las partes de Ruby. Para las partes de Java, usamos junit. Para realizar pruebas, puede utilizar las tareas de prueba rake
y el comando bin/rspec
; consulte las instrucciones a continuación:
1- Para ejecutar las pruebas principales puedes usar la tarea Gradle:
./gradlew test
o utilice la herramienta rspec
para ejecutar todas las pruebas o ejecutar una prueba específica:
bin/rspec
bin/rspec spec/foo/bar_spec.rb
Tenga en cuenta que antes de ejecutar el comando rspec
por primera vez, debe configurar las dependencias de prueba de RSpec ejecutando:
./gradlew bootstrap
2- Para ejecutar el subconjunto de pruebas que cubren el código base de Java, ejecute únicamente:
./gradlew javaTests
3- Para ejecutar el conjunto de pruebas completo, incluidas las pruebas de integración, ejecute:
./gradlew check
4- Para ejecutar una única prueba de Ruby:
SPEC_OPTS="-fd -P logstash-core/spec/logstash/api/commands/default_metadata_spec.rb" ./gradlew :logstash-core:rubyTests --tests org.logstash.RSpecTests
5- Para ejecutar una especificación única para la prueba de integración, ejecute:
./gradlew integrationTests -PrubyIntegrationSpecs=specs/slowlog_spec.rb
A veces, es posible que un cambio en una parte del código de Logstash provoque que una prueba se cuelgue. Estos pueden ser difíciles de depurar.
Si configura LS_JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
puede conectarse a un Logstash en ejecución con su depurador de IDE, lo que puede ser una excelente manera de encontrar el problema.
Para ejecutar las pruebas de todos los complementos instalados actualmente:
rake test:plugins
Puede instalar el conjunto predeterminado de complementos incluidos en el paquete logstash:
rake test:install-default
Tenga en cuenta que si se instala un complemento usando el administrador de complementos bin/logstash-plugin install ...
no olvide instalar también las dependencias de desarrollo de los complementos usando el siguiente comando después de la instalación del complemento:
bin/logstash-plugin install --development
Los artefactos creados se colocarán en el directorio LS_HOME/build
y crearán el directorio si aún no está presente.
Puede crear un paquete de instantáneas de Logstash como archivo tarball o zip
./gradlew assembleTarDistribution
./gradlew assembleZipDistribution
Los artefactos solo OSS se pueden construir de manera similar con sus propias tareas de Gradle:
./gradlew assembleOssTarDistribution
./gradlew assembleOssZipDistribution
También puede compilar .rpm y .deb, pero se requiere la herramienta fpm.
rake artifact:rpm
rake artifact:deb
y:
rake artifact:rpm_oss
rake artifact:deb_oss
Si desea que la compilación utilice un JRuby personalizado, puede hacerlo estableciendo una ruta a la raíz de origen de una distribución JRuby personalizada a través de la propiedad custom.jruby.path
Gradle.
P.ej
./gradlew clean test -Pcustom.jruby.path= " /path/to/jruby "
Todas las contribuciones son bienvenidas: ideas, parches, documentación, informes de errores, quejas e incluso algo que hayas dibujado en una servilleta.
La programación no es una habilidad requerida. Cualquier cosa que hayas visto sobre el código abierto y los mantenedores o miembros de la comunidad que dicen "envía parches o muere", no lo verás aquí.
Es más importante que puedas contribuir.
Para obtener más información sobre cómo contribuir, consulte el archivo CONTRIBUCIÓN.
gradle
también puedes usar bundle
:Instalar dependencias de desarrollo
bundle config set --local path vendor/bundle bundle install
Arranque el entorno:
rake bootstrap
Luego puede usar bin/logstash
para iniciar Logstash, pero no hay complementos instalados. Para instalar complementos predeterminados, puede ejecutar:
rake plugin:install-default
Esto instalará más de 80 complementos predeterminados, lo que hace que Logstash esté listo para conectarse a múltiples fuentes de datos, realizar transformaciones y enviar los resultados a Elasticsearch y otros destinos.