تنصيب وحدة Postanalytics بشكل منفصل¶
تشتمل الطلبات المعالجة في Wallarm على مرحلتين، بما في ذلك مرحلة Postanalytics لتحليل الطلبات الإحصائي. تكون Postanalytics مكثفة بالذاكرة، مما قد يتطلب تنفيذها على خادم مخصص لأداء محسن. يوضح هذا المقال كيفية تثبيت وحدة Postanalytics على خادم منفصل.
الخيار لتثبيت وحدة Postanalytics على خادم منفصل متاح للأدوات التالية:
بشكل افتراضي، تدلك تعليمات Wallarm لتثبيت كلا الوحدتين على نفس الخادم.
نظرة عامة¶
يتألف معالجة الطلبات في وحدة Wallarm من مرحلتين:
-
المعالجة الأولية في وحدة NGINX-Wallarm، والتي لا تتطلب الذاكرة ويمكن تنفيذها على خوادم الواجهة الأمامية دون تغيير متطلبات الخادم.
-
تحليل إحصاءات الطلبات المعالجة في وحدة Postanalytics التي تتطلب الذاكرة.
المخططات أدناه تصور تواصل الوحدة في سيناريوين: عند التثبيت على نفس الخادم وعلى خوادم مختلفة.
طرق التثبيت¶
يمكنك تثبيت وحدة Postanalytics على خادم منفصل بطريقتين مختلفتين:
-
باستخدام المثبت الشامل (متاح ابتداءً من وحدة Wallarm 4.6) - يتم تلقائية العديد من الأنشطة ويجعل تنشيط وحدة Postanalytics أسهل بكثير. وبالتالي فإنها طريقة التثبيت الموصى بها.
-
يدويا - استخدم لأنواع العقد القديمة.
عند تثبيت وحدة التصفية وPostanalytics بشكل منفصل، يمكنك دمج النهج اليدوي والتلقائي: قم بتثبيت الجزء Postanalytics يدويًا ثم الجزء المرشح باستخدام المثبت الشامل، والعكس: الجزء Postanalytics باستخدام المثبت الشامل ثم الجزء المرشح يدويًا.
التثبيت الآلي الشامل¶
اعتبارًا من Wallarm العقدة 4.6، لتثبيت Postanalytics بشكل منفصل، يوصى باستخدام التثبيت الشامل الذي يتم تلقائية الكثير من النشاطات ويجعل تنشيط وحدة Postanalytics أسهل بكثير.
المتطلبات¶
-
Access to the account with the Administrator role in Wallarm Console for the US Cloud or EU Cloud
-
Executing all commands as a superuser (e.g.
root
) -
Access to
https://meganode.wallarm.com
to download all-in-one Wallarm installer. Ensure the access is not blocked by a firewall -
Access to
https://us1.api.wallarm.com
if working with US Wallarm Cloud or tohttps://api.wallarm.com
if working with EU Wallarm Cloud. If access can be configured only via the proxy server, then use the instructions -
Installed text editor vim, nano, or any other. In the commands in this article, vim is used
الخطوة 1: تنزيل المثبت Wallarm الشامل¶
لتنزيل السكريبت المثبت Wallarm الشامل، قم بتنفيذ الأمر:
الخطوة 2: تحضير الرمز المميز لـ Wallarm¶
لتثبيت العقدة، سوف تحتاج إلى رمز Wallarm من النوع المناسب. لتحضير رمز:
- افتح Wallarm Console → الإعدادات → رموز API في السحابة الأمريكية أو السحابة الأوروبية.
- ابحث أو أنشئ رمز API بدور المصدر
Deploy
. - انسخ هذا الرمز.
- افتح Wallarm Console → العقد في السحابة الأمريكية أو السحابة الأوروبية.
- افعل واحدًا من الأتى:
- أنشئ العقدة من نوع Wallarm node وانسخ الرمز المميز المولد.
- استخدم مجموعة العقد الموجودة - انسخ الرمز باستخدام قائمة العقد → نسخ الرمز.
الخطوة 3: تشغيل المثبت Wallarm الشامل لتثبيت Postanalytics¶
لتثبيت Postanalytics بشكل منفصل باستخدام المثبت Wallarm الشامل، استخدم:
# إذا كنت تستخدم الإصدار x86_64:
sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-4.10.2.x86_64-glibc.sh postanalytics
# إذا كنت تستخدم الإصدار ARM64
sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-4.10.2.aarch64-glibc.sh postanalytics
يُحدد المتغير WALLARM_LABELS
المجموعة التي سيتم إضافة العقدة إليها (تُستخدم لتجميع العقد منطقياً في واجهة Wallarm Console UI).
الخطوة 4: تكوين وحدة Postanalytics¶
الموارد والذاكرة¶
لتغيير كمية الذاكرة التي يستخدمها Tarantool، ابحث عن الإعداد SLAB_ALLOC_ARENA
في ملف /opt/wallarm/env.list
. يتم تعيينه لاستخدام 1 جيجا بايت افتراضيًا. إذا كنت بحاجة إلى تغيير هذا، يمكنك ضبط الرقم ليتوافق مع كمية الذاكرة التي يحتاجها في الواقع Tarantool. للحصول على مساعدة حول كم مقدار لتعيين، راجع توصياتنا.
لتغيير الذاكرة المخصصة:
-
افتح الملف
/opt/wallarm/env.list
للتحرير: -
ضع السمة
SLAB_ALLOC_ARENA
على حجم الذاكرة. يمكن أن يكون هذا القيمة عدد صحيح أو عائم (النقطة.
هي فاصلة عشرية). مثلا:
الاستضافة والمنفذ¶
بشكل افتراضي، تم تعيين وحدة Postanalytics لقبول الاتصالات على كل عناوين IPv4 من المضيف (0.0.0.0) باستخدام المنفذ 3313. يُوصى بالاحتفاظ بالتهيئة الافتراضية ما لم يكن التغيير ضروريًا.
ومع ذلك، إذا كنت بحاجة إلى تغيير التهيئة الافتراضية:
-
افتح الملف
/opt/wallarm/env.list
للتحرير: -
حدث قيم
HOST
وPORT
حسب الضرورة. قم بتعريف المتغيرPORT
إذا لم يتم تحديده بالفعل، على سبيل المثال: -
افتح الملف
/opt/wallarm/etc/wallarm/node.yaml
للتحرير: -
أدخل القيم
host
وport
الجديدة للمعلماتtarantool
، كما هو موضح أدناه:
الخطوة 5: تمكين الاتصالات الواردة لوحدة Postanalytics¶
تستخدم وحدة Postanalytics المنفذ 3313 بشكل افتراضي، ولكن بعض منصات السحابة قد تمنع الاتصالات الواردة على هذا المنفذ.
لضمان الاندماج، سمح بالاتصالات الواردة على المنفذ 3313 أو المنفذ المخصص الخاص بك. هذه الخطوة أساسية للوحدة NGINX-Wallarm، التي تم تثبيتها بشكل منفصل، للتواصل مع مثيل Tarantool.
الخطوة 6: إعادة تشغيل خدمات Wallarm¶
بعد إجراء التغييرات الضرورية، أعد تشغيل خدمات Wallarm على الجهاز الذي يستضيف وحدة Postanalytics لتطبيق التحديثات:
الخطوة 7: تثبيت وحدة NGINX-Wallarm على خادم منفصل¶
بمجرد تثبيت وحدة Postanalytics على الخادم المنفصل:
-
قم بتثبيت وحدة NGINX-Wallarm على خادم مختلف وفقًا لـ الدليل المناسب.
-
عند إطلاق سكريبت التثبيت لوحدة NGINX-Wallarm على خادم منفصل، قم بتضمين الخيار
filtering
، على سبيل المثال:# إذا كنت تستخدم الإصدار x86_64: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-4.10.2.x86_64-glibc.sh filtering # إذا كنت تستخدم الإصدار ARM64: sudo env WALLARM_LABELS='group=<GROUP>' sh wallarm-4.10.2.aarch64-glibc.sh filtering
يُحدد المتغير
WALLARM_LABELS
المجموعة التي سيتم إضافة العقدة إليها (تُستخدم لتجميع العقد منطقياً في واجهة Wallarm Console UI).
الخطوة 8: اتصال وحدة NGINX-Wallarm بوحدة Postanalytics¶
على الجهاز الذي يحتوي على وحدة NGINX-Wallarm، في ملف التهيئة لـ NGINX، حدد عنوان الخادم لوحدة Postanalytics:
upstream wallarm_tarantool {
server <ip1>:3313 max_fails=0 fail_timeout=0 max_conns=1;
server <ip2>:3313 max_fails=0 fail_timeout=0 max_conns=1;
keepalive 2;
}
# omitted
wallarm_tarantool_upstream wallarm_tarantool;
-
يجب تحديد قيمة
max_conns
لكل من خوادم Tarantool العلوية لمنع إنشاء اتصالات زائدة. -
قيمة
keepalive
لا يجب أن تكون أقل من عدد خوادم Tarantool.
بمجرد تغيير ملف التهيئة، أعد تشغيل NGINX / NGINX Plus على خادم وحدة NGINX-Wallarm:
الخطوة 9: تحقق من تفاعل وحدتي NGINX‑Wallarm وPostanalytics المنفصلتين¶
للتحقق من تفاعل وحدتي NGINX‑Wallarm وPostanalytics المنفصلتين، يمكنك إرسال الطلب مع اختبار الهجوم إلى عنوان التطبيق المحمي:
إذا تم تكوين وحدتي NGINX‑Wallarm وPostanalytics المنفصلتين بشكل صحيح، سيتم تحميل الهجوم إلى سحابة Wallarm ويتم عرضه في قسم الهجمات في Wallarm Console:
إذا لم يتم تحميل الهجوم إلى السحابة، يرجى التحقق من عدم وجود أخطاء في تشغيل الخدمات:
-
تحليل سجلات وحدة Postanalytics
إذا كان هناك مثل هذا السجل `SystemError binary: failed to bind: Cannot assign requested address، make sure that the server accepts connection on specified address and port.
-
على الخادم الذي يحتوي على وحدة NGINX‑Wallarm، قم بتحليل سجلات NGINX:
إذا كان هناك السجل
[error] wallarm: <address> connect() failed
, تأكد من أن عنوان وحدة postanalytics المنفصلة محدد بشكل صحيح في ملفات التهيئة لوحدة NGINX‑Wallarm وأن الخادم المنفصل لوحدة postanalytics يقبل الاتصال على العنوان والمنفذ المحددين. -
على الخادم الذي يحتوي على وحدة NGINX‑Wallarm، احصل على إحصاءات الطلبات المعالجة باستخدام الأمر أدناه وتأكد أن قيمة
tnt_errors
هي 0
التثبيت اليدوي¶
المتطلبات¶
-
Access to the account with the Administrator role in Wallarm Console for the US Cloud or EU Cloud
-
SELinux disabled or configured upon the instructions
-
Executing all commands as a superuser (e.g.
root
) -
Access to
https://repo.wallarm.com
to download packages. Ensure the access is not blocked by a firewall -
Access to
https://us1.api.wallarm.com
if working with US Wallarm Cloud or tohttps://api.wallarm.com
if working with EU Wallarm Cloud. If access can be configured only via the proxy server, then use the instructions -
Installed text editor vim, nano, or any other. In the commands in this article, vim is used
الخطوة 1: أضف مستودعات Wallarm¶
تتم تثبيت وحدة Postanalytics، وكذلك وحدات Wallarm الأخرى، وتحدث من مستودعات Wallarm. لإضافة المستودعات، استخدم الأوامر المناسبة لمنصتك:
sudo apt -y install dirmngr
curl -fSsL https://repo.wallarm.com/wallarm.gpg | sudo gpg --no-default-keyring --keyring gnupg-ring:/etc/apt/trusted.gpg.d/wallarm.gpg --import
sudo chmod 644 /etc/apt/trusted.gpg.d/wallarm.gpg
sh -c "echo 'deb https://repo.wallarm.com/debian/wallarm-node bullseye/4.8/' | sudo tee /etc/apt/sources.list.d/wallarm.list"
sudo apt update
الخطوة 2: تثبيت حزم وحدة Postanalytics¶
قم بتثبيت حزمة wallarm-node-tarantool
من مستودع Wallarm لوحدة Postanalytics وقاعدة بيانات Tarantool:
الخطوة 3: ربط وحدة Postanalytics بسحابة Wallarm¶
تتفاعل وحدة Postanalytics مع سحابة Wallarm. يتعين عليك إنشاء عقدة Wallarm لوحدة Postanalytics وربط هذه العقدة بالسحابة. عند الربط، يمكنك تعيين اسم العقدة Postanalytics، تحت الذي سيتم عرضه في واجهة Wallarm Console UI ووضع العقدة في مجموعة العقدة المناسبة (التي تُستخدم لتنظيم عقد منطقيًا في الواجهة الأمامية). يُوصى باستخدام نفس مجموعة العقدة للعقدة التي تعالج حركة البيانات الأولية وللعقدة التي تقوم بخطوة بعد التحليل.
لتزويد العقدة بالوصول، يلزمك توليد رمز على جانب السحابة وتحديده على الجهاز الذي يحتوي على حزم العقدة.
لربط العقدة بعد التحليل مع السحابة:
-
Get Wallarm token of the appropriate type:
-
قم بتشغيل السكريبت
register-node
على جهاز حيث تقوم بتثبيت العقدة التصفية:sudo /usr/share/wallarm-common/register-node -t <TOKEN> --labels 'group=<GROUP>' -H us1.api.wallarm.com --no-sync --no-sync-acl
<TOKEN>
هو القيمة المنسوخة من الرمز API مع الدورDeploy
.- يتم استخدام المعلمة
--labels 'group=<GROUP>'
لوضع العقدة الخاصة بك في مجموعة العقدة<GROUP>
(موجودة، أو، إذا لم تكن موجودة، ستُنشأ).
- استخدم
-H us1.api.wallarm.com
للتثبيت في السحابة الأمريكية، وإزالة هذا الخيار للتثبيت في السحابة الأوروبية. - قد تضيف
-n <HOST_NAME>
المعلمة لتعيين اسم مخصص لعينة العقدة الخاصة بك. سيكون الاسم النهائي للعينة:HOST_NAME_NodeUUID
.
الخطوة 4: تحديث تكوين وحدة Postanalytics¶
تقع ملفات تحكم وحدة Postanalytics في المسارات:
-
/etc/default/wallarm-tarantool
لأنظمة التشغيل Debian و Ubuntu -
/etc/sysconfig/wallarm-tarantool
لأنظمة التشغيل CentOS و Amazon Linux 2.0.2021x وأقل
لفتح الملف في وضع التحرير، يرجى استخدام الأمر:
الذاكرة¶
تستخدم وحدة Postanalytics التخزين في الذاكرة Tarantool. بالنسبة لبيئات الإنتاج، يوصى بامتلاك ذاكرة أكبر. إذا كنت تختبر العقدة Wallarm أو تمتلك حجم خادم صغير، فيمكن أن يكون الحجم الأقل كافيًا.
يتم تعيين حجم الذاكرة المخصصة بالجيجا بايت عبر الأمر SLAB_ALLOC_ARENA
في ملف التهيئة /etc/default/wallarm-tarantool
أو /etc/sysconfig/wallarm-tarantool
. يمكن أن تكون القيمة عددًا صحيحًا أو عائمًا (النقطة .
هي فاصلة عشرية).
تتم الإشارة إلى التوصيات المفصلة حول تخصيص الذاكرة لـ Tarantool في هذه التعليمات.
عنوان الخادم المنفصل لوحدة Postanalytics¶
لتعيين عنوان الخادم المنفصل لوحدة Postanalytics:
-
افتح الملف Tarantool في وضع التحرير:
-
قم بإلغاء التعليق على متغيرات
HOST
وPORT
واضبط لهم القيم التالية: -
إذا تم إعداد ملف التهيئة لـ Tarantool لقبول الاتصالات على عناوين IP مختلفة عن
0.0.0.0
أو127.0.0.1
، فيرجى توفير العناوين في/etc/wallarm/node.yaml
:
الخطوة 5: إعادة تشغيل خدمات Wallarm¶
لتطبيق الإعدادات على وحدة Postanalytics:
الخطوة 6: تثبيت وحدة NGINX-Wallarm على خادم منفصل¶
بمجرد تثبيت وحدة Postanalytics على الخادم المنفصل، قم بتثبيت وحدات Wallarm الأخرى على خادم مختلف. فيما يلي الروابط إلى التعليمات المناسبة وأسماء الحزم التي يجب تحديدها لتثبيت وحدة NGINX-Wallarm:
-
في خطوة تثبيت الحزم، قم بتحديد
wallarm-node-nginx
وnginx-module-wallarm
. -
في خطوة التثبيت، حدد
wallarm-node-nginx
وnginx-plus-module-wallarm
. -
في خطوة التثبيت، حدد
wallarm-node-nginx
وlibnginx-mod-http-wallarm/nginx-mod-http-wallarm
.
The wallarm-node-tarantool
package version
The wallarm-node-tarantool
package must be of the same or a higher version than the primary NGINX-Wallarm module packages installed on a separate server.
To check versions:
الخطوة 7: ربط وحدة NGINX-Wallarm بوحدة Postanalytics¶
على الجهاز الذي يحتوي على وحدة NGINX-Wallarm، في ملف التهيئة لـ NGINX، حدد عنوان الخادم لوحدة Postanalytics:
upstream wallarm_tarantool {
server <ip1>:3313 max_fails=0 fail_timeout=0 max_conns=1;
server <ip2>:3313 max_fails=0 fail_timeout=0 max_conns=1;
keepalive 2;
}
# omitted
wallarm_tarantool_upstream wallarm_tarantool;
-
يجب تحديد قيمة
max_conns
لكل من خوادم Tarantool العلوية لمنع إنشاء اتصالات زائدة. -
قيمة
keepalive
لا يجب أن تكون أقل من عدد خوادم Tarantool. -
السطر
# wallarm_tarantool_upstream wallarm_tarantool;
معلق بشكل افتراضي - يرجى حذف#
.
بمجرد تغيير ملف التهيئة، أعد تشغيل NGINX / NGINX Plus على خادم وحدة NGINX-Wallarm:
الخطوة 8: تحقق من تفاعل وحدتي NGINX‑Wallarm وPostanalytics المنفصلتين¶
للتحقق من تفاعل وحدتي NGINX‑Wallarm وPostanalytics المنفصلتين، يمكنك إرسال الطلب مع اختبار الهجوم إلى عنوان التطبيق المحمي:
إذا تم تكوين وحدتي NGINX‑Wallarm وPostanalytics المنفصلتين بشكل صحيح، سيتم تحميل الهجوم إلى سحابة Wallarm ويتم عرضه في قسم الهجمات في Wallarm Console:
إذا لم يتم تحميل الهجوم إلى السحابة، يرجى التحقق من عدم وجود أخطاء في تشغيل الخدمات:
-
تأكد من أن خدمة postanalytics
wallarm-tarantool
في الحالةactive
-
تحليل سجلات وحدة Postanalytics
إذا كان هناك مثل هذا السجل
SystemError binary: failed to bind: Cannot assign requested address
, تأكد من أن الخادم يقبل الاتصال على العنوان والمنفذ المحددين. -
على الخادم الذي يحتوي على وحدة NGINX‑Wallarm، قم بتحليل سجلات NGINX:
إذا كان هناك السجل
[error] wallarm: <address> connect() failed
, تأكد من أن عنوان وحدة postanalytics المنفصلة محدد بشكل صحيح في ملفات التهيئة لوحدة NGINX‑Wallarm وأن الخادم المنفصل لوحدة postanalytics يقبل الاتصال على العنوان والمنفذ المحددين. -
على الخادم الذي يحتوي على وحدة NGINX‑Wallarm، احصل على إحصاءات الطلبات المعالجة باستخدام الأمر أدناه وتأكد أن قيمة
tnt_errors
هي 0
حماية وحدة Postanalytics¶
حماية وحدة Postanalytics التي تم تثبيتها حديثًا
نوصي بشدة بحماية وحدة Postanalytics التي تم تثبيتها حديثًا باستخدام جدار الحماية. خلاف ذلك، هناك خطر في الحصول على وصول غير مصرح به إلى الخدمة والذي قد يؤدي إلى:
- الكشف عن معلومات حول الطلبات المعالجة
- إمكانية تنفيذ كود Lua وأوامر نظام التشغيل التعسفية
يرجى ملاحظة أن مثل هذا الخطر لا يوجد إذا كانت وحدة Postanalytics تتوافق مع وحدة NGINX-Wallarm على نفس الخادم. هذا يعني أن وحدة Postanalytics ستستمع إلى المنفذ 3313
.
فيما يلي إعدادات جدار الحماية التي يجب تطبيقها على وحدة Postanalytics التي تم تثبيتها بشكل منفصل:
- السماح بحركة مرور HTTPS من وإلى خوادم API Wallarm، بحيث يمكن لوحدة Postanalytics التفاعل مع هذه الخوادم:
us1.api.wallarm.com
هو خادم API في السحابة الأمريكية Wallarmapi.wallarm.com
هو خادم API في السحابة الأوروبية Wallarm
- احصر الوصول إلى منفذ
3313
Tarantool عبر بروتوكولي TCP و UDP من خلال السماح بالاتصالات فقط من عناوين IP للعقد Wallarm التصفية.