Udplogbeat هو تطبيق مخصص يهدف إلى السماح للمطورين بتسجيل الأحداث ليتم فهرستها في Elasticsearch. يتم إرسال إدخالات السجل إلى مقبس UDP محلي ثم يتم شحنها عبر الإخراج المحدد. الغرض المقصود من هذه الأداة هو السماح لأي تطبيق بتسجيل الرسائل محليًا بسهولة دون الكتابة على القرص والاستفادة من المخرجات والميزات المتنوعة المضمنة في إطار عمل Beats.
تأكد من وجود هذا المجلد في الموقع التالي: ${GOPATH}/github.com/hartfordfive
يتم الآن استبدال هذه الإيقاع بإيقاع أولي. على الرغم من أن هذا الإيقاع يجب أن يعمل بشكل جيد، إلا أنه يُنصح باستخدام اللاحق الخاص به بدلاً من ذلك لأنه يحتوي على بعض التحسينات، بالإضافة إلى القدرة على الاختيار بين tcp أو udp. لن يتم إجراء تغييرات على هذا المشروع بعد الآن.
udplogbeat.port
: منفذ UDP الذي ستستمع إليه العملية (الافتراضي = 5000)udplogbeat.max_message_size
: الحد الأقصى لحجم الرسالة المقبولة (الافتراضي = 1024)udplogbeat.enable_syslog_format_only
: قيمة منطقية تشير إلى ما إذا كان يجب قبول رسائل سجل النظام فقط. (الافتراضي = خطأ)udplogbeat.enable_json_validation
: قيمة منطقية تشير إلى ما إذا كان يجب تطبيق التحقق من صحة مخطط JSON على رسائل تنسيق json
(افتراضي = false)udplogbeat.publish_failed_json_invalid
: قيمة منطقية تشير إلى ما إذا كان يجب إرسال كائنات JSON بشكل تسلسلي في حالة فشل التحقق من الصحة. سيؤدي هذا إلى إضافة علامة _udplogbeat_jspf
. (الافتراضي = خطأ)udplogbeat.json_document_type_schema
: تجزئة تتكون من نوع Elasticsearch كمفتاح، ومسار ملف المخطط المحلي المطلق كقيمة.نموذج التكوين لاستبدال سجل النظام
udplogbeat:
port: 5000
max_message_size: 4096
enable_syslog_format_only: false
نموذج التكوين الذي يفرض المخططات لأحداث تنسيق 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"
يمكن إنشاء مخططات JSON تلقائيًا من كائن هنا: http://jsonschema.net/. يمكنك أيضًا عرض نماذج المخططات المضمنة app1_schema.json
و app2_schema.json
كأمثلة.
إذا كنت تنوي استخدام هذا كبديل للتسجيل باستخدام Rsyslog، فلن تحتفظ هذه الطريقة ببياناتك في ملف على القرص.
إذا كان udplogbeat معطلاً لأي سبب من الأسباب، فلن تتم معالجة الرسائل المرسلة إلى منفذ UDP الذي تم تكوينه أو إرسالها إلى مجموعة ELK الخاصة بك. إذا كنت تريد ضمانًا بنسبة 100% بأنه سيتم تسليم كل رسالة مرة واحدة على الأقل، فقد لا يكون هذا هو الحل الأفضل بالنسبة لك.
إذا كان بعض الفقدان المحتمل لأحداث السجل مقبولاً بالنسبة لك، فقد يكون هذا حلاً معقولاً بالنسبة لك.
لكي يقبل تطبيق udplogbeat الأحداث، عندما لا تكون في وضع تنسيق سجل النظام فقط ( enable_syslog_format_only: false )، يجب تنظيمها بالتنسيق التالي:
[التنسيق]:[ES_TYPE]:[EVENT_DATA]
json
أو plain
. سيتم تحليل الإدخالات المشفرة بـ JSON تلقائيًا.مثال:
حدث مشفر عادي:
plain:syslog:Nov 26 18:51:42 my-web-host01 dhclient: DHCPACK of 10.2.1.2 from 10.2.1.3
الحدث المشفر بـ JSON:
json:my_application:{"message":"This is a test JSON message", "application":"my_application", "log_level":"INFO"}
يرجى ملاحظة أنه تتم إضافة التاريخ/الوقت الحالي تلقائيًا إلى كل إدخال سجل.
يرجى مراجعة دليل sample_clients/
للحصول على أمثلة للعملاء بلغات مختلفة.
لتشغيل Udplogbeat وتثبيت التبعيات أيضًا، قم بتشغيل الأمر التالي:
make setup
سيتم إنشاء سجل git نظيف لكل خطوة رئيسية. لاحظ أنه يمكنك دائمًا إعادة كتابة السجل إذا كنت ترغب في ذلك قبل دفع التغييرات.
لدفع Udplogbeat في مستودع git، قم بتشغيل الأوامر التالية:
git remote set-url origin https://github.com/hartfordfive/udplogbeat
git push origin master
لمزيد من التطوير، راجع دليل مطور Beat.
لإنشاء الملف الثنائي لـ Udplogbeat، قم بتشغيل الأمر أدناه. سيؤدي هذا إلى إنشاء ملف ثنائي في نفس الدليل بالاسم udplogbeat.
make
أو لإنشاء الثنائيات المضغوطة لأنظمة التشغيل OSX وWindows وLinux:
./build_os_binaries.sh "[VERSION_NUMBER]"
سيتم وضعها في الدليل bin/
.
لتشغيل Udplogbeat مع تمكين إخراج التصحيح، قم بتشغيل:
./udplogbeat -c udplogbeat.yml -e -d "*"
لاختبار Udplogbeat، قم بتشغيل الأمر التالي:
make testsuite
بدلاً عن ذلك:
make unit-tests
make system-tests
make integration-tests
make coverage-report
يتم الإبلاغ عن تغطية الاختبار في المجلد ./build/coverage/
تحتوي كل نبضة على قالب للتعيين في Elasticsearch ووثائق للحقول التي يتم إنشاؤها تلقائيًا بناءً على etc/fields.yml
. لإنشاء etc/udplogbeat.template.json وetc/udplogbeat.asciidoc
make update
لتنظيف كود مصدر Udplogbeat، قم بتشغيل الأوامر التالية:
make fmt
make simplify
لتنظيف دليل البناء والعناصر التي تم إنشاؤها، قم بتشغيل:
make clean
لاستنساخ Udplogbeat من مستودع git، قم بتشغيل الأوامر التالية:
mkdir -p ${GOPATH}/github.com/hartfordfive
cd ${GOPATH}/github.com/hartfordfive
git clone https://github.com/hartfordfive/udplogbeat
لمزيد من التطوير، راجع دليل مطور Beat.
توفر أطر الإيقاع أدوات لتجميع إيقاعاتك وتجميعها لمنصات مختلفة. وهذا يتطلب عامل إرساء والبائعين كما هو موضح أعلاه. لإنشاء حزم من إيقاعك، قم بتشغيل الأمر التالي:
make package
سيؤدي هذا إلى جلب وإنشاء جميع الصور المطلوبة لعملية الإنشاء. يمكن أن تستغرق عملية الثقب حتى النهاية عدة دقائق.
آلان لوفيفر <hartfordfive 'at' gmail.com>
مشمول بترخيص Apache، الإصدار 2.0 حقوق الطبع والنشر (c) 2016 لـ Alain Lefebvre