انتقل إلى المحتوى

📜 إدارة OpenSearch باستخدام البنية التحتية كشيفرة برمجية (IaC)

لضمان أن تكون بنيتنا التحتية للبحث متسقة وموثوقة وسهلة الإدارة، نقوم بتعريف جميع تكوينات OpenSearch كشيفرة برمجية. فكر في هذا النهج كأنه مخطط أساسي؛ فهو يسمح لنا ببناء وإعادة إنتاج والتحكم في إصدارات إعداداتنا بالكامل بشكل آلي.

تتم إدارة هذه العملية بواسطة مكونين رئيسيين:

  1. سكربتات التكوين: لإدارة الإعدادات على مستوى التطبيق داخل OpenSearch (مثل قوالب الفهارس وسياسات البيانات).
  2. Terraform: لتوفير البنية التحتية الأساسية (مثل الخوادم والشبكات والأمان).

⚙️ 1. تطبيق تكوينات العنقود

جميع موارد OpenSearch الديناميكية — مثل قوالب الفهارس، مسارات الجلب، وسياسات إدارة حالة الفهرس (ISM) — مُعرَّفة في ملفات JSON بسيطة.

هيكل الملفات

يتم تنظيم ملفات التكوين هذه حسب النوع في المجلد tools/search/:

  • قوالب الفهارس: tools/search/templates/
    • تحدد المخططات (mappings) والإعدادات للفهارس الجديدة.
  • مسارات الجلب: tools/search/pipelines/
    • تحدد خطوات المعالجة المسبقة للمستندات قبل فهرستها.
  • سياسات ISM: tools/search/ism/
    • تؤتمت المهام الروتينية مثل التدوير (rollovers)، النقل، أو الحذف للفهارس.

كيفية تطبيق التكوينات

لتطبيق كل هذه التكوينات على العنقود، قم بتشغيل سكربت التثبيت. سيقوم هذا السكربت بالمرور عبر المجلدات ورفع الملفات إلى نقاط النهاية المناسبة في OpenSearch.

# هذا السكربت يطبق جميع القوالب والمسارات والسياسات
tools/search/install.sh

✅ 2. التحقق من صحة العنقود (فحوصات ما قبل التشغيل)

قبل تطبيق التغييرات أو توجيه حركة المرور الإنتاجية إلى العنقود، من الضروري إجراء فحص ما قبل التشغيل. تساعدك قائمة التحقق هذه على التأكد من أن العنقود سليم ومُكوَّن بشكل صحيح، مما يمنع الأخطاء غير المتوقعة.

قائمة التحقق

  • صحة العنقود green: يؤكد أن جميع الأجزاء (shards) الأساسية والنسخ الاحتياطية نشطة وموزعة بشكل صحيح عبر جميع العقد.
  • القوالب مُثبَّتة: يضمن أن أي فهارس جديدة سيتم إنشاؤها ستحتوي على الهيكل والإعدادات الصحيحة.
  • الأسماء المستعارة متسقة: يتحقق من أن الأسماء المستعارة للقراءة والكتابة (مثل my-index-read, my-index-write) تشير إلى الفهارس الصحيحة، وهو أمر حاسم للتحديثات دون انقطاع للخدمة.
  • وجود لقطات (Snapshots) حديثة: يؤكد أن عمليات النسخ الاحتياطي تعمل بنجاح، مما يضمن قدرتنا على التعافي من الكوارث.

أوامر تحقق مفيدة

يمكنك استخدام أوامر curl هذه للتحقق بسرعة من حالة العنقود:

# التحقق من الصحة العامة للعنقود (يجب أن تكون "green")
curl -s $OS/_cluster/health?pretty

# عرض جميع الأسماء المستعارة للتحقق من مؤشرات القراءة/الكتابة
curl -s "$OS/_cat/aliases?v&s=alias"

# عرض جميع الفهارس للتحقق من حالتها وحجمها
curl -s "$OS/_cat/indices?v&s=index"

🏗️ 3. البنية التحتية الأساسية باستخدام Terraform

البنية التحتية التأسيسية — الأجهزة الافتراضية، مجموعات الأمان، وإعدادات البرامج الأساسية — يتم توفيرها وإدارتها باستخدام Terraform. هذا يضمن أن بيئتنا الأساسية موحدة وقابلة للتكرار.

تكوين Terraform مسؤول عن:

  • توفير العقد: إعداد العدد المطلوب من عقد البيانات وعقد العميل (التنسيقية).
  • تكوين النظام:
    • حجم كومة JVM: تخصيص الكمية المثلى من الذاكرة لعملية OpenSearch لتحسين الأداء.
    • مسارات البيانات: تكوين مجلدات التخزين (path.data) حيث يتم تخزين بيانات الفهرس.
    • الأمان (TLS): فرض الاتصال المشفر من وإلى العنقود.
  • تثبيت الإضافات: تثبيت إضافات OpenSearch الضرورية، مثل analysis-icu لدعم اللغات الدولية المتقدم.