2009-11-27 17 views
14

काम पर, हम एक वितरित अनुप्रयोग (संभवतः एक लैन पर कई मशीनों में, संभवतः बाद में एक वैन + वीपीएन पर कई महाद्वीपों में) बना रहे हैं। हम लॉग मशीनों को प्रत्येक मशीन में स्थानीय नहीं चाहते हैं (अपनी डिस्क भरना और कुल में देखना असंभव है) इसलिए हमें नेटवर्क पर लॉगिंग को केंद्रीकृत करने की आवश्यकता है। अधिकांश लॉग महत्वपूर्ण नहीं होंगे, इसलिए यूडीपी उनके लिए ठीक है, लेकिन कुछ महत्वपूर्ण अलर्ट खोने वाले पैसे हैं और विश्वसनीय रूप से वितरित किए जाने चाहिए, जो टीसीपी को लागू करते हैं। यदि नेटवर्क लॉगिंग प्रोटोकॉल बहुत चिपचिपा है, या ऐप्स को क्रॉल में खींचने के बारे में चिंतित हैं, तो यह नेटवर्क को संकुचित करने के बारे में चिंतित है यदि यह उत्तरदायी नहीं है।केंद्रीकृत नेटवर्क लॉगिंग - syslog और विकल्प?

कुछ संभावनाओं पर विचार किया है मैं कर रहे हैं:

  • syslog (यह सही लगता है, लेकिन मेरे मालिक इस के खिलाफ एक विरोध है तो मैं यह चयन करने में सक्षम नहीं हो सकता है)।
  • फेसबुक से (लेकिन यह हर मशीन पर एक सर्वर के साथ थोड़ा हेवीवेट लगता है - हर लॉग संदेश को अल्ट्रा-विश्वसनीयता की आवश्यकता नहीं होती है)।
  • rabbitmq जैसे संदेश कतार का उपयोग करके लेनदेन सुरक्षा के विभिन्न स्तरों पर कई कतारों को ट्यून किया जा सकता है।
  • सबसे खराब मामला, मैं खरोंच से अपना खुद का लिख ​​सकता हूं।

क्या आपके पास अन्य सुझाव हैं? आपने किस केंद्रीकृत लॉगिंग समाधान का उपयोग किया है, और उन्होंने कितनी अच्छी तरह से काम किया?

संपादित करें: मैं लेखक की ओर झुका रहा था, क्योंकि इसकी स्टोर-एंड-फॉरवर्ड डिज़ाइन नेटवर्क विलंबता से चल रहे ऐप को रद्द कर देती है। लेकिन इसे स्थापित करने के लिए संघर्ष करने के बाद, मैंने पाया कि (1) यह एक बाइनरी पैकेज के रूप में उपलब्ध नहीं है - आजकल यह अक्षम्य है - और (2) यह एक पुस्तकालय (बहाव) पर गहराई से निर्भर करता है जो कि बाइनरी पैकेज के रूप में उपलब्ध नहीं है! और सबसे बुरी बात यह है कि यह ठीक से संकलित नहीं होगा। यह मुक्त स्रोत में भी गुणवत्ता कोड जारी नहीं है।

उत्तर

10

हमने आपके जैसे वितरित एप्लिकेशन परिदृश्य के लॉग के लिए सफलतापूर्वक ZeroMQ का उपयोग किया है। यह बहुत विश्वसनीय और अविश्वसनीय रूप से तेज़ है। हम Spread के साथ सफल सफल कार्यान्वयन के बाद ज़ीरोएमक्यू में चले गए। हमारे सेटअप में एक एकल ज़ीरोएमक्यू सर्वर मध्यम से उच्च व्यस्त वितरित अनुप्रयोग से 70 से अधिक विभिन्न लॉगों को संभालने में सक्षम है। यह लैन से और इंटरनेट के माध्यम से डेटा प्राप्त करता है।

यदि आपको विस्तृत कतार सर्वर तुलना की आवश्यकता है, look at this page from the Second Life wiki

उम्मीद है कि यह मदद करता है!

+0

सीधे लॉगिंग के लिए, मैं अभी भी Syslog-NG की अनुशंसा करता हूं लेकिन स्पष्ट रूप से समुदाय मेरे साथ असहमत है :) फिर भी, द्वितीय जीवन विकी के उत्कृष्ट लिंक के लिए +1। आकर्षक पढ़ने। – JasonSmith

1

आप एसएनएमपी अलर्ट का उपयोग करने पर भी विचार कर सकते हैं।

4

