فوز مخصص للمكدس المرن للتفاعل مع مكعبات eBPF المستندة إلى Polycube.
تأكد من وجود هذا المجلد في الموقع التالي: ${GOPATH}/src/gitlab.com/astrid-repositories/cubebeat
mkdir -p ${GOPATH}/src/gitlab.com/astrid-repositories/
cd ${GOPATH}/src/gitlab.com/astrid-repositories
git clone https://gitlab.com/astrid-repositories/cubebeat.git
لإنشاء الملف الثنائي لـ Cubebeat
قم بتشغيل الأمر أدناه. سيؤدي هذا إلى إنشاء ملف ثنائي في نفس الدليل بالاسم cubebeat.
chmod +x build.sh
build.sh
لتشغيل Cubebeat
مع تمكين إخراج التصحيح، قم بتشغيل:
./cubebeat -c cubebeat.yml -e -d "*"
لتشغيل Cubebeat
دون تمكين إخراج تصحيح الأخطاء، قم بتشغيل:
./cubebeat -c cubebeat.yml -e
يقرأ Cubebeat
ملف التكوين (الافتراضي: cubebeat.yml
) الذي تم تمريره كوسيطة.
يقبل هذا الملف تكوينات الإيقاع الشائعة كما هو موضح في تنسيق ملف التكوين.
بالإضافة إلى ذلك، فإنه يقبل تكوينات محددة كما هو موضح في المثال التالي:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
سيتم شرح الخيارات المختلفة في الأقسام التالية.
يمكن Cubebeat
تحميل ملفات التكوين الخارجية للمدخلات، مما يسمح لك بفصل التكوين الخاص بك إلى عدة ملفات تكوين أصغر.
في الأنظمة التي تتمتع بأذونات ملفات
POSIX
، تخضع جميع ملفات التكوين للتحقق من الملكية وأذونات الملف.
لمزيد من المعلومات، راجع ملكية ملف التكوين والأذونات في مرجع Beats Platform .
يمكنك تحديد خيار path
في قسم cubebeat.config.inputs
في cubebeat.yml
. على سبيل المثال:
cubebeat :
config.inputs :
path : config.d/*.yml
يجب أن يحتوي كل ملف يتم العثور عليه بواسطة path
Glob على قائمة تحتوي على تعريف إدخال واحد أو أكثر.
يجب أن يكون السطر الأول من كل ملف تكوين خارجي عبارة عن تعريف إدخال يبدأ بـ
- name
.
على سبيل المثال:
- name : synflood
enabled : true
period : 10s
polycube.api-url : " http://localhost:9000/polycube/v1/synflood/sf/stats/ "
- name : packetcapture
enabled : true
period : 5s
polycube.api-url : " http://localhost:9000/polycube/v1/packetcapture/pc "
من المهم جدًا ألا يكون لمدخلين قيد التشغيل نفس
name
. إذا قام أكثر من إدخال بنفسname
، فسيتم قبول الاسم الأول فقط؛ بينما يتم التخلص من الآخرين.
عندما يكون الخيار enabled
true
، يتفاعل إدخال المكعب المحدد بشكل دوري مع Polycube Cube المحدد في كل فاصل زمني محدد في period
مما يؤدي إلى طلب HTTP إلى عنوان URL المحدد في polycube.api-url
.
إذا لم يكن من الممكن الوصول إلى المكعب أو كان هناك خطأ ما عند استرداد البيانات، فسيستمر
cubebeat
في العمل، ويحاول إجراء اتصال جديد بعد فترة زمنية محددة فيperiod
.
في كل period
زمنية، يرسل إدخال المكعب المحدد حدثًا Elastic
جديدًا إلى الإخراج كما هو محدد في ملف التكوين cubebeat.yml
يمكنك تكوين cubebeat
لإعادة تحميل ملفات التكوين الخارجية ديناميكيًا عند حدوث تغييرات. تتوفر هذه الميزة لتكوينات الإدخال التي يتم تحميلها كملفات تكوين خارجية. لا يمكنك استخدام هذه الميزة لإعادة تحميل ملف التكوين cubebeat.yml
الرئيسي.
لتكوين هذه الميزة، يمكنك تحديد path
(Glob) لمراقبة تغييرات التكوين. عندما تتغير الملفات التي عثر عليها بواسطة Glob، يتم بدء تشغيل المدخلات الجديدة وإيقافها وفقًا للتغييرات في ملفات التكوين.
تعد هذه الميزة مفيدة بشكل خاص في بيئات الحاويات حيث يتم استخدام حاوية واحدة لسجلات الخدمات التي يتم تشغيلها في حاويات أخرى على نفس المضيف.
لتمكين إعادة تحميل التكوين الديناميكي، يمكنك تحديد path
وخيارات reload
ضمن قسم cubebeat.config.inputs
. على سبيل المثال:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
خيار | وصف |
---|---|
path | Glob الذي يحدد الملفات للتحقق من التغييرات. |
reload.enabled | عند التعيين على "صحيح"، يتم تمكين إعادة تحميل التكوين الديناميكي. |
reload.period | يحدد عدد مرات فحص الملفات بحثًا عن التغييرات. لا تقم بتعيين period إلى أقل من 1s لأن وقت تعديل الملفات غالبًا ما يتم تخزينه بالثواني.سيؤدي تعيين period إلى أقل من 1s إلى تحميل غير ضروري . |
في الأنظمة التي تتمتع بأذونات ملفات
POSIX
، تخضع جميع ملفات التكوين للتحقق من الملكية وأذونات الملف.
لمزيد من المعلومات، راجع ملكية ملف التكوين والأذونات في مرجع Beats Platform .