العودة إلى المدونة

كيفية تثبيت Elastic Stack على Ubuntu 18.04

كيفية تثبيت Elastic Stack على Ubuntu 18.04

The Elastic Stack (المعروفة سابقاً باسم ELK Stack) هي حل قوي لتسجيل البيانات مركزيًا. وهي عبارة عن مجموعة من البرمجيات مفتوحة المصدر تم تطويرها بواسطة Elastic. وهي تتيح لمديري النظام البحث في السجلات التي يتم إنشاؤها من أي مصدر وبأي تنسيق وتحليلها وتصورها مرئيًا. وتُعرف هذه الممارسة باسم تسجيل البيانات مركزيًا (centralized logging). يمكن أن يكون تسجيل البيانات مركزيًا مفيدًا جدًا عند محاولة تحديد المشكلات في الخوادم والتطبيقات بدقة، حيث يتيح البحث في جميع السجلات من مكان واحد. كما يمكن أن يساعد أيضًا في تحديد المشكلات عبر خوادم متعددة من خلال ربط السجلات في وقت محدد.

في هذا الدليل، تعرف على كيفية تثبيت Elastic Stack على Ubuntu 18.04. أولاً، اتبع دليلنا التعليمي لتتمكن بسهولة من تثبيت خادم Ubuntu الخاص بك على CloudSigma.

The Elastic Stack على Ubuntu

تتكون Elastic Stack من المكونات التالية:

  • Elasticsearch: محرك بحث موزع RESTful. ويقوم بتخزين جميع البيانات التي تم جمعها.
  • Logstash: جزء معالجة البيانات في Elastic Stack. حيث يقوم بإرسال البيانات الواردة إلى Elasticsearch.
  • Kibana: واجهة ويب توفر ميزات البحث وتصور السجلات مرئيًا.
  • Beats: ناقل بيانات خفيف الوزن ووحيد الغرض. يمكنه إرسال البيانات من أجهزة متعددة إلى Logstash أو Elasticsearch.

ستحتاج إلى تثبيت كل مكون من مكونات المجموعة يدويًا.

المتطلبات الأساسية

قبل المتابعة في تثبيت the Elastic Stack، يجب تلبية العديد من متطلبات النظام:

يرجى ملاحظة أن مساحة التخزين تعتمد على عدد السجلات التي سيتم جمعها وتخزينها. بالإضافة إلى ذلك، تتعامل Elastic Stack أيضًا مع معلومات قيمة حول الخادم. للحفاظ على أمان نقل البيانات، نوصي بشدة بتكوين شهادة TLS/SSL. اتبع هذا الدليل التعليمي للحصول على شهادة SSL مجانية على خادم Nginx الخاص بك.

بالإضافة إلى الخادم المشفر، ستكون الخطوات التالية ضرورية أيضًا:

  • اسم نطاق مؤهل بالكامل (FQDN). في هذا الدليل، سيكون <domain>.
  • يوجه كلا سجلي DNS للنطاقات التالية إلى الخادم.
    • سجل من النوع A مع <domain> يشير إلى عنوان IP العام للخادم.
    • سجل من النوع A مع www.<domain> يشير إلى عنوان IP العام للخادم.

تثبيت Elastic Stack

  • تكوين مستودع Elastic

مكونات Elastic Stack ليست متاحة مباشرة من مستودع Ubuntu الرسمي. لحسن الحظ، يسمح Ubuntu لـ 3rd-party (الطرف الثالث) لتثبيت الحزم. لغرضنا، سنقوم بإضافة مستودع حزم Elastic. يقدم المستودع أحدث تحديثات الحزم لجميع حزم Elastic. جميع حزم Elastic موقعة بمفتاح توقيع Elasticsearch لمنع تزييف الحزم. أولاً، أضف المفتاح إلى حلقة مفاتيح Ubuntu:

ثم، أضف قائمة مصادر Elastic تحت دليل “sources.list.d”. وهو الدليل المخصص الذي يستخدمه APT للبحث عن مصادر جديدة:

أخيرًا، قم بتحديث ذاكرة التخزين المؤقت لـ APT:

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

  • تثبيت وتكوين Elasticsearch

