سجل ELK مركزي لممارسة هندسة فريق R & D الصغيرة والمتوسطة الحجم

المؤلف Zhang Huiqing، Yang Li

تحرير Xiaozhi

في المجتمع ، ليس هناك نقص في الرسوم البيانية للهندسة المعمارية ، ولكن هناك نقص في ممارسات تنفيذ العمارة المرجعية العملية. يبدو هيكل الشركات الكبيرة دائمًا فاقدًا للوعي ، ولكن عندما يتم استخدامه حقًا كمرجع ، غالبًا ما يكون من المستحيل البدء. ربما ، يمكن نسخ الممارسات المعمارية لفرق البحث والتطوير الصغيرة والمتوسطة الحجم؟ هذه المقالة هي السادسة من عمود Zhang Huiqing- "ممارسة هندسة فريق البحث والتطوير الصغيرة والمتوسطة". نتحدث اليوم عن ELK.

ملحق لسلسلة من المقالات

يمكن قراءة المقالات التالية بالضغط على العنوان

سجل مركزي واحد

يمكن تقسيم السجلات إلى سجلات النظام ، وسجلات التطبيق ، وسجلات الأعمال. ويستخدم موظفو O & M سجلات النظام ، ويستخدم موظفو البحث والتطوير سجلات التطبيق ، ويستخدم مشغلو السجلات التجارية السجلات. نوضح بشكل رئيسي هنا سجل التطبيق ، من خلال سجل التطبيق لفهم المعلومات وحالة التطبيق ، وكذلك تحليل سبب خطأ التطبيق.

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

1.1 مقدمة في ELK

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

Elasticsearch هو محرك بحث موزع مفتوح المصدر يوفر ثلاث وظائف: البحث والتحليل وتخزين البيانات. خصائصه هي: التوزيع ، الاكتشاف التلقائي ، تقسيم الفهرس التلقائي ، آلية نسخ الفهرس ، واجهة نمط RESTful ، مصادر بيانات متعددة ، وتحميل البحث التلقائي.

Logstash هي أداة مفتوحة المصدر لجمع السجلات وتحليلها وتصفيةها. يدعم أي نوع من أنواع السجلات تقريبًا ، بما في ذلك سجل النظام وسجل الأعمال وسجل الأمان. يمكنه استقبال السجلات من العديد من المصادر ، بما في ذلك Syslog والرسائل (مثل RabbitMQ) و Filebeat ؛ يمكنه إخراج البيانات بطرق متنوعة ، بما في ذلك البريد الإلكتروني و WebSockets و Elasticsearch.

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

1.2 ، العمارة ELK

الشكل التالي هو مخطط معماري لإدارة السجلات المركزية ELK. لأسباب تتعلق بالأداء ، اخترنا استخدام شكل Beats + EK لبناء نظام مركزي لإدارة السجلات.

العمارة ELK

الثانية ، طريقة التكوين

2.1 ، البحث المرن

بعد اكتمال نشر Elasticsearch ، تحتاج إلى تغيير الخصائص الرئيسية في ملف التكوين elasticsearch.yml: الكتلة ، الاسم ، node.name ، network.host ، discovery.zen.ping.unicast.hosts. من بينها ، عندما يتم نشر Elasticsearch في وضع المجموعة ، يجب تكوين خاصية discovery.zen.ping.unicast.hosts.

2.2 ، Logstash

عن طريق تكوين الإدخال والتصفية (اختياري) والإخراج في ملف filebeat-pipeline.conf لاستكمال جمع البيانات والتصفية والإخراج ، كما هو موضح في الشكل التالي:

تكوين Logstash

ثم استخدم ملف filebeat-pipline.conf لتمكين خدمة Logstash ، كما هو موضح في الشكل التالي:

تمكين خدمة Logstash

ملاحظة: نظرًا لاستخدام حل Beats + EK لتنفيذ إدارة السجل المركزية ، فإن Logstash غير مطلوب.

2.3 ، كيبانا

