कुबेरनेट्स पॉड्स लॉग लीजिए
मैं अपने पूरे जीवन चक्र में अपने एप्लिकेशन कंटेनरों के लॉग को इकट्ठा करने की कोशिश कर रहा हूं। ये कंटेनर कुबेरनेट्स पॉड्स के अंदर चल रहे हैं, मुझे फ्लुएंट जैसे समाधान मिले हैं, लेकिन मुझे यह भी पता चला है कि मुझे एक बैकएंड (एलेस्टिक्स, एडब्ल्यूएस एस 3, आदि) निर्दिष्ट करने की आवश्यकता है, जबकि मैं विशिष्ट नाम वाले फाइलों के अंदर लॉग इकट्ठा करना चाहता हूं, उदाहरण के लिए। podname_namespace_containername.json और फिर स्क्रिप्ट का उपयोग करके उन फ़ाइलों को पार्स करें। क्या यह धाराप्रवाह के साथ संभव है?
जवाब
अब तक लॉग कलेक्शन को सेटअप करने का सबसे तेज़ तरीका है https://github.com/helm/charts/tree/master/stable/fluent-bit। values.yamlउपलब्ध सभी विकल्पों के लिए देखें । यह ES, S3, Kafka जैसे कई बैकेंड का समर्थन करता है। हर लॉग इवेंट को पॉड मेटाडेटा (पॉड नाम, नेमस्पेस, आदि) से समृद्ध किया जाता है और टैग किया जाता है ताकि आप बैकएंड पर अलग से प्रोसेसिंग को व्यवस्थित कर सकें। उदाहरण के लिए एक बैकएंड पर आप कुछ नेमस्पेस में केवल कुछ पॉड्स का चयन और पार्स कर सकते हैं।
के अनुसार https://kubernetes.io/docs/concepts/cluster-administration/logging/ आप stdout / stderr पर लॉग इन करते हैं, यह अंतर्निहित नोड को लिखा जाता है, एक लॉग कलेक्टर (डेमोंसेट) सब कुछ इकट्ठा करता है और आगे भेजता है।
Kubernetes में फ्लुएंटबिट डेमोंसेट बिल्कुल इसी आर्किटेक्चर को लागू करता है। FluentBit पर अधिक डॉक्स:https://docs.fluentbit.io/manual/concepts/data-pipeline