بمجرد تكوين مستودع Elastic، يصبح APT جاهزًا لتنزيل وتثبيت جميع حزم Elastic. قم بتشغيل الأمر التالي لتثبيت Elasticsearch:

الآن يمكنك تكوين Elasticsearch. يوفر الملف “elasticsearch.yml” خيارات التكوين حول المجموعات (clusters)، والعقد (nodes)، والمسارات، والشبكات، والذاكرة، والبوابة (gateway)، وغيرها. معظمها يأتي مكوّنًا مسبقًا في الملف. بعد ذلك، افتح ملف تكوين Elasticsearch باستخدام محرر نصوص من اختيارك:

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

network.host: localhost

إذا كان Elasticsearch سيستمع إلى عنوان IP محدد، فاستبدل “localhost” بعنوان IP المستهدف. هذا هو الحد الأدنى من متطلبات التكوين قبل تشغيل Elasticsearch. احفظ ملف التكوين وأغلقه. بعد ذلك، ابدأ خدمة Elasticsearch. قد يستغرق بدء تشغيل Elasticsearch بضع لحظات:

بعد ذلك، تحتاج إلى التأكد من بدء تشغيل Elasticsearch في كل مرة يتم فيها تشغيل الخادم:

سيتحقق الأمر التالي مما إذا كانت خدمة Elasticsearch قيد التشغيل. كل ما يتطلبه الأمر هو إرسال طلب HTTP:

sending an HTTP request

ستبدو الاستجابة كشيء من هذا القبيل. ستكون استجابة تعرض بعض المعلومات الأساسية حول العقدة المحلية.

تثبيت وتكوين لوحة تحكم Kibana

يتوفر Kibana مباشرة من مستودع Elastic. لاحظ أنه يجب عليك تثبيت Kibana فقط بعد تثبيت Elasticsearch. بافتراض أن المستودع متاح بالفعل، يمكن لـ APT جلب Kibana وتثبيته مباشرة:

بمجرد التثبيت، قم بتمكين وبدء خدمة Kibana:

بشكل افتراضي، تم تكوين Kibana للاستماع فقط إلى “localhost”. للوصول الخارجي، يتطلب الأمر تكوين وكيل عكسي. هنا، سيكون Nginx هو الوكيل العكسي. استخدم الأمر openssl لإنشاء مستخدم مسؤول لـ Kibana. سيكون هذا حساب المستخدم للوصول إلى واجهة ويب Kibana. هنا، سيكون اسم المستخدم التجريبي هو “kibana_admin”. لضمان أمان أفضل، نوصي باستخدام اسم مستخدم غير قياسي. سيقوم الأمر التالي بإنشاء مستخدم مسؤول لـ Kibana. سيتم إنشاء اسم المستخدم وكلمة المرور وتخزينهما في ملف “htpasswd.users”. سيتعين تكوين Nginx لاستخدام اسم المستخدم وكلمة المرور:

أدخل كلمة المرور وأكدها عند المطالبة. ستكون كلمة المرور هذه مهمة للوصول إلى واجهة Kibana. بعد ذلك، تحتاج إلى إنشاء ملف كتلة خادم Nginx. للتوضيح، سيكون example.com. يمكن أن يكون أيضًا أي اسم وصفي آخر. إذا كانت هناك سجلات FQDN و DNS مكونة للخادم، فيمكن أن يكون اسم الملف أيضًا باسم FQDN:

إذا كان هناك أي محتوى موجود مسبقًا، فقم بإزالة المحتويات واستبدالها بأسطر التعليمات البرمجية التالية:

احفظ الملف وأغلقه. قم بإنشاء رابط رمزي للتكوين الجديد تحت دليل “sites-enabled”. إذا كان هناك أي رابط موجود مسبقًا بنفس اسم الملف، فقد لا تكون هذه الخطوة ضرورية:

سيطلب الأمر التالي من Nginx التحقق مما إذا كان هناك أي خطأ في بناء الجملة:

إذا كانت هناك أي مشكلة في بناء الجملة، فتأكد من وضع محتويات الملف بشكل صحيح. بعد ذلك، أعد تشغيل خدمة Nginx:

أخبر UFW بالسماح بالاتصال بـ Nginx:

