مرحبًا ، اسمي يوجين ، أنا قائد فريق B2B في Citymobil. تتمثل إحدى مهام فريقنا في دعم عمليات التكامل لطلب سيارة أجرة من الشركاء ، ولضمان خدمة مستقرة ، يجب أن نفهم دائمًا ما يحدث في خدماتنا المصغرة. ولهذا تحتاج إلى مراقبة السجلات باستمرار.
في Citymobil ، نستخدم مكدس ELK (ElasticSearch ، Logstash ، Kibana) للعمل مع السجلات ، وكمية البيانات القادمة هناك ضخمة. من الصعب جدًا العثور على مشاكل في هذا الكم الهائل من الطلبات التي قد تظهر بعد نشر كود جديد. ولتعريفهم المرئي ، لدى Kibana قسم لوحة القيادة.
هناك عدد غير قليل من المقالات عن Habré مع أمثلة على كيفية إعداد ELK stack لتلقي البيانات وتخزينها ، لكن لا توجد مواد ذات صلة بإنشاء لوحة تحكم. لذلك ، أريد أن أوضح كيفية إنشاء تمثيل مرئي للبيانات بناءً على السجلات الواردة في Kibana.
تعديل
لتوضيح الأمر ، قمت بإنشاء صورة Docker باستخدام ELK و Filebeat. وتوضع في وعاء صغير
استنساخ مستودع التكوين docker-compose
وإعدادات ELK ، وقم بتشغيلها باستخدام الأمر docker-compose up
. تعمد عدم إضافة مفتاح -d
لمشاهدة تقدم مكدس ELK.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
إذا تم تكوين كل شيء بشكل صحيح ، فسنرى إدخالًا في السجلات (ربما ليس على الفور ، قد تستغرق عملية تشغيل حاوية مع المكدس بأكمله عدة دقائق):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
في localhost:5061
يجب أن تفتح Kibana.
الشيء الوحيد الذي نحتاج إلى تكوينه هو إنشاء نمط فهرس لـ Kibana بمعلومات حول البيانات التي يجب عرضها. للقيام بذلك ، سنقوم بتنفيذ طلب curl أو تنفيذ سلسلة من الإجراءات في الواجهة الرسومية.
$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
-H 'Content-Type: application/json'
-H 'kbn-xsrf: true'
-d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'
إنشاء نمط فهرس عبر واجهة المستخدم الرسومية
للتهيئة ، حدد قسم Discover في القائمة اليسرى ، وانتقل إلى صفحة إنشاء نمط الفهرس.
بالنقر فوق الزر "إنشاء نمط الفهرس" ، نصل إلى صفحة إنشاء الفهرس. في حقل "اسم نمط الفهرس" ، أدخل "logstash- *". إذا تم تكوين كل شيء بشكل صحيح ، فستعرض Kibana أدناه الفهارس التي تندرج تحت القاعدة.
في الصفحة التالية ، حدد حقل المفتاح مع الطابع الزمني ، وهو في حالتنا @timestamp
.
سيؤدي هذا إلى إظهار صفحة إعدادات الفهرس ، ولكن لا يلزم اتخاذ أي إجراء آخر منا في الوقت الحالي.
الآن يمكننا الانتقال إلى قسم Discover مرة أخرى ، حيث سنرى إدخالات السجل.
لوحة المعلومات
في القائمة اليسرى ، انقر فوق قسم إنشاء لوحة التحكم وانتقل إلى الصفحة المقابلة.
انقر فوق "إنشاء لوحة تحكم جديدة" وانتقل إلى الصفحة لإضافة عناصر إلى لوحة التحكم.
انقر فوق الزر "إنشاء جديد" ، وسيطالبك النظام بتحديد نوع عرض البيانات. لدى Kibana عدد كبير منها ، لكننا سننظر في إنشاء تمثيل رسومي لـ "الشريط العمودي" و "جدول البيانات" المجدول. يتم تكوين الأنواع الأخرى من العروض التقديمية بطريقة مماثلة.
يتم تمييز بعض الكائنات المتوفرة بعلامة "ب" و "هـ" ، مما يعني أن التنسيق تجريبي أو في مرحلة الاختبار التجريبي. بمرور الوقت ، قد يتغير التنسيق أو يختفي تمامًا من Kibana.
شريط عمودي
بالنسبة لمثال "الشريط العمودي" ، فلنقم بإنشاء رسم بياني لنسبة حالات الاستجابة الناجحة وغير الناجحة لخدمتنا. في نهاية الإعدادات ، نحصل على الرسم البياني التالي:
سنصنف جميع الطلبات ذات حالة الاستجابة <400 على أنها ناجحة ، و> = 400 على أنها إشكالية.
لإنشاء مخطط "شريطي عمودي" ، نحتاج إلى تحديد مصدر بيانات. حدد نمط الفهرس الذي أنشأناه سابقًا.
بشكل افتراضي ، سيظهر رسم بياني صلب واحد بعد تحديد مصدر البيانات. لنقم بإعداده.
في كتلة "المجموعات" ، اضغط على الزر "إضافة" ، وحدد "X-asis" وقم بإعداد المحور X. دعنا نخصص الطوابع الزمنية لاستلام الإدخالات في السجل. في حقل "التجميع" ، حدد "المدرج التكراري للتاريخ" ، وفي "الحقل" حدد "timestamp" ، للإشارة إلى حقل الوقت. دعنا نترك "الحد الأدنى للفترة الزمنية" في حالة "تلقائي" ، وسوف يتم ضبطه تلقائيًا على شاشة العرض لدينا.
بالنقر فوق الزر "تحديث" ، سنرى رسمًا بيانيًا بعدد الطلبات كل 30 ثانية.
لنقم الآن بإعداد الأعمدة على طول المحور ص. والآن نعرض العدد الإجمالي للطلبات في الفترة الزمنية المحددة.
دعنا نغير قيمة "التجميع" إلى "مجموع الدلو" ، مما سيتيح لنا دمج البيانات للطلبات الناجحة وغير الناجحة. في الحاوية -> كتلة التجميع ، حدد التجميع بواسطة "عوامل التصفية" واضبط التصفية حسب "statusCode> = 400". وفي حقل "التسمية المخصصة" ، نشير إلى اسم المؤشر الخاص بنا لعرض أكثر قابلية للفهم في وسيلة الإيضاح على الرسم البياني وفي القائمة العامة.
بالنقر فوق الزر "تحديث" أسفل مجموعة الإعدادات ، سنحصل على رسم بياني لطلبات المشكلات.
إذا نقرت على الدائرة بجوار وسيلة الإيضاح ، ستظهر نافذة يمكنك من خلالها تغيير لون الأعمدة.
الآن دعنا نضيف بيانات عن الطلبات الناجحة إلى المخطط. في قسم "المقاييس" ، انقر على الزر "إضافة" وحدد "المحور ص".
في المقياس الذي تم إنشاؤه ، نقوم بإجراء نفس الإعدادات للطلبات الخاطئة. فقط في الفلتر نحدد "statusCode <400".
من خلال تغيير لون العمود الجديد ، نحصل على عرض لنسبة الطلبات المشكوك فيها والناجحة.
بالنقر فوق الزر "حفظ" في الجزء العلوي من الشاشة وتحديد الاسم ، سنرى الرسم البياني الأول على لوحة التحكم.
بيانات الجدول
الآن ضع في اعتبارك العرض الجدولي "جدول البيانات". لنقم بإنشاء جدول يحتوي على قائمة بجميع عناوين URL التي تم طلبها وعدد هذه الطلبات. كما هو الحال مع مثال الشريط العمودي ، نختار أولاً مصدر بيانات.
بعد ذلك ، سيتم عرض جدول بعمود واحد على الشاشة ، والذي يوضح العدد الإجمالي للطلبات للفترة الزمنية المحددة.
سنقوم فقط بتغيير كتلة "المجموعات". انقر فوق الزر "إضافة" وحدد "تقسيم الصفوف".
في حقل "التجميع" ، حدد "المصطلحات". وفي الحقل الذي ظهر "الحقل" حدد "url.keyword".
من خلال تحديد قيمة "عنوان URL" في حقل "التصنيف المخصص" والنقر على "تحديث" ، سنحصل على الجدول المطلوب مع عدد الطلبات لكل من عناوين URL للفترة الزمنية المحددة.
في الجزء العلوي من الشاشة ، انقر فوق الزر "حفظ" مرة أخرى وحدد اسم الجدول ، على سبيل المثال عناوين URL. دعنا نعود إلى لوحة التحكم الرئيسية ونرى كلا العرضين اللذين تم إنشاؤهما.
العمل مع لوحة القيادة
عند إنشاء لوحة المعلومات ، نقوم بتعيين معلمات العرض الرئيسي فقط في إعدادات كائن العرض. ليس من المنطقي تحديد بيانات عوامل التصفية في الكائنات ، على سبيل المثال ، "نطاق التاريخ" ، و "التصفية حسب وكيل المستخدم" ، و "التصفية حسب بلد الطلب" ، وما إلى ذلك. من الأنسب تحديد الفترة الزمنية المطلوبة أو تعيين التصفية اللازمة في لوحة الاستعلام ، الموجودة فوق الكائنات.
سيتم تطبيق المرشحات المضافة في هذه اللوحة على لوحة التحكم بأكملها ، وسيتم إعادة بناء جميع كائنات العرض وفقًا للبيانات التي تمت تصفيتها الفعلية.
اختتام
Kibana هي أداة قوية تتيح لك تصور أي بيانات بطريقة مناسبة. حاولت إظهار إعداد النوعين الرئيسيين للعرض. ولكن يتم تكوين الأنواع الأخرى بطريقة مماثلة. وستتيح لك وفرة الإعدادات التي تركتها "خلف الكواليس" تخصيص المخططات بمرونة كبيرة لتناسب احتياجاتك.
المصدر: www.habr.com