تجميع وتوجيه سجلات Kubernetes DigitalOcean (DOKS) إلى OpenSearch المدير بواسطة DigitalOcean

المقدمة

هذا التورية توضح كيفية جمع وتوجيه سجلات من مجموعة DigitalOcean Kubernetes (DOKS) إلى موجود DigitalOcean Managed OpenSearch باستخدام AxoSyslog، معالج بيانات أمنية قابل للتمدد. من خلال تتبع هذه الدرسة، ستتعلم كيفية إنشاء نظام سجلات قوي يقوم بالتقاط والتحليل للسجلات من تطبيقاتك الكوبرنتزية، مما يسهل مراقبة وحل مشاكل وتأمين بنية التحكم الخاصة بك.

في هذه التورية ستستخدم AxoSyslog لتوجيه السجلات من مجموعة الكوبرنتزية الى OpenSearch.

الأحتياجات السابقة

قبل البدء بالتنقيط، أكد أن لديك الأحتياجات التالية:

  1. سوف تحتاج إلى حساب DigitalOcean Cloud Account لإنشاء وإدارة موارد Kubernetes و OpenSearch.
  2. يجب أن يكون تأديب الوسيط الخاص بـ DigitalOcean Command Line Interface (CLI) tool doctl وتكوينه على الآلة المحلية الخاصة بك.
  3. أن يكون لديك مجموعة فعالة DigitalOcean Kubernetes (DOKS).
  4. يجب تثبيت مدير الحزم الخاص بـ Helm لإدارة تطبيقات Kubernetes.
  5. أن يكون لديك معرفة جيدة بKubernetes، Helm وخدمات DigitalOcean المداركة.

الحالة التطبيقية

هذا المشروع مناسب لأحيان حيث تحتاج حلول تنظيم التسجيلات المركزية لمراقبة وتحليل التسجيلات من التطبيقات المختلفة التي تسير في مجموعة Kubernetes. سواء كنت تدير مجموعة صغيرة من التطبيقات أو بنية تحتوي على الكمية الكبيرة، تقديم التسجيلات وتوجيهها إلى مجموعة OpenSearch مخصصة ستساعد في:

  • مراقبة الأمان: كشف و تسجيل المعاملات الأمنية بتحليل الأسطر المسجلة في الوقت الحالي.
  • التأكد من المشاكل: تحديد و حل المشاكل في تطبيقاتك الكوبرنتيز بالوصول إلى أسطور البيانات التفصيلية.
  • الموافقة: إبقاء سجل للأحداث للاتفاق مع الأنظمة التجارية المعيارية.

بتركيب AxoSyslog مع DigitalOcean Managed OpenSearch، يمكنك معالجة وتخزين الأعداد الكبيرة من الأسطور بالكفاءة، مما يسهل استخراج المعلومات القيمة وحفظ صحة وأمان أنظمتك.

خطوة 1 – إنشاء مجموعة OpenSearch.

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

doctl databases create opensearch-doks --engine opensearch --region lon1 --size db-s-1vcpu-2gb --num-nodes 1

أستبدل lon1 بالمنطقة التي تود الوصول إليها. للقاء قائمة الأحجام المتاحة، زود إلى توثيقات مرجع ال API الخاصة بنا.

خطوة 2 – توليد بعض الأسطوانات العشوائية

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

أولاً، قم بإضافة مستودع الخريطة الخاصة بمولد الأسطوانات وتثبيت المولد:

helm repo add kube-logging https://kube-logging.github.io/helm-charts
helm repo update

من ثم، قم بتثبيت المولد باستخدام Helm:

helm install --generate-name --wait kube-logging/log-generator

يمكنك تحقيق جهد المولد الأسطواني بمراجعة الأسطوانات التي ينتجها:

kubectl logs -l app.kubernetes.io/name=log-generator

خطوة 3 – تجهيز AxoSyslog Collector للتثبيت

في هذه الخطوة ، ستقوم بتكوين AxoSyslog Collector الذي يسؤول عن جمع الأسطوانات من مجموعتك الكوبرنية وتوجيهها إلى OpenSearch. هذا يتضمن تقديم تفاصيل الاتصال الصحيحة لمجموعة OpenSearch الخاصة بك (اسم الموقع، المستخدم، وكلمة المرور).

سوف نستخدم helm لتثبيت AxoSyslog Collector وتمرير القيم الخاصة.

لت configurar مجموع AxoSyslog بتعريف العنوان الصحيح والمستخدم وكلمة المرور لقاعدة البيانات الخاصة بك OpenSearch، يجب أن تتبع هذه الخطوات:

脚本自动化

لتسهيل التكوين، يمكنك استخدام خطأ تلقائي يحصل على تفاصيل الاتصال الضرورية لقاعدة OpenSearch ويحدد ملف ت配置 AxoSyslog الخاص بك.

أحفظ هذا الخطأ كـ update_axoflow_demo.sh:

update_axoflow_demo.sh
#!/bin/bash