अन्य उदाहरण बहुत अच्छे हो सकते हैं, लेकिन मुझे Syslog-NG के साथ शुभकामनाएं मिली हैं। यह बेहद लचीला और विन्यास योग्य है; हालांकि इसे चुनना और जल्दी से कुछ उपयोगी करना बहुत आसान है।

5

यदि आप केवल बुनियादी ढांचे लॉग (जैसे सिस्टम स्तर पर) पर ध्यान केंद्रित करना चाहते हैं तो Syslog अच्छा है। मैंने सुना है कि KIWI Syslog Server एक अच्छा है, हालांकि इसे स्वयं नहीं किया। दूसरी ओर, यदि आप किसी एप्लिकेशन से संबंधित सामग्री लॉग करना चाहते हैं, तो शायद syslog इस के लिए सबसे अच्छा विकल्प नहीं है। यदि आप अपाचे लॉगिंग सेवाओं (log4j, log4xxx और बाकी) का उपयोग करते हैं, तो logFaces एक अच्छा समाधान होगा क्योंकि यह विशेष रूप से एक ही स्थान पर एकाधिक अनुप्रयोगों को एकत्रित करने के लिए बनाया गया है। दोनों टीसीपी या यूडीपी कनेक्शन के साथ काम करता है और सभ्य लॉग दर्शक और डेटाबेस एकीकरण है।

प्रकटीकरण: मैं इस उत्पाद का लेखक हूं।

+1

हाय, बस सोच रहा है कि syslog एप्लिकेशन से संबंधित सामानों के लिए सबसे अच्छा विकल्प क्यों नहीं हो सकता है। मैं लॉग इन समाधान और मेरी टीम के लोगों को सब कुछ के लिए syslog का उपयोग करने का सुझाव देने पर विचार कर रहा हूं। इसलिए, हमारे पास एक सिस्टम में इतने सारे अलग लॉग समाधान नहीं हैं। –

+1

ठीक है, syslog सरल है जो अच्छा है। लेकिन बहुत आसान हमेशा सबसे अच्छा नहीं है। वहां लॉगिंग फ्रेमवर्क हैं और वे सभी किसी कारण से मौजूद हैं। उदाहरण के लिए, यदि मैं lo4j के बजाय syslog का उपयोग करता हूं तो मेरा सर्वर साइड जावा एप्लिकेशन वास्तविक दर्द होगा। लेकिन अगर आप मेरे मालिक से पूछते हैं जो कई ऐप्स प्रबंधित करता है, तो निश्चित रूप से वह आपको बताएगा - एक सिस्टम का उपयोग करें। यह ऐप पर निर्भर करता है। और यह इस बात पर निर्भर करता है कि आप किससे पूछते हैं। – Dima

+0

मैं देखता हूं। धन्यवाद! मैंने सोचा कि यह स्केलिंग या प्रदर्शन समस्या पर अधिक था। लेकिन यह प्रत्येक लॉग प्रकार के लिए उपयोग और आसान इंटरफ़ेस के बारे में अधिक प्रतीत होता है। –

5

हाल ही में कई विकल्प हैं। विशेष रूप से, स्क्रिप्ट अब और बनाए रखा नहीं है। फेसबुक ने कैलिग्राफस नामक उत्तराधिकारी विकसित किया, और यह खुलासा नहीं हुआ है। विकल्पों की एक सूची यहां दी गई है।

  • syslog: सभी लिनक्स वितरण
  • पर स्थापित
  • Fluentd: सी + रूबी आधारित हल्के लकड़हारा, जो JSON धारा के रूप में लॉग संभालती
  • Flume: क्लाउडेरा पर विकसित की है, जावा में लिखा और Hadoop पारिस्थितिकी प्रणालियों के साथ अच्छी तरह से काम करता है
  • Apache Kafka: लिंक्डइन पर विकसित की है, खींच आधारित वास्तुकला
  • स्क्राइब: फेसबुक द्वारा मुक्त-स्रोत, लेकिन अब नहीं रखा

अस्वीकरण: मैं फ्लुएंटेड परियोजना का एक कमिश्नर हूं।

1

इस धागे में अनुशंसित सभी विकल्पों की समीक्षा की। पाइथन संचालित कुछ के लिए देखा। अधिक गुम हो गया और संप्रदाय https://getsentry.com/welcome/ ओपन सोर्स, अच्छी तरह से प्रलेखित पाया गया। वाणिज्यिक के लिए भरोसेमंद होना चाहिए क्योंकि इस पर आधारित एक व्यवसाय है।

संबंधित मुद्दे