يجب أن يكون Kibana الآن متاحًا عبر FQDN أو عنوان IP العام لخادم Elastic Stack. تحقق من صفحة حالة خادم Kibana:

status page

تثبيت وتكوين Logstash

بينما يمكن لـ Beats إرسال البيانات مباشرة إلى قاعدة بيانات Elasticsearch’s، يوصى باستخدام Logstash لمعالجة البيانات. يمكن لـ Logstash جمع البيانات وتحويلها إلى تنسيق مشترك قبل تصديرها إلى قاعدة بيانات أخرى. قم بتشغيل أمر APT التالي لتثبيت Logstash:

بمجرد اكتمال التثبيت، يحين وقت تكوين Logstash. ملفات تكوين Logstash تكون بتنسيق JSON. يمكنك العثور عليها جميعًا في دليل “/etc/logstash/conf.d” directory. من المفيد التفكير في Logstash كخط أنابيب، يستقبل البيانات من أحد الطرفين، ويعالجها، ثم يرسلها إلى الوجهة. يتطلب خط أنابيب Logstash عنصرين إلزاميين – input و output مع عنصر اختياري واحد – filter. يقوم المكون الإضافي input بإدخال البيانات، ويقوم المكون الإضافي filter بمعالجة البيانات، ويقوم المكون الإضافي output بكتابة البيانات إلى الوجهة. سيقوم الأمر التالي بإنشاء ملف تكوين يقوم بإعداد Logstash لمدخلات Filebeat:

أدخل تكوين input التالي. يصف هذا التكوين مدخلات beats التي ستستمع على المنفذ 5044 عبر بروتوكول TCP:

الخطوة التالية هي إنشاء ملف تكوين يسمى “10-syslog-filter.conf”. سنستخدمه لإعداد مصفاة لـ syslogs (سجلات النظام):

أدخل رمز تكوين syslog التالي. هذا الرمز متاح مباشرة من Elastic guide. يوضح هذا الرمز تكوين input لـ Logstash:

سيتعامل ملف التكوين التالي مع المخرجات. افتح ملفًا جديدًا باسم “30-elasticsearch-output.conf”:

أدخل الكود التالي. يوضح هذا الكود تكوين المخرجات لـ Logstash:

اختبر تكوين Logstash. ثم قم بتشغيل الأمر التالي:

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

الآن بعد أن تم تشغيل Logstash بنجاح وتكوينه بالكامل، فلنقم بتثبيت Filebeat.

تثبيت وتكوين Filebeat

تستخدم Elastic Stack أدوات شحن البيانات، المعروفة باسم “Beats” لجمع البيانات من مصادر مختلفة ونقلها إلى Logstash/Elasticsearch. إليك قائمة قصيرة بـ Beats المتاحة من Elastic:

  • Filebeat: جمع/شحن ملفات السجل.
  • Metricbeat: جمع/شحن المقاييس من الأنظمة والخدمات.
  • Packetbeat: جمع/تحليل بيانات الشبكة.
  • Winlogbeat: جمع سجلات أحداث Windows.
  • Auditbeat: جمع بيانات إطار عمل تدقيق Linux ومراقبة سلامة الملفات.
  • Heartbeat: مراقبة الخدمات للتحقق من توفرها.

لأغراض هذا البرنامج التعليمي، سنحتاج إلى Filebeat لشحن السجلات المحلية إلى Elastic Stack. أولاً، قم بتثبيت Filebeat:

يمكنك الآن تكوين Filebeat. أولاً، يحتاج إلى الاتصال بـ Logstash. سنستخدم التكوين النموذجي الذي يأتي مع Filebeat. افتح ملف التكوين في محرر نصوص. لاحظ أنه نظرًا لأن الملف بتنسيق YAML، فإن المسافة البادئة المناسبة مهمة:

ابحث عن القسم “output.elasticsearch” وقم بوضع علامة تعليق على السطور التالية. سيؤدي ذلك إلى تكوين Filebeat لإرسال الأحداث مباشرة إلى Elasticsearch/Logstash لمزيد من المعالجة. بعد ذلك، انتقل إلى القسم “output.logstash.” بعد ذلك، قم بإلغاء تعليق السطور:

output.logstash