# قام بتسلسل معرفى لـ opensearch-doks
DB_ID=$(doctl databases list --format Name,ID --no-header | grep opensearch-doks | awk '{print $2}')

# حصل على اسم ماشينك واسم المستخدم وكلمة المرور
OPENSEARCHHOSTNAME=$(doctl databases connection $DB_ID --no-header --format Host)
OPENSEARCHUSERNAME=$(doctl databases connection $DB_ID --no-header --format User)
OPENSEARCHPASSWORD=$(doctl databases connection $DB_ID --no-header --format Password)

# قام بتحديث ملف axoflow-demo.yaml مع القيم المستخرجة بواسطة yq
yq eval ".config.destinations.opensearch[0].address = \"$OPENSEARCHHOSTNAME\"" -i axoflow-demo.yaml
yq eval ".config.destinations.opensearch[0].user = \"$OPENSEARCHUSERNAME\"" -i axoflow-demo.yaml
yq eval ".config.destinations.opensearch[0].password = \"$OPENSEARCHPASSWORD\"" -i axoflow-demo.yaml

echo "axoflow-demo.yaml has been updated."

تأكد من أن لديك إجراء توافر على خطأك قبل تشغيله:

chmod +x update_axoflow_demo.sh && ./update_axoflow_demo.sh

سيحصل هذا الخطأ على المعلومات الضرورية من حسابك في DigitalOcean بواسطة doctl وسيحدد ملف axoflow-demo.yaml بالصورة المناسبة.

خطوات يدوية لتحديث axoflow-demo.yaml

إذا كنت تفضل تكوين مجموع AxoSyslog الخاص بك يدويًا، يجب أن تتبع هذه الخطوات:

قم بتنفيذ أوامر التحكم تحصل على تسلسل معرفى لـ opensearch-doks:

doctl databases list --format Name,ID --no-header | grep opensearch-doks | awk '{print $2}'

لتحصيل الاسم الموجود في المعتمد، والاسم المستخدم، والرقم السري، يتم تنفيذ الأوامر التالية بشكل منفصل:

doctl databases connection <id> --no-header --format Host
doctl databases connection <id> --no-header --format User
doctl databases connection <id> --no-header --format Password

الآن، يتوجب عليك تحديث يدويًا ملف axoflow-demo.yaml:

افتح ملف axoflow-demo.yaml في محرر النصوص واستبدل الحقول المتعلقة بالقيم المستخرجة:

axoflow-demo.yaml
config:
  sources:
    kubernetes:
      # جلب معايير كيبيرنتز
      enabled: true
  destinations:
    # إرسال المعايير إلى OpenSearch
    opensearch:
      - address: "x.k.db.ondigitalocean.com"
        index: "doks-demo"
        user: "doadmin"
        password: "AVNS_x"
        tls:
          # تجنب تحقيق صحة شهادة TLS للمخزن.
          peerVerify: false
        # إرسال حقول syslog + المعلومات الفرعية من .k8s.* بصيغة JSON
        template: "$(format-json --scope rfc5424 --exclude DATE --key ISODATE @timestamp=${ISODATE} k8s=$(format-json .k8s.* --shift-levels 2 --exclude .k8s.log))"

خطوة 4 – Instalar AxoSyslog-collector

بما يكمن في إنهاء التكوينات، فإن الخطوة القادمة هي توفير المجموعة AxoSyslog Collector في مجموعتك الكيبيرنتزية. سيتيح هذا جلب وتوجيه المعايير إلى OpenSearch.

أضف مستودع AxoSyslog Helm وInstale AxoSyslog Collector باستخدام ملف التكوينات المخصص:

helm repo add AxoSyslog https://axoflow.github.io/AxoSyslog-charts
helm repo update
helm install AxoSyslog -f axoflow-demo.yaml AxoSyslog/AxoSyslog-collector --wait

لضمان أن تتم إرسال المعايير إلى المخزن المناسب، قم بتحديث تكوينات AxoSyslog Collector بتحديث ملفك configmap:

kubectl get configmap AxoSyslog-AxoSyslog-collector -o yaml | sed 's/9200\/_bulk/25060\/_bulk/' | kubectl apply -f -

أخيرًا، حذف البوادر الموجودين لتطبيق التكوينات المحدثة:

kubectl delete pods -l app=AxoSyslog-AxoSyslog-collector

الخلاصة

تأسيس قناة تسجيل المعلومات من ديجيتال أوست كوبرنتز إلى أوبن باحثة بواسطة AxoSyslog لا يحدث فقط تجميع معلوماتك بل يساهم أيضًا في تعزيز قدراتك على المراقبة والتحليل وأمن تطبيقاتك. ومع الخطوات التي يوفرها هذا التوجيه، يمكنك تنفيذ هذه الحلول بسرعة كبيرة، مما يمنحك بصفة أعمق في المعرفة حول بيئة كوبرنتزك الخاصة بك وتضمن بذلك أن تبقى بيئتك التحتية مرنة وما يتوافر بموجب الاتفاق.

Source:
https://www.digitalocean.com/community/tutorials/collect-and-forward-kubernetes-logs-to-opensearch