البحث في الموقع
المحتوى عن 'مراقبة'.
-
إن أقمت مأدبة عشاء، فسترغب بأن تجعل منها مثالية يتحدث عنها الجميع، وستَصب جلّ اهتمامك في اختيار الطعام والشراب، وستَحرص على تناغم الضيوف مع بعضهم البعض، ولكن ماذا لو حدث ما كنت تخشاه؟ وأطبق الصمت على الحضور بينما يتجادل اثنان من ضيوفك مختلفين في وجهات النظر حول موضوع ما، وبكونك المضيف ستكون مهمتك هي حلّ هذا النزاع. يصف السيناريو السابق إلى حد كبير مُدراء منصات الإعلام الاجتماعي social media managers، فالمُتابعون هم الضيوف، وأنت المضيف، فإن أساء الضيوف التصرّف، كيف لك أن تُسيّر الأمور وتُنهي هذه المأدبة بسلام؟ نشر أحد المنتديات (World Editor) مؤخرًا دليلًا ودراسة حول موضوع إدارة التعليقات، مشيرًا إلى ست نقاط يجب التقيّد بها للحصول على نقاشات متحضرة وتعزز ثقافة الرأي والرأي الآخر، إليك هذه النقاط الست: 1. إرفاق/نشر إرشادات عامة للمشاركات والتعليقات يُستفاد من هذا النوع من إرشادات الاستخدام لوصف توجّه موقعك والبيئة التي يتبناها، فالتصريح بوضوح بعدم استخدام لغة جارحة وعدوانية هو أمر أساسي في تحقيق الخطوة الأولى نحو الإدارة الجيدة، مع العلم أن العديد من منصات التواصل الاجتماعي تقدّم نظام ترشيح للكلمات، والذي يمكن استخدامه في منع ظهور كلمات الشتيمة أو حتى كلمات مفتاحية معينة للمواضيع المحظورة (الأمور السياسية مثلًا)، ولا يُفترض بصفحة الإرشادات العامة للتعليقات أن تكون معقدة، لا بل على العكس، خذ المثال التالي والذي هو لأحد صفحات الفيس بوك: 2. الاستعانة بمدير لشبكات التواصل Community Manager إن تخصيص شخص ما للاعتناء بقنوات الإعلام الاجتماعي يمكن أن يقدم دفعة كبيرة لشركتك وذلك من خلال الحضور القوي والفعال على الشبكة العنكبوتية، ويمكن لهذا الشخص أن يكون أنت أو شخص ما ذو كفاءة لذلك وتوظيفه لهذه المهمة، حيث سيحرص مدير الشبكات الاجتماعية على رفع مستوى النقاش، ويُشجع التعليقات التي تَخدم أهداف علامتك التجارية. 3. تشجيع فريق العمل على المشاركة في النقاش يُمكن لمشاركات فريق العمل أن يكون لها صدى خاص لدى القراء ورفع مستوى النقاش وجودته، وكما سيكون من الرائع لو استطاعت تعليقاتهم الجمع بين الترفيه والتّثقيف، الأمر الذي سيؤدي إلى عودة الزوّار لقراءة المزيد وربما طلب هذا النوع من المحتوى عالي الجودة، ويتميز فريق العمل عادةً عند الكتابة باستجابته الحسنة إلى النقد وتسليط الضوء على النقاط الأبرز التي تهتم بها الشركة، وحتى أن صحيفة الجارديان أعلنت بقولها: 4. عرض المشاركات القيمة يُمكن القول إن السماح للقرّاء بالإعجاب أو عدم الإعجاب بالتعليق هو أفضل طريقة للحصول على التعليقات المميزة وذات القيمة العالية، ويمنح هذا الأسلوب صاحب التعليق الفضل الذي يستحقه جراء مساهمته بمساهمة تستحق القراءة وأشاد بها الجميع. تُشير إحدى الدراسات إلى أن كل مستخدم يقضي قرابة 15 ساعة و 33 دقيقة على موقع التواصل الاجتماعي فيس بوك شهريًا، ويزداد معدل استخدام شبكات الإعلام الاجتماعي ازديادًا مستمرًا، ولذلك فإن فرصة نجاح علامتك التجارية مرتبطة مع تعليقات ومساهمات المتابعين والمهتمين بتجارتك، ويُمكن الإشارة هنا إلى إحدى الإحصائيات من موقع Statista والتي تُشير إلى ازدياد استخدام أجهزة الهاتف على حساب أجهزة الحاسب، الأمر الذي يزيد من أهمية شبكات الإعلام الاجتماعي social media أكثر من ذي قبل. 5. أعلم صاحب المنشور المحذوف بسبب حذف منشوره إن لم يكن يقصد المعلّق الإساءة لأحد بتعليقه سيجد نفسه محتارًا عندما يتمّ حذف تعليقه من دون معرفة سبب الحذف، ولذلك من المهم تنبيه المستخدم وتوضيح أسباب الحذف، بدلًا من إزالة المحتوى من دون تقديم أي سبب، وتُشير صحيفة ‹‹بي بي سي›› في هذا الصدد: عندما يقوم أحد المشرفين بإزالة تعليق ما فإنه يختار من القائمة المنسدلة سببًا للحذف، وهذا السبب سيظهر للمستخدم ليكون على دراية بذلك. 6. طلب الاستشارة القانونية والمشاركة بين فريق العمل لا تتوفّر في بعض الأحيان معلومات كافية لتصنيف تعليقٍ ما (من النّاحية القانونية) على أنه تشهير وإساءة وخاصّة عندما يتعلّق الأمر بالمساهمات العابرة والتي تكون صادرة من أسماء مجهولة (بدون اسم أو بأسماء مستعارة)، ولذلك يجب على فريق العمل، ابتداءً من المشرف إلى المدير وحتى صانعي المحتوى في المجتمع، الاطلاع الكامل على الحالة قبل البت في أمرها. الختام إن الاختلاف في الآراء هو ما يُعزز المحادثة ويقوي النقاش، وبدون هذا الاختلاف ستكون قنوات الإعلام الاجتماعي عبارة عن منصاتٍ مملة وخاملة ولا تصلح للترويج للماركة التجارية، وقد يميل البعض إلى إغلاق خاصية التعليق من الأساس، ولكن يجب الانتباه إلى نقطة هنا وهي أن النقاش والقيل والقال هو ما يزيد من شعبية العلامة التجارية، وكل ما يجب فعله هو إبعاد المتطفلين بين الحين والآخر. ترجمة -وبتصرف- للمقال: How To Moderate Social Media لصاحبه: Georgie Faure. حقوق الصورة البارزة: Designed by Freepik.
-
واصل فريقي الوقوع في نفس النقطة مرارًا وتكرارًا في المراحل الأولى من كل مشروع. حتى عندما ملكنا مُحلِّلًا خاصًّا بسهولة الاستخدام بين أيدينا، لازلنا نعتمد في النهاية على الإحساس وصنع قرارات مبنية على العلم. أعطانا تحليل البيانات صورةً واضحةً عن ما كان يحدث ولكنه جعلنا نخمن، لماذا كان يحدث أصلًا. كنا قد حصلنا على ردود فعل هائلة من فحص سهولة الاستخدام، ولكننا شعرنا وكأن ردود الفعل لم تكن جديرة بالثقة حيث أن المستخدمين يتصرفون بشكل مختلف عندما يدركون بأنه تتم مراقبتهم. لذلك قمنا بصنع Jaco، وهي أداة تمكنك من رؤية ما يفعله الناس على موقعك أو تطبيقك. مهما كان تطبيقك معقدًا أو أيًا كان إطار العمل الذي تستعمله، فإن Jaco بإمكانه إعادة عرض كل جلسة مستخدم على شكل فيديو. خلال عملية تطوير Jaco، تعلمنا الكثير عن حالة الاستخدام لقدرة كهذه، واستخدمنا في الحقيقة Jaco لتطوير نفسه. التالي هو قصة حول كيف أضفنا Jaco لخط عملنا التقليدي وعن القيمة الإضافية التي ربحناها منه. بناء نسخة تجريبية لم يكن لدينا أدنى فكرة عن إذا ما كان Jaco شيءً يريده أو يحتاجه الناس، لذلك قمنا ببناء نسخة تجريبية لاختبار ردة الفعل. وكان هذا بتطوير إثبات عن الفكرة POC، وقررنا أن نشرك صفحتين أساسيتين فيها: صفحة الجلسات (لوحة التحكم الخاصة بنا) والتي تعرض قائمة بكل الجلسات المسجلة والأداء الوظيفي الأساسي لتصفية الجلسات حسب التاريخ، واسم المستخدم ورابط الصفحة الإلكتروني (بداخل الجلسة). صفحة المشغّل، حيثما يمكنك عرض تسجيل فيديو لمستخدمين حقيقيين ومشاهدتهم يتفاعلون مع موقعك. كل تفاعل خاص بمستخدم يتم ادراجه في نسخة على الجانب الأيمن من الصفحة ويتم أيضًا نقله للمخطط الزمني. الهدف الوحيد هنا كان أن تقدر على تخزين ومن ثم عرض جلسات المستخدم. لم يكن أي مصمم يعمل معنا وقمنا بإعطاء اهتمام قليل لتجربة المستخدم في ذلك الوقت. جعل الزبائن يستخدمون منتجاتنا الأساسية بعد أن أصبح لدينا شيءٌ يعمل فعليًا، كان قد حان الوقت للحصول على أول مختبرين لنسختنا التجريبية. وبما أن هدفنا كان إيجاد شركات ناشئة في مراحل متعددة لكسب فهم أفضل عن التناسب السوقي لمنتجنا، فكرنا في أفضل الأماكن التي يمكننا الذهاب إليها لإيجادهم، لذلك قمنا بحضور مقابلات ومحادثات موجهة نحو الشركات الناشئة واستطعنا أن نجد مختبري نسخة تجريبية متحمسين. قام أول المختبرين بتسليمنا قائمة بطلبات عن المزايا وأعطونا ردود فعلة ثمينة وملخّصة بالأسفل: الشركات الناشئة في المراحل المتقدمة: "على الرغم من أننا نتعلم شيئًا جديدًا من كل جلسة نشاهدها، لدينا أسئلة معينة نود تحريها باستخدام Jaco ولكن ينقص علينا الأدوات اللازمة لعمل ذلك." أخبرنا هذا بأننا احتجنا إلى إضافة المزيد من الفلاتر أو عوامل التصفية وإلى عمليات التكامل للسماح لزبائننا الذين يملكون حركة اتصالات كثيرة بأن يستخدموا Jaco. الشركات الناشئة في المراحل المبكرة: "مشاهدة تفاعل مستخدمينا مع منتجاتنا قام بإقصاء التخمينات من عملية صنع القرارات الصعبة." هذا أخبرنا بأن الشركات الناشئة في المراحل المبكرة يكتسبون الكثير من القيمة باستخدام Jaco. في ذلك الوقت، كنا شركة ناشئة في المراحل المبكرة، لذلك قررنا أن نجرب دراسة حالة على منتجنا الخاص واستخدام Jaco لمراجعة التسجيلات الخاصة بمختبري النسخ التجريبية. استخدام تسجيلات العملاء لتحسين Jaco لاحظنا نمطًا مرتبطًا بالطريقة التي يستخدم فيها عملاؤنا صفحة المشغّل. عندما يبدأ مستخدم جديد باستخدام منتجنا، فهو يقضي الوقت في مشاهدة مقاطع الفيديو المجمعة من البداية للنهاية. بعد فترة معينة، يبدأ المستخدم بمشاهدة المقاطع بسرعة مضاعفة 3 أضعاف، ولاحقًا، بينما يصبح على دراية أكبر بالمنتج، يبدأ باستخدام نسخة طبق الأصل لفحص محتوى الجلسة، يقوم أيضًا بالبحث عن مزايا في المخطط الزمني. بناءً على ما أظهر لنا Jaco، صنعنا ثلاثة تغييرات على ميزة النص: قمنا بتحريكها للجهة اليسرى حيث أصبحت مرئية أكثر بحثنا بالأصل عن السلوك في المخطط الزمني (وليس في النص)، لكن بما أننا لاحظنا أن العديد من المستخدمين يقومون بالضغط على فعالية ما في النص قبل أن يضغطوا على العلامة المترابطة في المخطط الزمني، قررنا أن نضيف هذا السلوك للنص أيضًا. أضفنا أيقونات وألوان مختلفة لكل نوع من أنواع الفعاليات في النص، بجانب سلوك التمرير التلقائي لجعل هذا العنصر ينبثق ويحث على تفاعل المستخدم. خلال يومين، 73% من مستخدمينا أصبحوا خبراء في صفحة المشغّل: بدأوا باستخدام النص لفحص الجلسة والبحث عن أجزاء معينة من التسجيلات، واستخدموا ميزة البحث لرؤية الأجزاء الأكثر صلة فقط من التسجيل. أنشأ هذا التغيير ردود فعل إيجابية من عملائنا، وبدأنا بالتفكير بطرق نستطيع من خلالها تطبيق ما تعلمناه في صفحة المشغّل على بقية Jaco. فكرنا بأخذ المخطط الزمني للجلسة من صفحة المشغّل ونسخها في صفحة الجلسة، وبالتالي مساعدة عملائنا على البحث بشكل أسرع في أكثر من جلسة واحدة على حدة. قمنا بتجسيد أفكارنا واختبارها بواسطة العديد من جلسات واحد لواحد مع عملائنا. بعد هذه العملية السريعة، صممنا النماذج بالأسفل: استثمرنا معظم تركيزنا في صنع إصدار أصغر من المخطط الزمني، وأضفنا المعلومات من النسخة طبق الأصل. عرض المخطط الزمني في صفحة الجلسات أعطى عملاءنا القدرة على فهم الإيقاع والمستوى الخاص بارتباط المستخدم في الجلسة بنظرة سريعة فقط. بعد ذلك، صنعنا نموذجًا تجريبيًا سريعًا. بعد اختبار فكرتنا الجديدة مع عملائنا، استنتجنا بأنه بينما كانت ردود الأفعال المتعلقة بفكرة هذا العنصر موجبة، بعض عملائنا شعروا بأن عملية التصفية الخاصة بنا كانت واهنة ومعقدة. أدركنا بأنه على الرغم من أن هذا الحل هو خطوة جيدة في الإتجاه الصحيح، كان لا يزال هنالك عمل يجب القيام به. أنشأنا نماذج جديدة مع اعتبار ردود الفعل، مما أدى للتصميم التالي: وبجانب عوامل التصفية الواهنة، أردنا حلًا يعطي الجدول مساحة أفقية أوسع والمزيد من الفراغ للمعلومات. قررنا أن نزيل العمود الأيسر وبناء واجهة جديدة كليًا للشرائح وميزة التصفية. بدت الواجهة الجديدة لعوامل التصفية أكثر بديهية، مرونة وأسهل في الاستخدام. استخدمنا عوامل تصفية JIRA كمرجع. أحببنا كيف يسمح JIRA باختيار كيفية إدخال استعلام أو قسم. بما أن سلسلة عملائنا الأساسية تتضمن مصممين ومالكي منتجات على طرف، وقراصنة على الطرف الآخر، فإن هذا حل مثالي لنا. وها هو التصميم النهائي: الملخص بمجرد إكمالنا دراسة الحالة الخاصة بنا، تعلمنا بأن Jaco يعود علينا بالفائدة بشكل أفضل عند إضافته لخط العمل الخاص بنا بالطرق التالية: بعد تحليل كل معلوماتنا من تحليلات جوجل Google Analytics لمعرفة حالتنا، نستخدم Jaco لتحديد كيف يجب علينا تحسين الأشياء. بعد كل نشر، نستخدم Jaco لرؤية الجلسات التي تم فيها استخدام ميزتنا الجديدة لكي نسبق المنحنى ونتنبأ بأداء الإعلان الجديد. هذا يمكننا من أن نتحقق من الفاعلية بدون الحاجة للانتظار لكمية كبيرة من حركة الاتصالات الخاصة بالتحاليل. مكنتنا هذه الطريقة من أن نكون معتمدين على البيانات خلال مرحلتنا المبكرة عندما لم تكن حركة الاتصالات الخاصة بنا كثيفة بشكل كافي ليتم تجميعها، وهذه الطريقة تساعدنا الآن بالتحرك بشكل أسرع وأن نكون معتمدين على البيانات بشكل أكبر حيث أننا نحصل على ردود فعل مباشرة من عملاء حقيقيين في غضون ساعة بعد أي طرح جديد. يقضي Jaco حاليًا آخر أسابيعه في مرحلة النسخة التجريبية المجانية، ونحن نعمل بحيوية لإضافة المزيد من التكاملات وعوامل التصفية المتقدمة. ننوي في المستقبل القريب بأن نضيف المزيد من الأدوات التي تسمح لمالكي المنتجات بأن يحصلوا على بيانات مجتمعة متعلقة باستخدام منتجهم من قبل كل من الجلسات وجوانب المستخدمين. ترجمة -بتصرف- للمقال Creating a tool that records user interactions لصاحبه Ran Klein
-
- مراقبة المستخدم
- تسجيل
- (و 4 أكثر)
-
جمعنا في هذا المقال 10 أدوات تساعد مستخدمي لينكس في مهامّ متنوعة مثل مراقبة الشبكة، فحص النظام وأوامر أخرى للرفع من الإنتاجية. الأداة w يُظهر أمر w المستخدمين مسجلي الدخول إلى النظام والعمليات التي ينفذونها: w أضف الخيار h- للحصول على المساعدة: w -h nmon وهي أداة تعرض معلومات عن أداء النظام، يمكن تثبيتها على أوبنتو بالأمر: sudo apt-get install nmon ثم بعد التثبيت ننفذ الأمر: nmon يمكن للأداة تحصيل معلومات عن استخدام الشبكة، المعالج والذاكرة. اضغط على حرف c لمعلومات عن استخدام المعالج: وحرف n لمعلومات عن الشبكة: تعطي الأداة بالضغط على حرف d معلومات عن استخدام القرص الصلب: ncdu وهي أداة تُستعمَل لتحليل استخدام مساحة القرص الصلب. للتثبيت على أوبنتو نفذ الأمر: sudo apt-get install ncdu وللاستخدام: ncdu / تأخذ الأداة معطى يمثّل المجلد الذي نريد معرفة مساحته على القرص الصلب. في المثال أعلاه حدّدنا المجلّد الجذر. قد يأخذ تحليل القرص بعض الوقت حسب حجمه، ثم تظهر النتيجة: استخدم الأسهم للانتقال بين قائمة المجلدات، وزر Enter لاختيار مجلد، n لترتيبها حسب الاسم و s لترتيبها حسب الحجم (تُرتّب المجلدات مبدئيا حسب الحجم). slurm تُستخدَم هذه الأداة لمراقبة تدفق البيانات عبر الشبكة حيث تظهرها في شكل منحنيات بيانية. sudo apt-get install slurm استخدم الخيار i- لمراقبة واجهة شبكة محددة: slurm -i eth1 اضغط زر l و c للانتقال بين طريقتي العرض، r لتحديث الشاشة و q للخروج. findmnt يُُستخدَم أمر findmnt للعثور على نظم الملفات المركّبة Mounted. كما يُستخدَم لتركيب أو نزع تركيب أجهزة طرفية عند الحاجة. findmnt نستخدم خيار l- للعرض على هيئة لائحة. findmnt -l عرض نظم الملفات المركّبة في ملف fstab: findmnt -s يمكن أيضا البحث عن نظم الملفات حسب النوع: findmnt -t ext4 dstat هي أداة مجمَّعة لمراقبة استخدام الذاكرة، عمليات النظام وأداء القرص الصلب. تُعدّ dstat بديلا جيدا لكل من ifstat ،iostat و dmstat. للتثبيت: sudo apt-get install dstat نفذ أمر dstat للحصول على معلومات مفصّلة عن استخدام المعالج، القرص الصلب والشبكة. يتيح الخيار c- تركيز المعلومات المعروضة على المعالج: dstat -c كما يمكن استخدام الخيار l- مع c- لمعرفة متوسّط استخدام المعالج لدقيقة، 3 دقائق أو 15 دقيقة. يوجد خيار D-الذي يمكن من متابعة أداء تجزئة قرص صلب بدلا من كامل القرص (d- لعرض أداء القرص فقط دون بقية الإحصاءات): dstat -dD sda7 saidar أداة أخرى تعمل في سطر الأوامر لمراقبة إحصاءات النظام مثل استخدام القرص الصلب، الشبكة، الذاكرة، مساحة الإبدال Swap وغيرها. للتثبيت: sudo apt-get install saidar ثم ننفذ أمر saidar للحصول على إحصاءات عن مختلف موارد النظام. يمكن استخدام الخيار c- لتلوين المخرجات. saider -c ss تأتي ss (اختصار لـSocket statistics) بديلا لأداة netstat لتجميع معلومات من فضاء النواة Kernel، تتميّز بالسرعة مقارنة مع netstat. لعرض جميع الاتصالات (نستخدم less لتسهيل تصفح المخرجات، اضغط على زر المسافة للانتقال للشاشة الموالية): ss |less يمكن استخدام الخيار A- لحصر النتائج حسب النوع: ss -A tcp كما توجد إمكانية عرض أسماء ومعرّفات العمليات pid: ss -ltp ccze تتيح هذه الأداة عرض السجلات Logs بهيئة أكثر جاذبية، للتثبيت نفذ الأمر: sudo apt-get install ccze مثال على الاستخدام: tailf /var/log/syslog | ccze تمكّن الأداة أيضا من حفظ السجلات بنفس طريقة العرض في ملف HTML: tailf /var/log/syslog | ccze -h > /path_to_file.html يعرض الأمر عند استخدام الخيار l- وحدات الأداة (أنواع السجلات التي تتعامل معها). ranwhen.py وهو سكربت python يعمل في الطرفية لعرض نشاطات النظام بيانيا، ينشئ السكربت منحنيات بيانية ملوّنة لعرض تفاصيل الأنشطة. للتثبيت على أوبنتو أضف المستودع التالي: sudo apt-add-repository ppa:fkrull/deadsnakes ثم حدّث النظام: sudo apt-get update وثبّت الإصدار 3.2 من python: sudo apt-get install python3.2 نزّل السكربت: wget -c https://github.com/p-e-w/ranwhen/archive/master.zip ثم فك ضغطه: unzip master.zip && cd ranwhen-master بإمكاننا الآن تنفيذ الأداة: python3.2 ranwhen.py ترجمة - وبتصرّف - لمقال Ten 10 Useful Utilities For Linux Users لصاحبه Rajneesh Upadhyay.
-
المراقبة هي جزء مهم من إدارة الخواديم والخدمات الأساسية؛ تُراقَب معظم الخدمات الشبكية للأداء (performance) أو التوفر (availability) أو كليهما؛ سيَشرح هذا الفصل طريقة تثبيت وضبط Nagios لمراقبة التوفر، و Munin لمراقبة الأداء. سنستخدم في أمثلة هذا الفصل خادومين بأسماء server01 و server02؛ سيُضبَط server01 مع Nagios لمراقبة الخدمات التي عليه وعلى الخادوم server02؛ وسيُضبَط server01 مع Munin لجمع المعلومات من الشبكة، باستخدام حزمة munin-node، وسيُضبَط server02 لكي يُرسِل المعلومات إلى server01. نأمل أن تساعدك هذه الأمثلة البسيطة في مراقبة الخواديم والخدمات الإضافية في شبكتك. Nagiosالتثبيتأولًا، ثبت الحزمة nagios على خادوم server01، وذلك بإدخال الأمر الآتي في الطرفية: sudo apt-get install nagios3 nagios-nrpe-pluginسيُطلَب منك إدخال كلمة مرور لمستخدم nagiosadmin، تصاريح المستخدم مخزنة في /etc/nagios3/htpasswd.users. ولتعديل كلمة مرور nagiosadmin أو إضافة مستخدمين آخرين إلى سكربتات Nagios CGI، فاستخدم htpasswd الذي هو جزء من حزمة apache2-utils. على سبيل المثال، لتغيير كلمة المرور لمستخدم nagiosadmin: sudo htpasswd /etc/nagios3/htpasswd.users nagiosadminلإضافة مستخدم جديد: sudo htpasswd /etc/nagios3/htpasswd.users steveالآن على خادوم server02، ثبِّت الحزمة nagios-nrpe-server؛ بتنفيذ الأمر الآتي على server02: sudo apt-get install nagios-nrpe-serverملاحظة: سيسمح NRPE لك بتنفيذ فحوصات محلية على الأجهزة البعيدة، هنالك طرق أخرى للقيام بذلك عبر إضافات Nagios أخرى. لمحة عن الضبطهنالك عدة مجلدات تحتوي على ضبط Nagios وملفات التحقق (check files). /etc/nagios3: يحتوي على ملفات الضبط لعمل عفريت nagios، وملفات CGI، والمضيفين ...إلخ./etc/nagios-plugins: يحتوي ملفات الضبط للتحقق من الخدمات./etc/nagios: في المضيفين البعيدين، ويحتوي على ملفات ضبط nagios-nrpe-server./usr/lib/nagios/plugins/: المكان الذي تخزَّن فيه ملفات التحقق الثنائية، استخدم الخيار -h لمشاهدة المساعدة لتحققٍ ما. مثال: /usr/lib/nagios/plugins/check_dhcp -hهنالك وفرة في التحققات التي يمكن ضبط Nagios ليجريها على أي مضيف؛ سيُضبَط Nagios في هذا المثال للتحقق من مساحة القرص الصلب المتوفرة و DNS و MySQL؛ سيُجرى تحقق DNS على server02 وتحقق MySQL على server01 و server02. هنالك بعض المصطلحات التي عندما تُشرَح ستُسهِّل فهم ضبط Nagios: المضيف (host): خادوم أو محطة عمل (workstation)، أو جهاز شبكي ...إلخ. الذي يُراقَب.مجموعة مضيفين (host group): مجموعة من المضيفين المتشابهين؛ على سبيل المثال، تستطيع أن تُجمِّع كل خواديم الويب أو خواديم الملفات ...إلخ.الخدمة (service): الخدمة التي تُراقَب في المضيف، مثل HTTP أو DNS أو NFS ...إلخ.مجموعة الخدمات (service group): تسمح لك بجمع عدِّة خدمات متشابهة مع بعضها بعضًا، هذا مفيد لتجميع عدّة خدمات HTTP على سبيل المثال.جهة الاتصال (contact): الشخص الذي سيُنبَّه عندما يحدث حدثٌ ما؛ يمكن ضبط Nagios ليرسل بريدًا إلكترونيًا أو رسائل SMS ...إلخ.افتراضيًا، يكون ضبط Nagios ليتحقق من HTTP، والمساحة التخزينية المتوفرة في القرص، و SSH، والمستخدمين الحاليين، والعمليات، والحِمل على localhost؛ سيتحقق Nagios أيضًا من البوابة بعمل ping لها. تثبيتات Nagios الضخمة قد يصبح ضبطها معقدًا جدًا، لذلك من الأفضل عادةً البدء بمضيف واحد أو اثنين ثم التوسع بعد ضبطهما جيدًا. الضبطأولًا، أنشئ ملف ضبط للمضيف للخادوم server02؛ ما لم يُذكر عكس ذلك، فعليك تنفيذ هذه الأوامر على server01؛ أدخِل ما يلي في الطرفية: sudo cp /etc/nagios3/conf.d/localhost_nagios2.cfg \ /etc/nagios3/conf.d/server02.cfgملاحظة: في الأوامر السابقة أو التالية استبدل «server01» و «server02» و 172.18.100.100 و 172.18.100.101 بأسماء المضيفين وعناوين IP لخادومَيك. ثم عدِّل الملف /etc/nagios3/conf.d/server02.cfg: define host{ use generic-host ; Name of host template to use host_name server02 alias Server 02 address 172.18.100.101 } # check DNS service. define service { use generic-service host_name server02 service_description DNS check_command check_dns!172.18.100.101 }أعد تشغيل عفريت nagios لتفعيل الضبط الجديد: sudo service nagios3 restartأضف الآن تعريفًا للتحقق من MySQL بإضافة ما يلي إلى /etc/nagios3/conf.d/ services_nagios.cfg: # check MySQL servers. define service { hostgroup_name mysql-servers service_description MySQL check_command check_mysql_cmdlinecred!nagios!secret!$HOSTADDRESS use generic-service notification_interval 0 ; set > 0 if you want to be renotified }يجب الآن تعريف مجموعة المضيفين mysql-servers؛ عدِّل الملف /etc/nagios3/conf.d /hostgroups_nagios2.cfg مضيفًا: # MySQL hostgroup. define hostgroup { hostgroup_name mysql-servers alias MySQL servers members localhost, server02 }يحتاج Nagios لأن يستوثق إلى MySQL، فأضف مستخدم nagios إلى MySQL بإدخال الأمر: mysql -u root -p -e "create user nagios identified by 'secret';"ملاحظة: يجب أن يتواجد المستخدم nagios في كل المضيفين في مجموعة mysql-servers. أعد تشغيل nagios ليبدأ التحقق من خواديم MySQL: sudo service nagios3 restartأخيرًا، اضبط NRPE للتحقق من المساحة الفارغة في القرص على الخادوم server02. أضف التحقق من الخدمة في server01 في ملف /etc/nagios3/conf.d/server02.cfg: # NRPE disk check. define service { use generic-service host_name server02 service_description nrpe-disk check_command check_nrpe_1arg!check_all_disks!172.18.100.101 }الآن على الخادوم server02، عدِّل الملف /etc/nagios/nrpe.cfg مغيّرًا: allowed_hosts=172.18.100.100ثم في منطقة تعريف الأمر أضف ما يلي: command[check_all_disks]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -eفي النهاية، أعد تشغيل nagios-nrpe-server: sudo service nagios-nrpe-server restartوأيضًا على الخادوم server01 أعد تشغيل nagios: sudo service nagios3 restartيجب أن تكون قادرًا على رؤية المضيف والتحقق من الخدمات في ملفات Nagios CGI؛ للوصول إليهم، وجِّه متصفحك إلى http://server01/nagios3؛ ثم ستُسأل عن اسم مستخدم nagiosadmin وكلمة مروره. مصادرلم يشرح هذا القسم من الدرس إلا القليل من ميزات Nagios؛ تحتوي الحزمتين nagios-plugins-extra و nagios-snmp-plugins على المزيد من تحققات الخدمات. للمزيد من المعلومات، راجع موقع Nagios، تحديدًا موقع «التوثيق».هنالك قائمة بالكتب المتعلقة بمراقبة الشبكة و Nagios.صفحة ويكي أوبتتو «Nagios» فيها بعض التفاصيل الإضافية.Muninالتثبيتقبل تثبيت Munin على server01، فيجب أن يُثبَّت قبله apache2؛ الضبط الافتراضي كافٍ لتشغيل خادوم munin. أولًا، ثبت munin على الخادوم server01 بإدخال الأمر: sudo apt-get install muninالآن ثبِّت الحزمة munin-node على الخادوم server02: sudo apt-get install munin-nodeالضبطعدِّل الملف /etc/munin/munin.conf على الخادوم server01 مُضيفًا عنوان IP للخادوم server02: ## First our "normal" host. [server02] address 172.18.100.101ملاحظة: استبدل server02 و 172.18.100.101 باسم المضيف وعنوان IP الحقيقي لخادومك. الآن اضبط munin-node على الخادوم server02، بتعديل /etc/munin/munin-node.conf للسماح بالوصول إلى الخادوم server01: allow ^172\.18\.100\.100$ملاحظة: استبدل ^172\.18\.100\.100$ بعنوان IP لخادوم Munin الخاص بك. أعد تشغيل munin-node على server02 لكي تأخذ التعديلات مجراها: sudo service munin-node restartفي النهاية، وجِّه متصفحك إلى http://server01/munin، يجب أن ترى روابط إلى مخططات بيانية جميلة تعرض معلومات من الحزمة القياسية munin-plugins للقرص والشبكة والعمليات والنظام. ملاحظة: لما كان هذا التثبيت حديثًا، فربما ستحتاج لبعض الوقت لعرض معلومات مفيدة. إضافات أخرىتحتوي حزمة munin-plugins-extra على تحققات من أداء خدماتٍ إضافية مثل DNS و DHCP، وسامبا ...إلخ. أدخل الأمر الآتي لتثبيت هذه الحزمة: sudo apt-get install munin-plugins-extraتأكد من تثبيت هذه الحزمة على جهازَيّ الخادوم والعقدة. مصادرراجع موقع Munin لمزيدٍ من التفاصيل.تحديدًا صفحة «توثيق Munin» التي تحتوي على معلومات عن الإضافات الأخرى، وكيفية كتابة إضافات ...إلخ.مصدر آخر هو صفحة ويكي أوبنتو «Munin».ترجمة -وبتصرف- للمقال Ubuntu Server Guide: Monitoring.
-
يتناول هذا الدرس تثبيت Nagios 4، وهو نظام مراقبة شائع ومفتوح المصدر، على Ubuntu 14.04. يغطي الدرس إعدادات أساسية لتتمكن من مراقبة موارد المضيفات Hosts في واجهة ويب. سنستخدم أيضا المشغل عن بعد لملحقات Nagios (يعرف بـ NRPE وهو اختصار لـNagios Remote Plugin Executor) الذي سيثبت ليكون وكيلا Agent على المضيفات البعيدة من أجل مراقبة مواردها المحلية. يفيد Nagios كثيرا في جرد الخواديم والتأكد من أن الخدمات الحرجة نشطة وتعمل. استخدام نظام للمراقبة، مثل Nagios، جزء مهم من أي بيئة خواديم موجهة للإنتاج. المتطلباتيتطلب اتباع الخطوات المشروحة في هذا الدرس امتلاك امتيازات المستخدم الأعلى (root) على خادوم Ubuntu 14.04 الذي سيشغل Nagios. من المستحسن استخدام حساب عادي بصلاحيات إدارية؛ لمعرفة كيفية إعداده راجع الخطوات من 1 إلى 3 في الدرس التالي: الإعداد الابتدائي لخادوم أوبنتو 14.04. سنحتاج أيضا إلى حزمة برمجيات LAMP. يشرح الدرس التالي كيفية إعدادها: كيف تُثبِّت حِزم MySQL، Apache، Linux :LAMP وPHP على Ubuntu 14.04. نفترض في المقال أن الخواديم توجد في شبكة محلية. أبدل جميع الإحالات إلى العناوين المحلية بعناوين IP عمومية إن كانت الخواديم التي تعدها لا توجد في نفس الشبكة المحلية. نبدأ بالخطوة اﻷولى وهي تثبيت Nagios 4. تثبيت Nagios 4تغطي هذه الفقرة كيفية تثبيت Nagios 4 على خادوم المراقبة. لن تحتاج لإعادة تنفيذ الأوامر المذكورة هنا على خواديم أخرى. إنشاء مستخدم Nagios ومجموعتهيجب أن ننشئ مستخدما ومجموعة تشغِّل عملية Nagios. أنشئ حساب مستخدم باسم nagios ومجموعة مستخدمين باسم nagcmd ثم أضف المستخدم للمجموعة: sudo useradd nagios sudo groupadd nagcmd sudo usermod -a -G nagcmd nagiosتثبيت الارتباطات المطلوبة لبناء Nagios 4 من المصدريحتاج بناء Nagios 4 من المصدر، وهو ما سنفعله في هذا الدرس، إلى تثبيت بعض مكتبات التطوير التي تتيح بناء البرنامج. سنستغل الفرصة أيضا لتثبيت apache2-utils الذي سنستخدمه لإعداد واجهة الويب الخاصة بـNagios. نبدأ بتحديث قائمة الحزم: sudo apt-get updateثم نثبت الحزم المطلوبة: sudo apt-get install build-essential libgd2-xpm-dev openssl libssl-dev xinetd apache2-utils unzipننتقل لتثبيت Nagios. تثبيت Nagios Coreنزل الشفرة المصدرية لآخر إصدار مستقر من Nagios Core. اذهب إلى صفحة تنزيلات Nagios وانقر على الرابط Skip to download (تجاوز إلى التنزيل) الموجود أسفل الاستمارة. انسخ رابط آخر إصدار مستقر لتتمكن من تنزيله على خادوم Nagios. آخر إصدار وقت كتابة المقال هو 4.1.1؛ نزله إلى مجلدك الشخصي على خادوم المراقبة باستخدام curl: cd ~ curl -L -O https://assets.nagios.com/downloads/nagioscore/releases/nagios-4.1.1.tar.gzاستخرج الملف المضغوط: tar xvf nagios-4.1.1.tar.gzثم انتقل إلى المجلد المستخرج: cd nagios-4.1.1يجب إعداد Nagios قبل بنائه. من أجل إعداد Nagios لاستخدام postfix (الذي يمكن تثبيته بapt-get) أضف with-mail=/usr/sbin/sendmail-- للأمر التالي: ./configure --with-nagios-group=nagios --with-command-group=nagcmd ثم نجمع Nagios بالأمر: make allيمكننا الآن استخدام اﻷوامر التالي لتثبيت Nagios، سكربتات بدء التشغيل وأمثلة لملفات الإعداد: sudo make install sudo make install-commandmode sudo make install-init sudo make install-config sudo /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/sites-available/nagios.conf تجب إضافة حساب خادوم الويب www-data إلى المجموعة nagcmd لنتمكن من تنفيذ أوامر على Nagios من واجهة الويب: sudo usermod -G nagcmd www-dataتثبيت ملحقات Nagiosتجد آخر الإصدارات من ملحقات Nagios على الرابط التالي: تنزيل ملحقات Nagios. انسخ عنوان رابط آخر إصدار حتى يمكنك تنزيله على خادوم Nagios. آخر إصدار أثناء كتابة هذا المقال هو 2.1.1. نزله إلى مجلدك الشخصي على الخادوم باستخدام curl: cd ~ curl -L -O http://nagios-plugins.org/download/nagios-plugins-2.1.1.tar.gzاستخر أرشيف ملحقات Nagios بالأمر التالي: tar xvf nagios-plugins-2.1.1.tar.gzثم انتقل إلى المجلد المستخرَج: cd nagios-plugins-2.1.1يجب إعداد ملحقات Nagios قبل بنائها، نستخدم الأمر التالي لهذا الغرض: ./configure --with-nagios-user=nagios --with-nagios-group=nagios --with-opensslنبني ملحقات Nagios: makeثم نثبتها بالأمر: sudo make installتثبيت NRPE (المشغل عن بعد لملحقات Nagios)اعثر على الشفرة المصدرية لآخر إصدار مستقر من NRPE على صفحة تنزيلات NRPE. نزل آخر إصدار على خادوم Nagios. آخر إصدار وقت كتابة هذا الدرس هو 2.15. نزله إلى مجلدك الشخصي على خادوم Nagios باستخدام أمر curl: cd ~ curl -L -O http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.15/nrpe-2.15.tar.gz استخرج أرشيف NRPE بالأمر التالي: tar xvf nrpe-2.15.tar.gzثم انتقل إلى المجلد المستخرج: cd nrpe-2.15نعدّ NRPE بالأوامر التالية: ./configure --enable-command-args --with-nagios-user=nagios --with-nagios-group=nagios --with-ssl=/usr/bin/openssl --with-ssl-lib=/usr/lib/x86_64-linux-gnuنأتي الآن لبناء NRPE وتثبيته إضافة لتثبيت سكربت بدء التشغيل xinetd: make all sudo make install sudo make install-xinetd sudo make install-daemon-configافتح سكربت بدء التشغيل xinetd لتحريره: sudo nano /etc/xinetd.d/nrpeغيّر سطر only_from بإضافة عنوان IP المحلي الخاص بخادوم Nagios في آخر السطر، كما في المثال التالي: only_from = 127.0.0.1 10.132.224.168احفظ الملف ثم أغلقه. لن يُسمح، وفقا لهذا الإعداد، لغير خادوم Nagios بالتخاطب مع NRPE. أعد تشغيل خدمة xinetd لبدء تشغيل NRPE: sudo service xinetd restartأكملنا الآن تثبيت Nagios 4، بقي إعداده. إعداد Nagiosسنضبط في هذه الفقرة الإعداد الابتدائي لـNagios. ستحتاج لهذا الضبط مرة واحدة على خادوم Nagios. تنظيم إعدادات Nagiosافتح ملف الإعداد الرئيس لـNagios لتحريره: sudo nano /usr/local/nagios/etc/nagios.cfgابحث عن السطر التالي وأزل علامة التعليق (#): #cfg_dir=/usr/local/nagios/etc/serversاحفظ الملف ثم أغلقه. الخطوة التالية هي إنشاء المجلد الذي سيخزن ملفات إعداد الخواديم التي ستراقبها؛ ملف لكل خادوم: sudo mkdir /usr/local/nagios/etc/serversإعداد جهات الاتصال في Nagiosافتح ملف الإعداد الخاص بجهات اتصال Nagios لتحريره: sudo nano /usr/local/nagios/etc/objects/contacts.cfgاعثر على تعليمة email وأبدل قيمتها لتصبح عنوانك البريدي الخاص: email nagios@localhost ; <<***** أبدل هذا العنوان بعنوانك البريدي ******احفظ الملف ثم أغلقه. إعداد أمر check_nrpeنضيف أمرا جديدا إلى ملف إعداد Nagios، لذا سنفتح لتحريره: sudo nano /usr/local/nagios/etc/objects/commands.cfgأضف الأسطر التالية: define command{ command_name check_nrpe command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ }احفظ الملف ثم أغلقه. يتيح هذا الإعداد إمكانية استخدام الأمر check_nrpe في تعريف خدمات Nagios. إعداد Apacheفعل وحدتيْ rewrite وcgi في Apache: sudo a2enmod rewrite sudo a2enmod cgiاستخدم أمر htpasswd لإنشاء حساب مدير باسم nagiosadmin يمكنه الوصول إلى واجهة ويب Nagios: sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadminأدخل كلمة سر في المحث وتذكرها إذ ستحتاجها للوصول إلى واجهة ويب Nagios. أنشئ وصلة رمزية Symbolic link لـnagios.conf في مجلد sites-enabled: sudo ln -s /etc/apache2/sites-available/nagios.conf /etc/apache2/sites-enabled/أصبح Nagios جاهزا للتشغيل. نشغل Nagios ونعيد تشغيل Apache: sudo service nagios start sudo service apache2 restartنفذ الأمر التالي إن أردت تفعيل تشغيل Nagios مع بدء تشغيل الخادوم: sudo ln -s /etc/init.d/nagios /etc/rcS.d/S99nagiosإعداد اختياري: تقييد الوصول بعنوان IPإن أردت قصر عناوين IP التي يمكن منها الوصول إلى واجهة ويب Nagios فينبغي تحرير ملف إعداد Apache: sudo nano /etc/apache2/sites-available/nagios.confاعثر على السطرين التاليين وأضف علامة # أمام كل واحد منهما لتعليقه: Order allow,deny Allow from allثم انزع التعليق عن الأسطر التالية بحذف علامة # وأضف عناوين IP (أو مجالات عناوين) التي تريد السماح لها بالوصول إلى الواجهة إلى سطر Allow from مع الفصل بينها بمسافة: # Order deny,allow # Deny from all # Allow from 127.0.0.1تظهر هذه الأسطر مرتين في ملف الإعداد لذا يجب عليك إعادة الخطوات أعلاه مرتين. احفظ الملف ثم أغلقه. نعيد تشغيل Nagios وApache لاعتماد التغييرات: sudo service nagios restart sudo service apache2 restartيعمل Nagios الآن، فلنحاول الولوج إليه. الوصول إلى واجهة ويب Nagiosأدخل عنوان خادوم Nagios في المتصفح (ضع عنوان IP أو اسم المضيف المناسب مكان nagios_server_public_ip): http://nagios_server_public_ip/nagiosستحتاج لإدخال بيانات الولوج نظرا لأننا استخدمنا htpasswd أثناء إعداد Apache (اسم المستخدم nagiosadmin وكلمة السر التي اخترتها): تظهر الصفحة الرئيسية الافتراضية لـNagios بعد الولوج. انقر على رابط المضيفات في القائمة الجانبية على اليسار لمعرفة المضيفات التي يراقبها Nagios: لا يراقب Nagios سوى مضيف واحد هو المضيف المحلي Localhost. سنعد في ما يلي مضيفا آخر يراقبه Nagios. مراقبة مضيف بـNRPEسنرى في هذه الفقرة كيفية إضافة مضيف جديد إلى Nagios لتمكن بالتالي مراقبته. كرّر خطوات هذه الفقرة لكل خادوم تريد مراقبته. نحدّث قائمة الحزم على الخادوم الذي نريد إضافته إلى Nagios: sudo apt-get updateثم نثبت ملحقات Nagios وNRPE: sudo apt-get install nagios-plugins nagios-nrpe-serverإعداد المضيفات المسموح لها بالوصولنفتح ملف إعداد NRPE: sudo nano /etc/nagios/nrpe.cfgاعثر على تعليمة allowed_hosts وأضف عنوان IP المحلي الخاص بخادوم Nagios إلى التعليمة كما في المثال التالي (انتبه للفاصلة): allowed_hosts=127.0.0.1,10.132.224.168احفظ الملف ثم أغلقه. يضبط الإعداد أعلاه NRPE لقبول الطلبات الواردة من خادوم Nagios عبر عنوانه المحلي. إعداد أوامر NRPE المسموح بهااستخدم الأمر التالي لمعرفة اسم جذر نظام الملفات (واحد من العناصر التي نريد مراقبتها): df -h /سنستخدم اسم نظام الملفات في ملف إعداد NRPE من أجل مراقبة استخدام القرص الصلب. افترح ملف nrpe.cfg لتحريره: sudo nano /etc/nagios/nrpe.cfgيحوي ملف إعداد NRPE الكثير من التعليمات والأسطر، أغلبها معلَّق. توجد أسطر قليلة نحتاج للعثور عليها وتعديلها: server_address: تحدَّد قيمتها بعنوان IP المحلي للمضيف.allowed_hosts: تحدَّد قيمتها بعنوان IP المحلي لخادوم Nagios.[command[check_hda1: أبدل ` باسم نظام الملفات (نتيجة أمر df أعلاه، مثلا dev/vda/`).يجب أن تبدو الأسطر المذكورة على النحو التالي (استخدم القيم المناسبة): server_address=client_private_IP allowed_hosts=nagios_server_private_IP command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vdaتوجد الكثير من الأوامر الأخرى المعرَّفة في هذا الملف. تعمل هذه الأوامر إذا أُعِدَّ Nagios لاستخدامها. انتبه إلى أن NRPE سينصت على المنفذ Port رقم 5666 لأن التعليمة server_port=5666 مفعَّلة. إن كان يوجد جدار ناري Firewall على خادوم Nagios فتأكد من السماح للاتصالات بالمرور عبر المنفذ 5666. احفظ الملف ثم أغلقه. إعادة تشغيل NRPEأعد تشغيل NRPE لاعتماد التعديلات: sudo service nagios-nrpe-server restartتثبيت NRPE وإعداده على المضيف هو الخطوة الأولى لمراقبته. الخطوة الثانية هي إضافته إلى ملف إعداد Nagios لتبدأ المراقبة فعليا. إدراج المضيف إلى إعداد Nagiosأنشئ ملف إعداد ضمن مسار /usr/local/nagios/etc/servers/ على خادوم Nagios لكل مضيف تريد مراقبته. أبدل yourhost باسم المضيف. sudo nano /usr/local/nagios/etc/servers/yourhost.cfgأضف تعريف المضيف التالي؛ مع إبدال قيمة host_name باسم المضيف البعيد (web-1 في المثال)، قيمة الكنية alias بوصف المضيف، وقيمة العنوان address بعنوان IP المحلي للمضيف البعيد: define host { use linux-server host_name yourhost alias My first Apache server address 10.132.234.52 max_check_attempts 5 check_period 24x7 notification_interval 30 notification_period 24x7 }يأمر الإعداد أعلاه Nagios بمراقبة ما إذا كان المضيف يعمل أم لا، لا غير. احفظ الملف ثم أغلقه وأعد تشغيل Nagios إن كان هذا كافيا بالنسبة لك؛ أما إذا كنت تريد مراقبة خدمات محدَّدة فواصل القراءة. أضف تعريفات الخدمات التي تريد مراقبتها. في ما يلي أمثلة على مراقبة الخدمات؛ انتبه إلى أن قيمة check_command تحدد الخدمة المرادة مراقبتها والقيم التي تحدد حالة الخدمة: فحص الاتصال (أمر ping): define service { use generic-service host_name yourhost service_description PING check_command check_ping!100.0,20%!500.0,60% } خدمة SSH (إعطاء قيمة 0 لتعليمة notifications_enabled في تعريف الخدمة يعطل الإشعارات): define service { use generic-service host_name yourhost service_description SSH check_command check_ssh notifications_enabled 0 } تأخذ التعليمة use generic-service قيم قالب للخدمات معرَّف افتراضيا باسم generic-service. احفظ الملف ثم أغلقه. أعد تحميل إعداد Nagios لاعتماد التعديلات: sudo service nagios reloadتأكد بعد الانتهاء من إعداد جميع المضيفات من الوصول إلى واجهة ويب Nagios وافحص صفحة الخدمات لرؤية كل المضيفات والخدمات المراقبة. خاتمةالخطوة الموالية لإعداد خادوم المراقبة هي تحديد الخدمات الحرجة والأساسية بالنسبة لك لمراقبتها. قد ترغب أيضا في إعداد إشعارات؛ مثلا لتلقي بريد إلكتروني عندما تصل نسبة استخدام القرص الصلب إلى حدّ معيَّن، أو عندما يصبح خادوم موقع الويب خارج الخدمة. تساعد الإشعارات كثيرا في استباق حدوث المشاكل واتخاذ إجراءات للحؤول دونها. ترجمة -وبتصرّف- لمقال How To Install Nagios 4 and Monitor Your Servers on Ubuntu 14.04 لصاحبه Mitchell Anicas.
-
أكملنا في الأجزاء السابقة من هذه السّلسلة إعداد خواديم التطبيقات، خطط الاسترداد، وآليات النسخ الاحتياطي. سنضبط في هذا الدرس إعداد المراقبة Monitoring لكي نكون على اطّلاع في أية لحظة بحالة عمل الخواديم والخدمات. تتيح برامج المراقبة مثل Nagios، Icinga وZabbix إمكانية إنشاء لوحات قيادة Dashboards وإشعارات تريك عناصر الإعداد التي تحتاج لاهتمام خاص. الهدف هو اكتشاف المشاكل والبدء في إصلاحها قبل أن تؤثر على المستخدمين النهائيين للتطبيق. سنعد في هذا الدرس المراقبة باستخدام Nagios 4 ونثبت عملاء NRPE (إضافة تتيح تنفيذ أوامر Nagios على أجهزة أخرى) على الخواديم التي تكون التطبيق. سنعد المراقبة على كل واحد من الخواديم لمعرفة هل الخادوم نشط وما إذا كانت العملية الرئيسة عليه (على سبيل المثال MySQL، Apache أو HAProxy) تعمل أم لا. لا يشمل هذا الدرس كل جوانب المراقبة، لذا قد تحتاج لإجراء فحوص إضافية لا يتناولها هذا الدّرس؛ إلا أنه يبقى نقطة جيدة للبدء. المتطلباتأنشئ، إن أردت الوصول إلى لوحة المراقبة عبر نطاق خاص مثل monitoring.example.com، سجلا من نوع A يحيل إلى عنوان IP العمومي الخاص بخادوم المراقبة. أو يمكنك بدلا من ذلك الوصول إلى لوحة القيادة في خادوم المراقبة باستخدام عنوانه العمومي. يُنصح بإعداد خادوم المراقبة لاستخدام HTTPS وتقييد الوصول إليه بوضعه في شبكة خاصة افتراضية. تثبيت Nagios على خادوم المراقبةاضبط Nagios على خادوم المراقبة باتباع الدرس التالي: كيف تستخدم Nagios 4 لمراقبة خواديم Ubuntu 14.04. إن رغبت في استخدام Icinga الذي هو اشتقاق من Nagios فدرس كيف تستخدم Icinga لمراقبة خواديمك وخدماتك على Ubuntu 14.04 يشرح الطريقة. توقف عند فقرة مراقبة مستضيف Ubuntu بواسطة عملاء NRPE. إضافة الخواديم إلى Nagiosطبق خطوات فقرة مراقبة مستضيف Ubuntu بواسطة عملاء NRPE من درس Nagios السابق على كل واحد من الخواديم (app2،app1، db1 وlb1). تأكد من إضافة عنوان IP الخادوم أو اسم مستضيفه الخاص إلى allowed_hosts في ملف إعداد NRPE. يجب أن يكون لديك بعد الانتهاء من إضافة المستضيفات ملف منفصل لكل خادوم: app2.cfg،app1.cfg،db1.cfg، وlb1.cfg. يتضمن كل ملف تعريف المستضيف الذي يحيل إلى اسمه وعنوانه (قد يكون العنوان اسم المستضيف أو عنوان IP الخاص بالخادوم). إعداد المستضيف ومراقبة الخدمةنبدأ بإعداد لائحة لما نريد مراقبته على كل خادوم. نراقب، على كل خادوم، الخدمات التالية: Ping.SSH.الحمل الجاري Current Load.المستخدمون الحاليون Current users.المساحة المستخدمة من القرص الصلب Disk Utilization.تعريف الخدمات المشتركةأعددنا Nagios في الدرس المُشار إليه سابقا ليرقُب الملفات الموجودة في المجلد usr/local/nagios/etc/servers/. سننشئ ملف إعداد Nagios للخدمات المشتركة التي نريد مراقبته؛ نسمي الملف common.cfg. افتح أولا ملف الإعداد لتحريره: sudo nano /usr/local/nagios/etc/servers/common.cfgأضف تعريفات الخدمات التالية، مع تحديد قيمة host_name (أسماء المستضيفات الخاصة بالخواديم، عُرِّفت سابقا ضمن ملفات app2.cfg،app1.cfg،db1.cfg، وlb1.cfg): define service { use generic-service host_name db1,app1,app2,lb1 service_description PING check_command check_ping!100.0,20%!500.0,60% } define service { use generic-service host_name db1,app1,app2,lb1 service_description SSH check_command check_ssh notifications_enabled 0 } define service { use generic-service host_name db1,app1,app2,lb1 service_description Current Load check_command check_nrpe!check_load } define service { use generic-service host_name db1,app1,app2,lb1 service_description Current Users check_command check_nrpe!check_users } define service{ use generic-service host_name db1,app1,app2,lb1 service_description Disk Utilization check_command check_nrpe!check_hda1 } احفظ الملف ثم أغلقه. بالإمكان الآن الانتقال لتعريف الخدمات الخاصة بكل خادوم. نبدأ بخادوم قاعدة البيانات. تعريف عملية MySQLإنشاء أمر NRPE (على العميل)سنضبط أمر NRPE جديدا على خادوم قاعدة البيانات، db1. افتح ملف إعداد NRPE جديدا، commands.cfg: sudo nano /etc/nagios/nrpe.d/commands.cfgأضف تعريف الأمر التالي: command[check_mysqld]=/usr/lib/nagios/plugins/check_procs -c 1: -C mysqldاحفظ الملف ثم أغلقه. يتيح الأمر لـNRPE فحص عملية Process باسم mysqld والإبلاغ عن حالة حرجة Critical status إن كان هناك أقل من عملية واحدة نشطة بهذا الاسم. أعد تحميل إعداد NRPE: sudo service nagios-nrpe-server reloadإنشاء تعريف الخدمة (على الخادوم)نحتاج لتعريف خدمة جديدة على خادوم monitoring (خادوم المراقبة) لاستخدام NRPE لتشغيل أمر check_mysqld السابق. افتح الملف الذي يعرف مستضيف قاعدة البيانات، db1.cfg في مثالنا: sudo nano /usr/local/nagios/etc/servers/db1.cfgأضف تعريف الخدمة التالي في آخر الملف (تأكد من أن قيمة host_name تطابق اسم تعريف المستضيف): define service { use generic-service host_name db1 service_description Check MySQL Process check_command check_nrpe!check_mysqld }احفظ الملف ثم أغلقه. يُعد تعريف الخدمة أعلاه Nagios لاستخدام NRPE لتنفيذ أمر check_mysqld على خادوم قاعدة البيانات. تجب إعادة تحميل Nagios لاعتماد التغييرات. إلا أننا سننتقل أولا لمراقبة عملية Apache أولا. تعريف عملية Apacheإنشاء أمر NRPE (على العميل)نضبط أمر NRPE جديدا على كلٍّ من خادومي التطبيق: sudo nano /etc/nagios/nrpe.d/commands.cfgثم نضيف تعريف الأمر التالي: command[check_apache2]=/usr/lib/nagios/plugins/check_procs -c 1: -w 3: -C apache2احفظ الملف ثم أغلقه. يسمح الأمر لNRPE بالتحقق من وجود عملية باسم apache2 والإبلاغ عن حالة حرجة إن لم توجد عملية بهذا الاسم وإصدار تحذير إن وجدت أقل من ثلاث عمليات. نعيد تحميل إعداد NRPE: sudo service nagios-nrpe-server reloadتأكد من تنفيذ الخطوات على جميع خواديم التطبيقات. إنشاء تعريف الخدمة (على الخادوم)نحتاج تعريف خدمة جديدة تستخدم أمر check_apache2 على خادوم المراقبة monitoring. افتح الملف الذي يعرف مستضيف التطبيق (يوجد في حالتنا اثنان: app1 وapp2): sudo nano /usr/local/nagios/etc/servers/app1.cfgأضف تعريف الخدمة التالي في آخر الملف (تأكد من أن قيمة host_name تطابق اسم تعريف المستضيف): define service { use generic-service host_name app1 service_description Check Apache2 Process check_command check_nrpe!check_apache2 }احفظ الملف ثم أغلقه. يعد تعريف الخدمة Nagios لاستخدام NRPE لتنفيذ أمر check_apache2 على خادوم التطبيق. تأكد من تكرار الخطوة على كل واحد من خواديم التطبيقات. تعريف عملية HAProxyإنشاء أمر NRPE (على العميل)نعد أمر NRPE على خادوم توزيع الحمل lb1 بنفس طريقة إعداده في الخواديم السابقة: sudo nano /etc/nagios/nrpe.d/commands.cfgونضيف تعريف الأمر التالي: command[check_haproxy]=/usr/lib/nagios/plugins/check_procs -c 1: -C haproxyاحفظ الملف ثم أغلقه. يعد تعريف الخدمة السابق NRPE للتحقق من عملية باسم haproxy ثم الإبلاغ عن حالة حرجة إن كان عدد العمليات بهذا الاسم أصغر من 1. نعيد تحميل إعداداتت NRPE: sudo service nagios-nrpe-server reloadإنشاء تعريف الخدمة (على الخادوم)نضيف تعريف خدمة جديدا على خادوم monitoring ليستخدم أمر check_haproxy؛ بنفس الطريقة المشروحة سابقا. sudo nano /usr/local/nagios/etc/servers/lb1.cfgنضيف التعريف التالي في نهاية الملف: define service { use generic-service host_name lb1 service_description Check HAProxy Process check_command check_nrpe!check_haproxy }يعد التعريف Nagios لاستخدام NRPE في تنفيذ الأمر check_haproxy على خادوم توزيع الحمل. تجب إعادة تحميل Nagios من أجل اعتماد التعديلات. إعادة تحميل Nagiosنعيد تحميل Nagios عبر تنفيذ الأمر التالي من أجل اعتماد التعديلات السابقة: sudo service nagios reloadإن لم توجد أخطاء في صياغة الأوامر والتعريفات فيُعاد تحميل Nagios دون مشاكل. التحقق من خدمات Nagiosيجب أن نتأكد من أن Nagios يراقب جميع الخواديم والخدمات التي عرفناها. ادخل إلى خادوم Nagios باستخدام اسم المستضيف العمومي أو عنوان IP (مثلا http://monitoring.example.com/nagios؛ أدخِل بيانات الدخول التي أعددتها أثناء تثبيت Nagios. انقر رابط الخدمات Services في القائمة الجانبية؛ يجب أن تظهر لديك صفحة تشبه ما يلي: الوضعية المثالية هي أن تكون كل المستضيفات والخدمات على حالة OK. يمكن أن نرى في لقطة الشاشة السابقة وجود مشكلة في خادوم التطبيق app2؛ ويرجع ذلك إلى أنه كان مطفأ في أغلب فحوص الحالة الأخيرة. إن وجدت خدمات بحالة مغايرة لOK فأصلحها؛ وإن كانت جميع الخدمات بحالة جيدة فراجع إعدادات Nagios بحثا عن أخطاء ربما تكون أدت لإبلاغ غير صحيح عن حالة الخدمات. اعتبارات أخرىقد ترغب في إنشاء خطة استرداد لخادوم المراقبة، ملفات الإعداد الواجب نسخها إن أردت ذلك توجد في المجلد usr/local/nagios/etc/. يمكن أيضا أن تعدّ Nagios لمراقبة خدمات أخرى مثل البريد الإلكتروني. خاتمةيمكّن خادوم المراقبة من الحصول على حالة الخدمات والخواديم بمجرد إلقاء نظرة على لوحة المراقبة. يساعد خادوم المراقبة، عند حدوث مشاكل، في تحديد الخادوم والخدمة التي لا تعمل بطريقة صحيحة وهو ما يعينك في تخفيض زمن توقف Downtime الخاص التطبيق. في الجزء الموالي من الدليل سنعرض لكيفية إعداد سجلات مركزية لتطبيقات الويب في بيئة الإنتاج. ترجمة -وبتصرّف- لمقال Building for Production: Web Applications — Monitoring لصاحبه Mitchell Anicas.
-
إنّ Mytop هي أداة سطر أوامر مفتوحة المصدر open source تُستخدَم لمراقبة أداء MySQL، وهي مستوحاة من أداة مراقبة نظام لينِكس التي تُدعى top ومُشابِهة لها في الشّكل والمظهر، تتصل Mytop إلى خادوم MySQL وتقوم بشكل دوري بتشغيل الأمرين show processlist و show global status، وتقوم بعدها بتلخيص المعلومات بشكل مفيد، نستطيع باستخدام Mytop مراقبة (بشكلٍ آني real-time) مناقشات MySQL threads، الاستعلامات queries، وزمن التشغيل uptime، بالإضافة إلى أنّها ترى أي مستخدم يقوم بتنفيذ استعلامات على أي قاعدة بيانات، وأي الاستعلامات تجري ببطء والمزيد من ذلك، نستطيع استخدام كل هذه المعلومات لتحسين أداء خادوم MySQL. سنناقش في هذا الدّرس كيفيّة تثبيت، إعداد، واستخدام mytop. المتطلبات الأساسيةقبل البدء في هذا الدرس ينبغي أن نمتلك ما يلي لدينا: CentOS 7 64-bit Droplet (تعمل أيضًا مع CentOS 6).مستخدم غير جذري non-root مع صلاحيّات sudo سيتم تنفيذ جميع الأوامر عن طريق هذا المستخدم.خادوم MySQL يعمل على الـ Droplet.الخطوة الأولى – تثبيت Mytopفلنقم بتثبيت الحِزَم المطلوبة من أجل mytop. نحتاج في البداية إلى تثبيت مستودع yum الذي يُدعى (EPEL (Extra Packages for Enterprise Linux على الخادوم، إنّ EPEL هي مجموعة ذات اهتمامات مشتركة بتوزيعة Fedora تقوم بإنشاء، إدارة، والحفاظ على مجموعة حِزَم برمجيّة إضافيّة add-on مفتوحة المصدر عالية الجّودة من أجل Enterprise Linux، نقوم بتنفيذ الأمر التالي لتثبيت وتمكين مستودع EPEL على خادومنا: على CentOS 7: sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpmعلى CentOS 6: sudo rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpmوقبل المتابعة نتحقّق أنّه تم تمكين المستودع EPEL باستخدام: sudo yum repolistإن تمّ تمكينه سنشاهد في الخَرْج ما يلي: epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64فلنقم بعد ذلك بحماية الحِزَم الأساسيّة من EPEL باستخدام إضافة yum plugin التي تُدعى protectbase: sudo yum install yum-plugin-protectbase.noarch -yالغرض من الإضافة protectbase هو حماية بعض مستودعات yum من تحديثات المستودعات الأخرى، فلن يتم تحديث أو تجاوز override الحِزَم الموجودة في المستودعات المحميّة بواسطة الحِزَم في المستودعات غير المحميّة حتى ولو كان المستودع غير المحمي يملك إصدارًا أحدث. نحن الآن مستعدون لتثبيت حِزمة mytop، فلنقم بتنفيذ الأمر التالي لتثبيتها: sudo yum install mytop -yسيقوم هذا الأمر بتثبيت حِزمة mytop بالإضافة إلى جميع اعتمادياتها dependencies والتي هي في معظمها وحدات perl modules. الخطوة الثانية – ضبط إعدادات Mytopنقوم قبل استخدام mytop بإنشاء ملف إعدادات مُخصَّص من أجل mytop يُدعى mytop.، وذلك بكتابة الأمر التالي: sudo nano /root/.mytopنضيف المحتوى التالي إلى الملف ونقوم بحفظه وإغلاقه: root/.mytop/ host=localhost db=mysql delay=5 port=3306 socket= batchmode=0 color=1 idle=1سيتم استخدام ملف الإعدادات عندما نقوم بتشغيل mytop بشكل مباشر كمستخدم جذري root وعندما نقوم بتشغيلها باستخدام الأمر sudo كمستخدم غير جذري يملك صلاحيّات sudo. نستطيع القيام بتغييرات إلى ملف الإعدادات اعتمادًا على احتياجاتنا، على سبيل المثال يُحدِّد الخيار delay الفترة الزمنيّة مقدرةً بالثانية بين تحديثات العرض display، فإن كُنّا نرغب بتحديث عرض mytop كل 3 ثوان بإمكاننا تحرير الملف root/.mytop/ باستخدام: sudo nano /root/.mytopومن ثمّ تغيير ما يلي: root/.mytop/ delay=3يُحدِّد المُعامِل idle إذا ما كان سيسمح للمناقشات threads الخاملة idle (النائمة) بالظهور في قائمة شاشة عرض mytop، الوضع الافتراضي هو إظهار المناقشات الخاملة، إن تمّ حذف المناقشات الخاملة سينعكس ترتيب الفرز sorting الافتراضي بحيث تظهر أطول الاستعلامات قيد التشغيل في أعلى القائمة، إن كُنّا نرغب في فعل هذا نُحرّر الملف root/.mytop/ ونغيّر ما يلي: root/.mytop/ idle=0نستطيع الرجوع إلى صفحات mytop اليدويّة للمزيد من المعلومات عن جميع المُعامِلات في ملف الإعدادات والتي تحتوي على وصف لكل مُعامِل، للوصول إلى الصفحات اليدويّة نستخدم الأمر: man mytopنستطيع كتابة q للخروج من الدّليل. الخطوة الثالثة – الاتصال إلى Mytopسنناقش في هذا القسم كيفيّة الاتصال إلى mytop واستخدامها لعرض استعلامات MySQL. تتطلّب Mytop اعتمادات credentials للنفاذ إلى قاعدة البيانات، والتي يمكن تزويدها عبر مُحِث prompt في سطر الأوامر أو عبر تخزينها في ملف الإعدادات، سنستخدم من أجل أمان أفضل الخيار prompt-- والذي يسأل كل مرّة عن كلمة السّر. فلنتصل إلى mytop باستخدام: sudo mytop --promptونُدخِل كلمة سر المستخدم root في MySQL في المُحِث، بإمكاننا أيضًا استخدام العديد من مُعطيات arguments سطر الأوامر مع الأمر mytop، نرجو الرجوع إلى الصفحات اليدويّة من أجل الحصول على قائمة كاملة بها، على سبيل المثال إن كُنّا نرغب باستخدام مستخدم mysql مُختلف مثل sammy للاتصال إلى mytop نقوم باستخدام الأمر التالي: sudo mytop -u sammy --promptوللاتصال ومراقبة قاعدة بيانات مُحدّدة فقط نستخدم الأمر التالي: sudo mytop -d databasename --promptللخروج من mytop والعودة إلى مُحث الصّدفة shell prompt نكتب q. الخطوة الرابعة – عرض وتفسير شاشة عرض Mytopسنرى في هذا القسم كيفيّة تفسير شاشة عرض mytop والميزات المختلفة التي تُقدّمها هذه الأداة. حالما نتصل إلى mytop باستخدام mytop --prompt سيتم أخذنا إلى طريقة عرض المناقشات thread view، والتي ستظهر خَرْج مشابه لما يلي: Output of mytop MySQL on localhost (5.5.41-MariaDB) up 0+00:05:52 [01:33:15] Queries: 148 qps: 0 Slow: 0.0 Se/In/Up/De(%): 09/00/00/00 qps now: 2 Slow qps: 0.0 Threads: 6 ( 5/ 0) 67/00/00/00 Key Efficiency: 2.0% Bps in/out: 14.7/320.7k Now in/out: 192.5/731.8k Id User Host/IP DB Time Cmd Query or State -- ---- ------- -- ---- --- ---------- 2 root localhost mysql 0 Query show full processlist 16 root localhost 0 Sleep 17 root localhost testdb 0 Query SELECT * FROM dept_emp 18 root localhost testdb 0 Query SELECT * FROM dept_emp 19 root localhost testdb 0 Query SELECT * FROM dept_emp 20 root localhost testdb 0 Query SELECT * FROM dept_empنستطيع العودة إلى طريقة العرض هذه إن كُنّا في طريقة عرض أخرى بكتابة t. تُقسم شاشة العرض السّابقة إلى قسمين، تُؤلّف الأسطر الأربعة الأولى الترويسة header والتي يُمكن تشغيلها وإيقافها بضغط SHIFT-H، تحتوي الترويسة على معلومات موجزة حول خادوم MySQL لدينا. يُحدِّد السطر الأول اسم المضيف hostname للخادوم وإصدار MySQL الموجود، يُظهر القسم الأيمن منه زمن التشغيل uptime لعمليّة خادوم MySQL بصيغة الأيام+السّاعات:الدّقائق:الثواني (days+hours:minutes:seconds) بالإضافة للوقت الحالي.يعرض السطر الثاني العدد الكلّي للاستعلامات التي قام الخادوم بمعالجتها (148 في حالتنا)، متوسط عدد الاستعلامات في الثانية، عدد الاستعلامات البطيئة، والنسبة المئوية للاستعلامات اختيار Select، إدخال Insert، تحديث Update، وحذف Delete.يُظهِر السطر الثالث قيم آنيّة real-time منذ التحديث refresh الأخير لـ mytop، إنّ زمن التّحديث (التأخير) الطبيعي في mytop هو 5 ثوان، لذا إن تمّ إجراء 100 استعلام خلال آخر 5 ثوان منذ التحديث سيكون عدد qps now هو 20، الحقل الأول هو عدد الاستعلامات في الثانية (qps now: 2). القيمة الثانية هي عدد الاستعلامات البطيئة في الثانية، يُشير القسم Threads: 6 ( 5/ 0) إلى وجود 6 مناقشات threads مُتّصلة، 5 منها نشطة (واحدة منها نائمة) وعدم وجود أي مناقشات (الرقم 0) في الذّاكرة المؤقّتة cache للمناقشات، يُظهر الحقل الأخير في السّطر الثالث النّسبة المئويّة للاستعلام، كما هو الحال في السّطر السابق، ولكن منذ التحديث الأخير لـ mytop.يعرض السّطر الرّابع فعاليّة key buffer (وهو عدد المرات التي فيها قراءة المفاتيح keys من الـ buffer بدلًا من القرص) وعدد البايتات التي أرسلتها واستقبلتها MySQL، كلاهما بالمجمل ومنذ آخر تحديث لـ mytop. تُظهِر Key Efficiency: 2.0% أنّه يتم قراءة 2% من المفاتيح من الـ buffer وليس من القرص، تُظهِر Bps in/out: 14.7/320.7k أنّه منذ بدء التشغيل تلقّت MySQL ما يُعادِل 14.7kbps من حركة البيانات traffic الواردة و 320.7kbps من حركة البيانات الصادرة، يُظهِر Now in/out حركة البيانات أيضًا ولكن منذ آخر تحديث لـ mytop.يعرض القسم الثاني من شاشة العرض مناقشات MySQL الحاليّة مع فرزها بحسب زمن خمولها (الأقل خمولًا أولًا)، نستطيع عكس ترتيب الفرز بضغط O عند الحاجة لذلك، يتم هنا أيضًا عرض مُعرِّف المناقشة thread id، اسم المستخدم، المُضيف الذي يتصل منه المستخدم، قاعدة البيانات التي يتصل إليها المستخدم، زمن الخمول مُقدّرًا بالثانية، الأمر الذي تقوم المناقشة بتنفيذه (أو حالة المناقشة)، والقسم الأول من معلومات الاستعلام، إن كانت المناقشة في حالة استعلام Query (أي يعرض العمود Cmd القيمة Query) فسيعرض العمود التالي الذي يُدعى Query or State القسم الأول من الاستعلام الذي يتم تنفيذه، أمّا إن كانت حالة الأمر هي نائم Sleep أو خامل Idle فسيكون العمود Query or State فارغًا عادةً، في مثال الخَرْج السّابق لدينا فإنّ المناقشة ذات المُعرِّف id 2 هي فعليًّا mytop والتي تقوم بتشغيل الاستعلام show processlist لجمع المعلومات، والمناقشة ذات المُعرِّف 16 نائمة (أي لا تقوم بمعالجة استعلام ولكنّها تبقى متصلة)، والمناقشة ذات المُعرِّف 17 تقوم بتشغيل استعلام SELECT على قاعدة البيانات testdb. الآن وقد فهمنا أساسيّات شاشة عرض mytop، سنرى كيفيّة استخدامها لجمع المزيد من المعلومات حول مناقشات واستعلامات MySQL، فلنلقِ نظرة على شاشة عرض mytop التّالية: [secondary_output Output of mytop] MySQL on localhost (5.5.41-MariaDB) up 0+00:13:10 [23:54:45] Queries: 2.8k qps: 4 Slow: 51.0 Se/In/Up/De(%): 45/00/00/00 qps now: 17 Slow qps: 0.0 Threads: 52 ( 51/ 0) 96/00/00/00 Key Efficiency: 100.0% Bps in/out: 215.4/ 7.6M Now in/out: 2.0k/16.2M Id User Host/IP DB Time Cmd Query or State -- ---- ------- -- ---- --- ---------- 34 root localhost testdb 0 Query show full processlist 1241 root localhost 1 Sleep 1242 root localhost testdb 1 Query SELECT * FROM dept_emp 1243 root localhost testdb 1 Query SELECT * FROM dept_emp 1244 root localhost testdb 1 Query SELECT * FROM dept_emp 1245 root localhost testdb 1 Query SELECT * FROM dept_emp 1246 root localhost testdb 1 Query SELECT * FROM dept_emp 1247 root localhost testdb 1 Query SELECT * FROM dept_empتكون الاستعلامات مبتورة في طريقة عرض المناقشات thread view (طريقة العرض الافتراضيّة)، ولمشاهدة كامل الاستعلام بإمكاننا أن نضغط F وسيتم سؤالنا كما يلي: Full query for which thread id:نُدخِل مُعرِّف المناقشة thread id التي نريد عرض استعلامها، على سبيل المثال نكتب 1244 وسنشاهد ما يلي: Thread 1244 was executing following query: SELECT * FROM dept_emp WHERE ... -- paused. press any key to resume or (e) to explain --نستطيع كتابة e لشرح explain الاستعلام، والذي يقوم بشرح الاستعلام الذي يتم تنفيذه حتى نعرف إذا ما كان هذا هو الاستعلام الأمثل، إنّ EXPLAIN هي واحدة من أقوى الأدوات لفهم وتحسين استعلامات MySQL الصعبة، على سبيل المثال: EXPLAIN SELECT * FROM dept_emp: *** row 1 *** table: dept_emp type: ALL possible_keys: NULL key: NULL key_len: NULL ref: NULL rows: 332289 Extra: NULL -- paused. press any key to resume --بإمكاننا أن نضغط على أي مفتاح للخروج من هذا الوضع أو نكتب t للعودة إلى طريقة عرض المناقشات الافتراضيّة. ومن طرق العرض المفيدة الأخرى المتاحة في mytop هي طريقة عرض الأوامر command view، وللوصول إليها نكتب c، ستبدو مشابهة لما يلي: Command Total Pct | Last Pct ------- ----- --- | ---- --- select 1782 55% | 100 8% show status 723 22% | 533 45% show processlist 708 22% | 532 45% change db 2 0% | 0 0% show variables 1 0% | 0 0% Compression 0 0% | 0 0%يُظهِر العمود Command نوع الأمر أو الاستعلام الذي يتم تنفيذه، يرمز العمود Total إلى العدد الإجمالي لهذا النوع من الأوامر التي تم تنفيذها منذ بدء تشغيل الخادوم، ويُظهِر العمود Pct نفس ما سبق ولكن بالنسبة المئوية. وعلى الناحية الأخرى من الخط العمودي نجد العمود Last والذي يُخبرنا بعدد هذا النوع من الأوامر التي تم تشغيلها منذ آخر تحديث لـ mytop، تُعطينا هذه المعلومات فكرة عمّا يقوم به خادوم MySQL على المدى القريب والبعيد. ناقشنا في هذا الدّرس بعضًا من ميّزات mytop الهامّة والمفيدة، هناك العديد من الميّزات الأخرى المتاحة، ولعرض قائمة كاملة من الخيارات نستطيع أن نضغط المفتاح أثناء تشغيل mytop. الخاتمةيجب أن يكون لدينا الآن معرفة جيّدة حول كيفيّة استخدام mytop لمراقبة خادوم MySQL لدينا، وهي أيضًا نقطة انطلاق لإيجاد مشاكل استعلامات SQL وتحسينها، وبالتالي زيادة الأداء الإجمالي للخادوم. ترجمة -وبتصرّف- لـ How To Use Mytop to Monitor MySQL Performance لصاحبته Veena K John.
-
في هذا الدرس، سنشرح طريقة تثبيت Icinga على Ubuntu 14.04. نظام المراقبة Icinga هو نظام مفتوح المصدر لمراقبة الخواديم والخدمات. سنغطّي بعض الإعدادات الأساسية التي ستجعلك قادرًا على مراقبة خدمات الشبكة وموارد الجهاز المستضيف عبر واجهة الويب. سنستخدم أيضًا مشغّل ملحق Nagios البعيد (NRPE - Nagios Remote Plugin Executor)، والذي سيتم تثبيته كعميل (agent) على أنظمة بعيدة (remote systems) لمراقبة مواردها المحلّية (استخدام الأقراص، عدد المستخدمين المسجّلين للدخول.. إلخ). Icinga هو عبارة عن تطبيق مراقبة أنظمة شهير ومفتوح المصدر يعمل على مراقبة الأجهزة المستضيفة والخدمات، ويقوم أيضًا بتنبيهك دوريًا عن حالتها. Icinga هو عبارة عن اشتقاق (Fork) من Nagios، لذا فهما متوافقان مع بعضهما البعض ويتشاركان بالعديد من الأمور، وقد اكتسب Icinga شعبيةً بسبب عملية تطويره الأكثر سرعةً مقارنةً بـNagios. المتطلباتلإكمال هذا الدرس، ستحتاج إلى إمكانية استخدام صلاحيات الجذر على خادوم Ubuntu 14.04. يمكن العثور على إرشادات إعداد هذه الصلاحيات من هنا. أيضًا، إذا كنتَ تريد إعداد ميّزة التنبيه عبر البريد الإلكتروني، فستحتاج إلى القيام بإعداد Postfix بطريقةٍ صحيحة. يمكن العثور على إرشادات القيام بذلك من هنا. يتم تثبيت Postfix مع حزم Icinga، ولكن يمكن إعداده لاحقًا بعد أن يتم تثبيت Icinga. تثبيت Icingaسينقوم بتثبيت Icinga باستخدام الحزم. أيضًا، سنقوم باستخدام MySQL كقاعدة بيانات. قم بتطبيق الأمر التالي لإضافة مستودع Icinga إلى مدير الحزم الخاصّ بك: sudo add-apt-repository ppa:formorer/icingaثمّ قم بتحديث قاعدة الحزم الخاصّة بك: sudo apt updateوالآن قم بتثبيت Icinga وMySQL عبر الأمر: sudo apt install icinga icinga-doc icinga-idoutils mysql-server libdbd-mysql mysql-clientسيتم سؤالك عن أكثر من شيء أثناء عملية التثبيت. إليك قائمة بالأمور التي سيتم سؤالك عنها وكيف يجب أن تجاوب عليها: إعداد MySQL: قم بإدخال كلمة مستخدم جذر جديدة لـMySQL.إعداد Postfix: اختر "Internet Site".إعداد Postfix: قم بإدخال نطاقك المؤهّل الذي تستعمله (example.com مثلًا).إعداد icinga-cgi: قم بإدخال كلمة مرور للمستخدم "icingaadmin" (ستحتاجها لتسجيل الدخول إلى لوحة التحكّم لاحقًا).إعداد icinga-common: اختر "No" لتفعيل الأوامر الخارجية.إعداد icinga-idoutils: اختر "Yes" لإعداد قاعدة بيانات لـicinga-idoutils باستخدام dbconfig-common.إعداد icinga-idoutils: اختر "mysql" كنوع قاعدة البيانات.إعداد icinga-idoutils: أدخل كلمة مرور المستخدم الجذر (root) الخاصّ بقاعدة البيانات (التي قمتَ بإدخالها أولًا).إعداد icinga-idoutils: قم بإدخال كلمة مرور جديدة لمستخدم قاعدة البيانات الخاصّة بـicinga-idoutils.هكذا يكون تثبيت Icinga مكتملًا، ولكننا مانزال بحاجة إلى إعداد بضع أمور قبل أن نتمكّن من تشغيله. لاحظ أنّ خادوم Apache وPostfix قد تمّ تثبيتهما تلقائيًا أثناء تثبيت Icinga كاعتماديات. قم بإضافة المستخدم الرئيسي لخادوم Apache والذي يدعى www-data إلى مجموعة nagios: sudo usermod -a -G nagios www-dataقم بتفعيل عفريت ido2db لكي يبدأ عند الإقلاع، والذي يقوم بتخزين أحداث وإعدادات Icinga في قاعدة البيانات. لتعديل إعدادات Icinga الافتراضية: sudo vi /etc/default/icingaقم بتغيير قيمة IDO2DB إلى yes لتبدو بالشكل التالي: IDO2DB=yesاحفظ الملفّ واخرج، وقم بإعادة تشغيل خدمة ID02DB: sudo service ido2db startقم بتفغيل وحدة idomod عبر نسخ ملفّ عيّنة idoutils.cfg إلى مجلّد إعدادات Icinga الحالي: sudo cp /usr/share/doc/icinga-idoutils/examples/idoutils.cfg-sample /etc/icinga/modules/idoutils.cfgوالآن أصبح Icinga مضبوطًا وجاهزًا للبدء: sudo service icinga restartوالآن فلنجرّب واجهة Icinga الرسومية. الوصول إلى واجهة Icinga الرسوميةاذهب إلى http://yourhost/icinga ، وقم بتسجيل الدخول باستخدام مستخدم icingaadmin وكلمة المرور الخاصّة به اللذان قمت بإعدادهما مسبقًا. يجب أن ترى أنّه Icinga يقوم حاليًا بمراقبة مستضيفٍ واحدٍ فقط هو localhost (خادومك الحالي) و7 خدمات كالتالي: يعرض الصفّ الأوّل أنّ المستضيف الوحيد الذي يتم مراقبته حاليًا فعّال، ويظهر الصفّ السفلي أنّه هناك 7 خدمات يتم مراقبتها حاليًا وتعمل بشكلٍ جيّد. إذا كانت حالة localhost هي "Down"، فحينها ربّما تحتاج إلى تغيير صلاحيات الأمر ping الخاصّ بك. شغّل الأمر التالي للسماح للمستخدم nagios باستخدام الأمر ping: sudo chmod u+s `which ping`طرق المراقبة بواسطة Icingaهناك طريقتان رئيسيتان لمراقبة المستضيفين والخدمات بواسطة Icinga: مراقبة "الخدمات العموميّة المتوفّرة".المراقبة عبر عميل مثبّت على جهاز مستضيف (host) بعيد لجمع وإرسال البيانات إلى Icinga. عند استخدام الطريقة الأولى، تشير الخدمات العمومية العامّة إلى الخدمات التي يمكن الوصول إليها عبر الشبكة المحلّية أو الإنترنت. الأمثلة الأكثر شيوعًا لذلك هي HTTP, البريد، SSH وICMP Ping. هذه الطريقة مفيدة لمراقبة الأنظمة التي لا يمكنك (أو لا تريد) تثبيت عميل (agent) عليها، وأيضًا لمراقبة واجهات الشبكة المقابلة للمستخدم. لتضمين الطريقة الثانية، سنقوم بتثبيت NRPE كعميل خاصّ بنا على المستضيفين البعيدين (remote hosts) لمراقبة مواردهم المحلّية. سيسمح هذا لـIcinga بمراقبة أشياء مثل استخدام القرص، العمليات التي تعمل حاليًا وأمورٍ أخرى بالنظام لا يمكن للطريقة الأولى مراقبتها. الطريقة 1: مراقبة الخدمات العمومية المتوفرةبسبب أنّ الطريقة الأولى تقوم ببساطة بمراقبة الخدمات المُشغّلة حاليًا، فإنّ إعداد هذه الطريقة سيكون بأكمله على خادوم Icinga. يمكن مراقبة العديد من الأشياء باستخدام هذه الطريقة، لذا سنوضّح كيفية مراقبة واجهة عمومية (public interface) لخادوم ويب. أنشئ ملفًّا باسم المستضيف الخاصّ بك، باستخدام هذا الأمر (استبدل yourhost باسم المستضيف عندك): sudo vi /etc/icinga/objects/yourhost.cfgالآن قم بإضافة السطور التالية، حيث ستستبدل host_name باسم المستضيف الخاصّ بك (في كلا المكانين)، alias بوصف للمستضيف و address بعنوان الـIP العمومي الخاصّ بالمستضيف: define host { use generic-host host_name web-1 alias A Web Server address 107.170.xxx.xxx } define service { use generic-service host_name web-1 service_description HTTP check_command check_http }احفظ الملفّ واخرج، وقم بإعادة تحميل إعدادات خدمة Icinga لكيّ تأخذ التغييرات مجراها: sudo service icinga reloadالطريقة 2: المراقبة باستعمال عميل (Agent)كما ذكرنا سابقًا، سنستخدم NRPE كعميلنا الافتراضي لجلب البيانات من مستضيفٍ بعيد إلى Icinga. هذا يعني أنّه يجب تثبيت NRPE على جميع الأجهزة والخواديم المستضيفة التي سيتم مراقبتها باستخدام هذه الطريقة، وسيجب أيضًا إعداد خادوم Icinga ليستقبل البيانات من كلّ الأجهزة المستضيفة (hosts). فلنقم بتثبيت NRPE. تثبيت NRPE على مستضيف بعيدقم بتطبيق الأمر التالي على الخادوم الذي تريد أن يتم مراقبته لتحديث قاعدة بيانات الحزم: sudo apt updateوالآن قم بتثبيت NRPE وملحقات Nagios: sudo apt install nagios-plugins nagios-nrpe-serverابحث عن اسم نظام ملفّات الجذر الخاصّ بك (لأنّه واحدٌ من الأشياء التي نريد مراقبتها): df -h /سنستخدم اسم نظام الملفّات في إعدادات NRPE لمراقبة استخدام القرص الصلب (سيكون غالبًا /dev/vda/). الآن قم بفتح ملفّ nrpe.cfg للتعديل: sudo vi /etc/nagios/nrpe.cfgملفّ إعدادات NRPE طويلٌ جدًا ومليء بالتعليقات. هناك القليل من السطور التي يجب عليك تعديلها فقط: server_address: قم بتغييره إلى عنوان الـIP الخاصّ لهذا المستضيف.allowed_hosts: قم بتعيين هذا إلى عنوان الـIP الخاصّ لخادوم Icinga الخاصّ بك.[command[check_hda1: غيّر dev/hda1/ إلى اسم نظام الملفّات الجذر الخاصّ بك الذي حصلت عليه من الخطوة السابقة.يجب أن تبدو السطور الثلاثة كشيءٍ مشابه للتالي بعد التعديل: server_address=client_private_IP allowed_hosts=nagios_server_private_IP command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/vdaلاحظ أنّه هناك العديد من الأوامر الأخرى المعرّفة في هذا الملفّ التي سيتم تشغيلها في حال ما إذا تمّ ضبط Icinga ليستعملها. لاحظ كذلك أنّ NRPE سيعمل على المنفذ 5666 لأنّ الخيار server_port مضبوط على القيمة 5666. إذا كنتَ تمتلك أيّ جدارٍ ناري يمنع ذلك المنفذ، فيجب عليك فتحه لخادوم Icinga. احفظ الملفّ واخرج، وقم بإعادة تشغيل NRPE ليتم تطبيق التغييرات: sudo service nagios-nrpe-server restartبمجرّد ما أن تنتهي من تثبيت وإعداد NRPE على أجهزة المستضيفين التي تريد مراقبتها، سيجب عليك إضافة هؤلاء المستضيفين (hosts) إلى إعدادات خادوم Icinga الخاصّ بك قبل أن يبدأ بمراقبتهم. إضافة مستضيف بعيد إلى إعدادات خادوم Icingaعلى خادوم Icinga الخاصّ بك، قم بإنشاء ملفّ إعداداتٍ جديد لكلّ واحدٍ من الأجهزة المستضيفة البعيدة التي تريد مراقبتها في etc/icinga/objects/ واستبدل yourhost باسم المستضيف الذي تريده: sudo vi /etc/icinga/objects/yourhost.cfgقم بإضافة تعريف المستضيف التالي إلى الملفّ، واستبدل قيمة host_name باسم المستضيف البعيد الخاصّ بك (استعملتُ wordpress-1 في مثالي)، قيمة alias بوصف للمستضيف وقيمة address بعنوان الـIP الخاصّ للمستضيف البعيد: define host { use generic-host host_name wordpress-1 alias My first wordpress server address 10.128.xxx.xxx }ثمّ قم بإضافة أيّ واحدٍ من أقسام الخدمات التي تريد مراقبتها. لاحظ أنّ قيمة check_command تحدد مالذي سيتم مراقبته. إليك بعض الأمثلة على ما يمكنك إضافته إلى ملفّ الإعدادات الخاصّ بالمستضيف البعيد الخاصّ بك: Ping: define service { use generic-service host_name wordpress-1 service_description PING check_command check_ping!100.0,20%!500.0,60% }SSH (عند تعيين notifications_enabled إلى 0 فإنّه يتم تعطيل التنبيهات للخدمة) define service { use generic-service host_name wordpress-1 service_description SSH check_command check_ssh notifications_enabled 0 }الحمل(Load): define service { use generic-service host_name wordpress-1 service_description Current Load check_command check_load!5.0!4.0!3.0!10.0!6.0!4.0 }المستخدمون الحاليون: define service { use generic-service host_name wordpress-1 service_description Current Users check_command check_users!20!50 }مساحة القرص: define service { use generic-service host_name wordpress-1 service_description Disk Space check_command check_all_disks!20%!10% }إذا كنت تتسائل عن معنى use generic-service، فهي عبارة عن خيار يقوم ببساطة بجلب قِيَم قالب خدمة يدعى "generic-service" المعرّف افتراضيًا. الآن احفظ الملفّ واخرج. وقم بإعادة تحميل إعدادات Icinga: sudo service icinga reloadمثال على واجهة المستخدمبعد ضبط إعدادات المراقبة على بعض أجهزة المستضيفين بواحدٍ من الطرق المتوفّرة، اذهب إلى واجهة الويب الخاصّة بـIcinga على http://youricingaserver.com/icinga وأدخل اسم المستخدم وكلمة المرور اللذين أدخلتهما أثناء التثبيت. واضغط على رابط "Service Link". يجب أن ترى قائمة بجميع الخدمات التي قمتَ بتجهيزها ليتم مراقبتها حاليًا. كمثال، إليك مستضيفين اثنين يتم مراقبتهما باستخدام ملفّات الإعدادات التي وصفناها بالأعلى. يتم مراقبة خدمة web-1HTTP عبر منفذ HTTP العادي الخاصّ بها، وهي حاليًا تخبرنا أنّ كلّ شيءٍ يعمل بشكلٍ جيّد، وwordpress-1 يخبرنا أيضًا أنّ جميع خدماته التي نراقبها تعمل بشكلٍ جيّد حاليًا. يمتلك Icinga الكثير من المزايا، يمكنك تصفّح واجهة الويب لاستكشاف المزيد عن المستضيفين والخدمات التي تراقبها. الخاتمةالآن وبعد أن صرتَ قادرًا على مراقبة الخواديم التي تريدها والخدمات التي تحددها، ربّما تريد إمضاء المزيد من الوقت في استكشاف الخدمات المهمّة بالنسبة لك والتي تريد مراقبتها. ربّما تودّ أيضًا إعداد التنبيهات عبر البريد الإلكتروني في حال امتلاء القرصّ الصلب الخاصّ بك مثلًا أو تعطّل موقعك الرئيسي، لكي تتمكن من حلّ المشاكل فورًا أو قبل حصولها حتّى. ترجمة -وبتصرف- للمقال: How To Use Icinga To Monitor Your Servers and Services On Ubuntu 14.04 لصاحبه: Mitchell Anicas. حقوق الصورة البارزة: Designed by Freepik.