يدعم Filebeat الوحدات التي يمكنها توسيع وظائفه. في هذا البرنامج التعليمي، سنستخدم وحدة النظام التي تجمع وتحلل السجلات التي تم إنشاؤها بواسطة خدمة تسجيل النظام لتوزيعات Linux الشائعة. قم بتمكين وحدة نظام Filebeat:

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

بشكل افتراضي، تم تعيين Filebeat لاتباع المسارات الافتراضية لسجلات syslog وسجلات المصادقة. تتوفر معلمات الوحدات في ملف التكوين “/etc/filebeat/modules.d/system.yml”.

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

يحتوي Filebeat على لوحة معلومات نموذجية لـ Kibana بشكل افتراضي. يساعد ذلك في تصور بيانات Filebeat في Kibana. ومع ذلك، قبل استخدام لوحة المعلومات، من الضروري إنشاء نمط الفهرس وتحميل لوحات المعلومات إلى Kibana. أثناء تحميل لوحات المعلومات، يتصل Filebeat بـ Elasticsearch للحصول على معلومات الإصدار. لتحميل لوحات المعلومات، أثناء تمكين Logstash، يلزم تعطيل مخرجات Logstash وتمكين مخرجات Elasticsearch. سيقوم الأمر التالي بالمهمة:

أخيرًا، يمكنك تشغيل Filebeat:

الآن، حان الوقت لاختبار تكوين Elastic Stack. إذا تم تكوينه بشكل صحيح، فستبدو المخرجات كالتالي:

Elastic Stack configuration

إذا أظهرت المخرجات 0 من إجمالي النتائج، فإن Elasticsearch لا يقوم بتحميل أي سجلات تحت الفهرس الذي بحثنا عنه. يشير هذا إلى وجود خطأ في التكوين. إذا كانت المخرجات كما هو متوقع، فقد تم تكوين Elastic Stack بنجاح.

نظرة عامة على لوحات معلومات Kibana

الآن، حان الوقت لاستكشاف واجهة ويب Kibana التي قمنا بتثبيتها بالفعل. أولاً، افتح لوحة معلومات Kibana. يجب أن تكون موجودة على FQDN أو عنوان IP العام لخادم Elastic Stack:

أدخل بيانات اعتماد تسجيل الدخول التي قمنا بإنشائها من قبل. بمجرد تسجيل الدخول، ستبدو لوحة المعلومات كالتالي:

Elastic stack home

من شريط التنقل الأيسر، حدد “Discover”. ثم حدد نمط “filebeat-*”. يعرض هذا جميع السجلات التي تم جمعها على مدار الـ 15 دقيقة الماضية. من الممكن البحث في السجلات وتصفحها وتخصيص لوحة التحكم:

customize the dashboard

من شريط التنقل الأيسر، انتقل إلى Dashboard >> Filebeat System. هنا، تتوفر جميع لوحات المعلومات النموذجية من وحدة نظام Filebeat.

في المثال التالي، يوضح تفاصيل الإحصاءات المختلفة بناءً على رسائل syslog:

Elastic Stack dashboard

يمكنه أيضًا الإبلاغ عن المستخدمين الذين قاموا بتنفيذ أوامر باستخدام sudo:

executed commands

أخيرًا، تمنحك Kibana الفرصة لاستكشاف العديد من الوظائف الأخرى مثل الرسم البياني والتصفية، لذا لا تتردد في الاستكشاف بنفسك.

أفكار نهائية

تعد Elastic Stack حلاً قويًا لتحليل سجلات النظام. ضع في اعتبارك أنه على الرغم من إمكانية إرسال أي سجل أو بيانات مفهرسة إلى Logstash باستخدام Beats، إلا أنها تصبح أكثر فائدة عند تحليلها وهيكلتها من خلال مرشحات Logstash.

حوسبة سعيدة!

author

Hark Labs

المؤلف · CloudSigma

Preslav Dobrev هو مصمم إبداعي في CloudSigma، يركز على هوية أعمال متسقة باستخدام قنوات التسويق التقليدية والمبتكرة. هو بارع في دمج الرؤية الفنية مع التسويق الاستراتيجي لخلق سرد قصصي مؤثر للعلامة التجارية.

التعليقات

لا توجد تعليقات بعد. كن أول من يعلق.