يعد Logstash جزءًا من Elastic Stack إلى جانب Beats وElasticsearch وKibana. Logstash عبارة عن خط أنابيب لمعالجة البيانات من جانب الخادم، حيث يستوعب البيانات من العديد من المصادر في وقت واحد، ويحولها، ثم يرسلها إلى "المخبأ" المفضل لديك. (منتجنا هو Elasticsearch، بطبيعة الحال.). يحتوي Logstash على أكثر من 200 مكون إضافي، ويمكنك كتابة المكونات الخاصة بك بسهولة أيضًا.
لمزيد من المعلومات، راجع https://www.elastic.co/products/logstash
يمكنك العثور على الوثائق وأدلة البدء الخاصة بـ Logstash على موقع elastic.co
للحصول على معلومات حول إنشاء الوثائق، راجع التمهيد في https://github.com/elastic/docs
يمكنك تنزيل ثنائيات Logstash التي تم إصدارها رسميًا، بالإضافة إلى حزم debian/rpm للأنظمة الأساسية المدعومة، من صفحة التنزيلات.
تتم استضافة مكونات Logstash الإضافية في مستودعات منفصلة ضمن مؤسسة github logstash-plugins. كل مكون إضافي عبارة عن جوهرة روبي قائمة بذاتها ويتم نشرها على RubyGems.org.
يُعرف Logstash بقابليته للتوسعة. هناك المئات من المكونات الإضافية لـ Logstash ويمكنك كتابة المكونات الإضافية الخاصة بك بسهولة شديدة! لمزيد من المعلومات حول تطوير واختبار هذه المكونات الإضافية، يرجى مراجعة قسم العمل مع المكونات الإضافية
يرجى فتح إصدارات جديدة وسحب طلبات المكونات الإضافية ضمن مستودعها الخاص
على سبيل المثال، إذا كان عليك الإبلاغ عن مشكلة/تحسين لمخرجات Elasticsearch، فيرجى القيام بذلك هنا.
سيظل Logstash core موجودًا ضمن هذا المستودع ويمكن إرسال جميع المشكلات ذات الصلة وطلبات السحب هنا.
JAVA_HOME
على المسار إلى دليل تثبيت JDK الخاص بك. على سبيل المثال، set JAVA_HOME=<JDK_PATH>
rake
و bundler
باستخدام gem install rake
و gem install bundler
على التوالي.إذا كنت تفضل استخدام rvm (مدير إصدار Ruby) لإدارة إصدارات Ruby على جهازك، فاتبع هذه التوجيهات. في المجلد Logstash:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
c url -sSL https://get.rvm.io | bash -s stable --ruby= $( cat .ruby-version )
قبل المتابعة، يرجى التحقق من إصدار روبي الخاص بك عن طريق:
$ ruby -v
يجب أن تكون النسخة المطبوعة هي نفسها الموجودة في ملف .ruby-version
.
يتضمن مشروع Logstash الكود المصدري لجميع Logstash، بما في ذلك ميزات ووظائف Elastic-Licensed X-Pack؛ لتشغيل Logstash من المصدر باستخدام كود OSS المرخص فقط، قم بتصدير متغير بيئة OSS
بقيمة true
:
export OSS=true
export LOGSTASH_SOURCE=1
export LOGSTASH_PATH=/YOUR/LOGSTASH/DIRECTORY
gradle
(مستحسن) 1./gradlew installDevelopmentGems
./gradlew installDefaultGems
للتحقق من بيئتك، قم بتشغيل ما يلي لبدء Logstash وإرسال الحدث الأول:
bin/logstash -e ' input { stdin { } } output { stdout {} } '
يجب أن يبدأ هذا Logstash بإدخال stdin في انتظار إدخال حدث ما
hello world
2016-11-11T01:22:14.405+0000 0.0.0.0 hello world
متقدم: قاذفة التنقيط
Drip هي أداة تحل مشكلة بدء تشغيل JVM البطيء أثناء تطوير Logstash. الغرض من البرنامج النصي بالتنقيط هو أن يكون بديلاً مباشرًا لأمر Java. نوصي باستخدام التنقيط أثناء التطوير، خاصة لإجراء الاختبارات. باستخدام التنقيط، لن يكون الاستدعاء الأول للأمر أسرع ولكن الأوامر اللاحقة ستكون سريعة.
لإخبار logstash باستخدام التنقيط، قم بتعيين متغير البيئة JAVACMD=`which drip`
.
مثال (ولكن راجع قسم الاختبار أدناه قبل تشغيل rspec للمرة الأولى):
JAVACMD=`which drip` bin/rspec
المحاذير
التنقيط لا يعمل مع STDIN. لا يمكنك استخدام التنقيط لتشغيل التكوينات التي تستخدم البرنامج الإضافي stdin.
لإنشاء مرجع Logstash (محتوى مفتوح المصدر فقط) على جهازك المحلي، انسخ عمليات إعادة الشراء التالية:
logstash - يحتوي على المستندات الرئيسية حول الميزات الأساسية
logstash-docs - يحتوي على مستندات البرنامج المساعد التي تم إنشاؤها
المستندات - تحتوي على ملفات إنشاء المستندات
تأكد من تسجيلك للفرع نفسه في logstash
و logstash-docs
. تحقق من master
في docs
الريبو.
قم بتشغيل البرنامج النصي doc build من داخل docs
repo. على سبيل المثال:
./build_docs.pl --doc ../logstash/docs/index.asciidoc --chunk=1 -open
تتم كتابة معظم اختبارات الوحدات في Logstash باستخدام rspec لأجزاء Ruby. بالنسبة لأجزاء Java، نستخدم junit. للاختبار، يمكنك استخدام مهام test rake
والأمر bin/rspec
، راجع التعليمات أدناه:
1- لتشغيل الاختبارات الأساسية يمكنك استخدام مهمة Gradle:
./gradlew test
أو استخدم أداة rspec
لتشغيل جميع الاختبارات أو تشغيل اختبار محدد:
bin/rspec
bin/rspec spec/foo/bar_spec.rb
لاحظ أنه قبل تشغيل الأمر rspec
للمرة الأولى، تحتاج إلى إعداد تبعيات اختبار RSpec عن طريق تشغيل:
./gradlew bootstrap
2- لتشغيل مجموعة فرعية من الاختبارات التي تغطي قاعدة تعليمات Java البرمجية فقط، قم بتشغيل:
./gradlew javaTests
3- لتنفيذ مجموعة الاختبار الكاملة بما في ذلك تشغيل اختبارات التكامل:
./gradlew check
4- لتنفيذ اختبار روبي واحد:
SPEC_OPTS="-fd -P logstash-core/spec/logstash/api/commands/default_metadata_spec.rb" ./gradlew :logstash-core:rubyTests --tests org.logstash.RSpecTests
5- لتنفيذ مواصفات واحدة لاختبار التكامل، قم بتشغيل:
./gradlew integrationTests -PrubyIntegrationSpecs=specs/slowlog_spec.rb
في بعض الأحيان قد تجد تغييرًا في جزء من كود Logstash يتسبب في تعليق الاختبار. قد يكون من الصعب تصحيح هذه الأخطاء.
إذا قمت بتعيين LS_JAVA_OPTS="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
فيمكنك الاتصال بـ Logstash قيد التشغيل باستخدام مصحح أخطاء IDEs الخاص بك والذي يمكن أن يكون طريقة رائعة للعثور على المشكلة.
لتشغيل اختبارات جميع المكونات الإضافية المثبتة حاليًا:
rake test:plugins
يمكنك تثبيت المجموعة الافتراضية من المكونات الإضافية المضمنة في حزمة logstash:
rake test:install-default
لاحظ أنه إذا تم تثبيت مكون إضافي باستخدام مدير البرنامج الإضافي bin/logstash-plugin install ...
فلا تنس أيضًا تثبيت تبعيات تطوير المكونات الإضافية باستخدام الأمر التالي بعد تثبيت البرنامج المساعد:
bin/logstash-plugin install --development
سيتم وضع العناصر المبنية في دليل LS_HOME/build
، وسيتم إنشاء الدليل إذا لم يكن موجودًا بالفعل.
يمكنك إنشاء حزمة لقطة Logstash كملف tarball أو ملف مضغوط
./gradlew assembleTarDistribution
./gradlew assembleZipDistribution
وبالمثل، يمكن إنشاء القطع الأثرية الخاصة بـ OSS فقط بمهامها الخاصة:
./gradlew assembleOssTarDistribution
./gradlew assembleOssZipDistribution
يمكنك أيضًا إنشاء .rpm و.deb، لكن أداة fpm مطلوبة.
rake artifact:rpm
rake artifact:deb
و:
rake artifact:rpm_oss
rake artifact:deb_oss
إذا كنت تريد أن يستخدم الإصدار JRuby مخصصًا، فيمكنك القيام بذلك عن طريق تعيين مسار إلى جذر مصدر توزيع JRuby مخصص عبر خاصية Gradle custom.jruby.path
.
على سبيل المثال
./gradlew clean test -Pcustom.jruby.path= " /path/to/jruby "
نرحب بجميع المساهمات: الأفكار، والتصحيحات، والوثائق، وتقارير الأخطاء، والشكاوى، وحتى أي شيء قمت برسمه على منديل.
البرمجة ليست مهارة مطلوبة. أيًا كان ما رأيته بشأن المصادر المفتوحة والمشرفين أو أعضاء المجتمع الذين يقولون "أرسل تصحيحات أو مت" - فلن ترى ذلك هنا.
والأهم من ذلك أن تكون قادرًا على المساهمة.
لمزيد من المعلومات حول المساهمة، راجع ملف المساهمة.
gradle
يمكنك أيضًا استخدام bundle
:تثبيت تبعيات التطوير
bundle config set --local path vendor/bundle bundle install
تمهيد البيئة:
rake bootstrap
يمكنك بعد ذلك استخدام bin/logstash
لبدء تشغيل Logstash، ولكن لا توجد مكونات إضافية مثبتة. لتثبيت المكونات الإضافية الافتراضية، يمكنك تشغيل:
rake plugin:install-default
سيؤدي هذا إلى تثبيت أكثر من 80 مكونًا إضافيًا افتراضيًا مما يجعل Logstash جاهزًا للاتصال بمصادر بيانات متعددة وإجراء التحويلات وإرسال النتائج إلى Elasticsearch ووجهات أخرى.