تسجيل الشبكة المركزية - سجل النظام والبدائل؟[مغلق]

StackOverflow https://stackoverflow.com/questions/1809296

سؤال

في العمل، نقوم ببناء تطبيق موزع (ربما عبر عدة أجهزة على شبكة LAN، وربما لاحقًا عبر عدة قارات على شبكة WAN+VPN).لا نريد ملفات سجل محلية لكل جهاز (تملأ القرص الخاص به ويستحيل عرضها بشكل إجمالي) لذا نحتاج إلى تسجيل مركزي عبر الشبكة.لن تكون معظم السجلات مهمة، لذا فإن UDP مناسب لها، ولكن بعضها عبارة عن تنبيهات مهمة تخسر الأموال ويجب تسليمها بشكل موثوق، مما يعني ضمناً TCP.نحن قلقون بشأن ازدحام الشبكة إذا كان بروتوكول التسجيل كثير الدردشة، أو سحب التطبيقات إلى الزحف إذا لم يكن مستجيبًا.

بعض الاحتمالات التي فكرت فيها هي:

  • سجل النظام (يبدو الأمر مثاليًا، لكن مديري لديه عداء ضد هذا الأمر، لذا قد لا أتمكن من اختياره).
  • الكاتب من facebook (لكن يبدو الأمر ثقيلًا بعض الشيء مع وجود خادم على كل جهاز - فليست كل رسالة سجل تحتاج إلى موثوقية فائقة).
  • باستخدام قائمة انتظار الرسائل مثل Rabbitmq والتي يمكن أن تحتوي على قوائم انتظار متعددة مضبوطة على مستويات مختلفة من أمان المعاملات.
  • وفي أسوأ الأحوال، أستطيع أن أكتب ما لدي من الصفر.

هل لديك مناقشة أخرى؟ما هي حلول التسجيل المركزية التي استخدمتها، وما مدى نجاحها؟

يحرر: كنت أميل نحو الكاتب، لأن تصميم المتجر وإعادة التوجيه يفصل التطبيق قيد التشغيل عن زمن استجابة الشبكة.ولكن بعد معاناة من أجل تثبيته، وجدت أن (1) غير متوفر كحزمة ثنائية - وهذا أمر لا يغتفر في الوقت الحاضر - و (2) يعتمد بشكل وثيق على مكتبة (توفير) غير متوفرة كحزمة ثنائية أيضًا!والأسوأ من ذلك كله، أنه لن يتم تجميعه بشكل صحيح.هذا ليس إصدارًا لرمز الجودة، حتى في المصادر المفتوحة.

هل كانت مفيدة؟

المحلول

لقد استخدمنا بنجاح ZeroMQ للحصول على سجلات سيناريو التطبيق الموزع مثل سيناريو التطبيق الخاص بك.إنها موثوقة للغاية وسريعة بشكل لا يصدق.انتقلنا إلى ZeroMQ بعد التنفيذ غير الناجح الانتشار.في إعدادنا، يستطيع خادم ZeroMQ واحد التعامل مع أكثر من 70 سجلًا مختلفًا من تطبيق موزع متوسط ​​إلى عالي الانشغال.يتلقى البيانات من الشبكة المحلية (LAN) وعبر الإنترنت.

إذا كنت بحاجة إلى مقارنة مفصلة لخادم قائمة الانتظار، أنظر إلى هذه الصفحة من ويكي الحياة الثانية.

نأمل أن يساعد!

نصائح أخرى

هناك العديد من البدائل في الآونة الأخيرة.والجدير بالذكر أن الكاتب لم يعد يحتفظ به بعد الآن.لقد طور فيسبوك خليفته المسمى Caligraphus، وهو ليس مفتوح المصدر.وهنا قائمة من البدائل.

  • سجل النظام:مثبت على جميع توزيعات لينكس
  • بطلاقة:مُسجل خفيف الوزن يستند إلى C+Ruby، والذي يتعامل مع السجلات كتدفق JSON
  • المسايل:تم تطويره في Cloudera، ومكتوب بلغة Java ويعمل بشكل جيد مع أنظمة Hadoop البيئية
  • أباتشي كافكا:تم تطويره في LinkedIn، وهو عبارة عن بنية قائمة على السحب
  • الكاتب:مفتوح المصدر بواسطة فيسبوك، ولكن لم يعد يتم صيانته بعد الآن

تنصل:أنا ملتزم بمشروع Fluentd.

يعد Syslog جيدًا إذا كنت تنوي التركيز فقط على سجلات البنية التحتية (على سبيل المثال.على مستوى النظام).سمعت ان خادم كيوي سيسلوغ فكرة جيدة، على الرغم من أنني لم أحاول ذلك بنفسي.من ناحية أخرى، إذا كنت تريد تسجيل أشياء متعلقة بالتطبيق، فقد لا يكون سجل النظام هو الخيار الأفضل لهذا الغرض.في حالة استخدام خدمات تسجيل Apache (log4j وlog4xxx والباقي)، إذن logfaces سيكون حلاً جيدًا لأنه مصمم خصيصًا لتجميع تطبيقات متعددة في مكان واحد.يعمل مع كل من اتصالات TCP أو UDP ولديه عارض سجل لائق وتكامل قاعدة البيانات.

إفشاء:أنا مؤلف هذا المنتج.

قد تكون الأمثلة الأخرى رائعة، ولكنني كنت محظوظًا بها سجل النظام-NG.إنه مرن للغاية وقابل للتكوين؛على الرغم من أنه من السهل جدًا التقاطه والقيام بشيء مفيد بسرعة.

قد تفكر أيضًا في استخدام تنبيهات SNMP.

راجعت جميع البدائل الموصى بها في هذا الموضوع.بحثت عن شيء مدعوم ببايثون.بحثت في Google أكثر ووجدت حارسًا https://getsentry.com/welcome/ مفتوح المصدر، موثق جيدًا.يجب أن تكون موثوقة لأغراض تجارية حيث يوجد عمل يعتمد على ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top