من خلال تغيير محتوى ملف التهيئة kibana.yml للاتصال بعنوان خدمة Elasticsearch الصحيح ، ما عليك سوى تهيئة خاصية elasticsearch.url ، انظر الشكل الأول أدناه. بعد اكتمال التهيئة ، قم بتنفيذ الأمر [bin / kibana &] لتمكين خدمة Kibana ، انظر الشكل الثاني أدناه. أخيرًا ، يمكنك فتح صفحة إدارة Kibana (عنوان الوصول: في المتصفح لعرض السجل.

تعليمات تكوين كيبانا

تفعيل خدمة كيبانا

2.4 ، Filebeat

يتضمن محتوى ملف التكوين filebeat.yml بشكل أساسي Filebeat و Output و Shipper (اختياري) و Logging (اختياري). يحدد Filebeat بشكل أساسي معلومات ملف السجل للمراقبة ، ويقوم Output بشكل أساسي بتكوين وجهة الإخراج لبيانات السجل.

في ملف filebeat.yml ، تكون اصطلاحات التسمية لقيم السمات الرئيسية كما يلي:

1. اصطلاح التسمية للحقول. معرف التطبيق هو {AppID}.

2. اصطلاح التسمية للحقول. AppName هو {product line English name}. {Project English name} (إذا كان اسم اللغة الإنجليزية للمشروع يتكون من كلمتين إنجليزيتين أو أكثر ، يرجى استخدامه. لفصل الكلمات).

3. تجدر الإشارة إلى أنه بالنسبة لسمة الفهرس: القيمة المحددة بواسطة الفهرس (الفهرس) هي {product line English name} ، ولكن يجب أن تكون جميع الأحرف الإنجليزية صغيرة ، ولا يمكن أن تبدأ بشرطة سفلية أو تحتوي على فاصلة.

يظهر مثال التكوين filebeat.yml في الشكل أدناه:

تكوين نموذج لملف filebeat.yml

على أي خادم يتم تخزين ملف السجل ، الخادم الذي يتم نشر خدمة ملفات الملف عليه. خطوات لتمكين خدمة filebeat على نظام تشغيل Windows:

1. ابدأ البحث أسفل النوافذ ، وأدخل powershell ، وافتح موقع ملف powershell ، وانقر بزر الماوس الأيمن على powershell.exe للتشغيل كمسؤول ، وأدخل نافذة PowerShell.

أو ابدأ تشغيل cmd.exe كمسؤول ، وأدخل الأمر powershell ، وأدخل نافذة PowerShell.

ملحوظة:

يرجى التأكد من فتح نافذة PowerShell كمسؤول ، وإلا إذا قمت بتشغيل البرنامج النصي .ps1 في الخطوة 2 أدناه ، فسوف تتلقى رسالة خطأ تفيد بأنك لا تملك الإذن لإنشاء خدمة لضرب الملفات:

2. انتقل إلى الدليل حيث يوجد برنامج تنفيذ filebeat ، على سبيل المثال: cd 'E: \ ELK \ filebeat-1.3.0-windows' ، ثم نفذ الأمر: powershell.exe -ExecutionPolicy UnRestricted -File. \ Install-service-filebeat.ps1.

3. يمكنك استخدام الأوامر التالية لعرض خدمة Filebeat وتمكينها وإيقافها في نافذة PowerShell:

  • عرض حالة خدمة filebeat: Get-Service filebeat

  • بدء تشغيل خدمة filebeat: بدء خدمة filebeat

  • إيقاف خدمة filebeat: إيقاف خدمة filebeat

3. كيفية الاستخدام

3.1 ، Log4Net سجل محلي

1. مواصفات مسار تخزين السجل: {drive letter}: \ Log4Net {AppID} \ ، حيث يكون AppID هو الرمز المكون من ستة أرقام للمشروع الذي قمنا به. على سبيل المثال: D: \ Log4Net \ 110107 \.

2. محتوى التكوين Log4net.config:

< ؟ xml version = "1.0" encoding = "utf-8"؟ >   < ترتيب >   < التكوينات >   < اسم القسم = "log4net" type = "System.Configuration.IgnoreSectionHandler" / >   < / configSections >   < إعدادات التطبيقات >   < / إعدادات التطبيقات >   < log4net >   < اسم التطبيق = "FileAppender" type = "log4net.Appender.RollingFileAppender" >   < ! -AppID 150202 ، يستخدم لتمييز سجل التطبيق- >   < قيمة الملف = "D: \ Log4Net \ 150202 \" / >   < قيمة rollingStyle = "مركب" / >   < قيمة datePattern = "yyyy-MM-dd" .log "" / >   < قيمة staticLogFileName = "false" / >   < الاسم المميز = القيمة "Encoding" = "utf-8" / >   < أقصى قيمة للملف = "100 ميجا بايت" / >   < countDirection value = "0" / >   < قيمة maxSizeRollBackups = "100" / >   < قيمة appendToFile = "true" / >   < نوع التخطيط = "log4net.Layout.PatternLayout" >   < convertPattern value = "وقت التسجيل: تاريخ مؤشر الترابط: مستوى السجل: -5 مستوى فئة السجل: رسالة سجل المسجل: message newline" / >   < / نسق >   < / مُلحق >   < اسم المسجل = الإضافة "FileLogger" = "false" >   < قيمة المستوى = "DEBUG" / >   < appender-ref ref = "FileAppender" / >   < / مسجل >   < / log4net >   < / ترتيب >

وأشار:

  • تم ضبط الحد الأقصى لحجم الملف على 100 ميجابايت ؛ يُرجى تعيين عدد الاتجاه على عدد صحيح أكبر من -1 ؛ وتم ضبط الحد الأقصى للحجم على 100.

  • مواصفات محتوى ملف السجل: كل متطلبات محتوى السجل في ملف السجل هي "رسالة سجل فئة خطأ مستوى سجل وقت سلسلة الرسائل".

3.2 ، استعلام السجل

استنادًا إلى سجل استعلامات كيبانا (عنوان الوصول: ، بشكل أساسي من خلال الخطوات التالية:

1. حدد مكتبة فهرس الأعمال.

2. حدد النطاق الزمني.

3. أدخل المحتوى المراد البحث عنه للاستعلام الدقيق ، أو أدخل * للاستعلام الغامض.

4. انقر فوق رمز التوسيع لكل سجل لعرض المعلومات التفصيلية للسجل.

5. في الجزء الأيسر من واجهة Kibana ، من الأعلى إلى الأسفل يوجد مربع اختيار مكتبة الفهرس ، وقائمة مجموعة الحقول المحددة (الحقول المحددة) ، وقائمة مجموعة الحقول المتاحة (الحقول المتاحة). قم بتغيير العرض التقديمي لجدول السجل على يمين كيبانا بإضافة الحقول المتاحة إلى قائمة مجموعة الحقول المحددة.

يرجى الرجوع إلى الصورة التالية:

واجهة سجل الاستعلام كيبانا

4. تنزيل تجريبي ومزيد من المعلومات

  • :

    https://github.com/das2017/Log4NetDemo

  • موقع ELK الرسمي :

    https://www.elastic.co/

  • تعليمات تكوين التعبير العادي :

    https://www.elastic.co/guide/en/beats/filebeat/current/regexp-support.html

نبذة عن الكاتب

Zhang Huiqing ، المخضرم المخضرم في تكنولوجيا المعلومات لأكثر من 10 سنوات ، عمل على التوالي كمعماري Ctrip ، كبير المهندسين المعماريين لمجموعة Guda ، CTO of CTS ، وما إلى ذلك ، وقاد ترقية وتحويل البنية التقنية للشركتين. الآن انتبه إلى الهندسة المعمارية والكفاءة الهندسية والمطابقة والتكامل بين التكنولوجيا والأعمال والقيمة التكنولوجية والابتكار.

وقد عمل يانغ لي ، الذي لديه سنوات عديدة من الخبرة في مجال البحث والتطوير في نظام تطبيقات الإنترنت ، في مجموعة Guda وهو حاليًا مهندس أنظمة في Zhongqing Yiyou ، وهو مسؤول بشكل أساسي عن تصميم بنية نظام الأعمال التجارية لمركز R & D للشركة وتراكم التكنولوجيا الجديدة والتدريب. في هذه المرحلة ، نركز بشكل أساسي على البرامج مفتوحة المصدر ، وبنية البرمجيات ، والخدمات الدقيقة ، والبيانات الضخمة.

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

حاوية والنوادي الليلية الرياح ...... والابتعاد عن صالة الألعاب الرياضية التقليدية لمعرفة؟

البالغة من العمر 59 عاما شيري تشونغ صورة: رودي نفخ في بوق اللحوم الوجه، وقالت انها لا تحب الرطوبة ولكن أيضا إلى ما الحية

الهروب من الشتاء والصيف أخرى في سانيا

أصدقاء الربيع بسرعة - واسمحوا لي أن لا تأكل الخيزران يطلق النار شو نمط الحياة

ضبطت الجهات التنظيمية المحافظات الشركات الربط الفاشلة

وضع أضواء السنة الصينية الجديدة سونغكران داي لي

سبعة أمثلة للتصميم التعبئة والتغليف لندن يمكن قراءتها؟ لا يمكن!

بعد انقطاع دام 10 عاما، شارلين الغناء JJ "الدمل الصغير"، هما الناس محبطة

Q أخبار شو علي صيانة إعادة تشغيل دوبو، العودة إلى لغة 2017 في اللغة الأسرع نموا، WebAssembly وقد تم دعم جميع المتصفحات الرئيسية

ثلاثة ميديا تيك اقتراح الفيديو العملاقة، وتحاول أن تفعل؟

"مع العلم لا" نتيجة إمارة صغيرة الرب شين ويشتبه في أنها تغير؟ وقالت مستخدمى الانترنت غاضبة غير مقبولة