विंडोमैकसॉफ्टवेयरसेटिंग्ससुरक्षाउत्पादकतालिनक्सएंड्रॉइडप्रदर्शनकॉन्फ़िगरेशनएप्पल सभी

Debian में लॉग्स के लिए journalctl का उपयोग कैसे करें

संपादित 4 दिन पहले द्वारा ExtremeHow संपादकीय टीम

डेबियनजर्नलसीटीएललॉग्ससीएलआईसिस्टम प्रशासनलिनक्सनिगरानीओपन सोर्ससमस्या निवारणसॉफ्टवेयर

Debian में लॉग्स के लिए journalctl का उपयोग कैसे करें

अनुवाद अपडेट किया गया 4 दिन पहले

Debian अपनी स्थिरता और व्यापक सॉफ्टवेयर पैकेज रिपॉजिटरी के लिए जाना जाता है। एक स्थिर और सुरक्षित सिस्टम को बनाए रखने के मुख्य पहलुओं में से एक है सिस्टम लॉग्स की नियमित निगरानी करना। लॉग्स सिस्टम प्रशासकों को यह समझने में मदद करते हैं कि सिस्टम के भीतर क्या हो रहा है। वे समस्याओं का समाधान करने या सिस्टम प्रदर्शन को समझने के लिए अमूल्य जानकारी प्रदान कर सकते हैं।

Linux सिस्टम पर लॉग प्रबंधन की पारंपरिक विधि /var/log निर्देशिका में स्थित टेक्स्ट फाइलों का उपयोग करना है। इन लॉग्स को विभिन्न सेवाओं जैसे syslog या कई Debian सिस्टम में विशेष रूप से rsyslog द्वारा प्रबंधित किया जाता है। हालांकि, systemd के आगमन के साथ एक नई लॉगिंग प्रणाली journald का उपयोग होने लगा, और यह पारंपरिक लॉगिंग विधियों की तुलना में कुछ उल्लेखनीय सुधार और विशेषताएं प्रदान करता है।

इस दस्तावेज़ में, हम विस्तार से चर्चा करेंगे कि आप systemd लॉग्स को देखने और प्रबंधित करने के लिए journalctl कमांड का उपयोग कैसे कर सकते हैं। आइए इस शक्तिशाली कमांड का अन्वेषण करें और सीखें कि यह आपके सिस्टम लॉग्स को प्रभावी ढंग से प्रबंधित करने में कैसे मदद कर सकता है।

JournalCTL और SystemD का परिचय

journalctl के उपयोग पर चर्चा करने से पहले, systemd और journald की बुनियादी समझ होना महत्वपूर्ण है। systemd Linux ऑपरेटिंग सिस्टम के लिए एक सिस्टम और सेवा प्रबंधक है। इसे बेहतर सेवा प्रबंधन और बूट-अप प्रदर्शन प्रदान करने के लिए डिज़ाइन किया गया था। journald systemd का लॉगिंग घटक है, जो लॉग्स को एकत्रित और स्टोर करने के लिए जिम्मेदार है।

पारंपरिक लॉगिंग विधियों के विपरीत, जो लॉग्स को सादे टेक्स्ट फाइलों के रूप में स्टोर करते हैं, journald लॉग्स को बाइनरी प्रारूप में स्टोर करता है, जो कई लाभ प्रदान कर सकता है, जिसमें बेहतर प्रदर्शन, अनुक्रमण, और फ़िल्टरिंग क्षमताएं शामिल हैं।

journalctl कमांड इस बाइनरी लॉग डेटा को क्वेरी करने के लिए उपयोग किया जाता है, जिसमें इसे जितना संभव हो सके बहुमुखी बनाने के लिए विभिन्न फ़िल्टरिंग विकल्पों की एक विस्तृत श्रृंखला है।

journalctl का बुनियादी उपयोग

journalctl का सबसे सरल उपयोग इसे किसी भी तर्क या विकल्प के बिना चलाना है। यह सभी उपलब्ध लॉग प्रविष्टियों को प्रदर्शित करेगा, जो सबसे पुरानी से शुरू होती हैं।

$ journalctl

प्रत्येक प्रविष्टि के लिए समय और संदेश के साथ लॉग प्रदर्शित किया जाएगा। हालांकि, संभावित रूप से बड़ी मात्रा में प्रविष्टियों को देखते हुए, डेली लॉग देखने के लिए एक विकल्प का उपयोग करना आमतौर पर व्यावहारिक नहीं होता है, खासकर उन सिस्टम पर जो लंबे समय से चल रहे हैं।

नवीनतम लॉग्स देखना

अक्सर, आप बस सबसे हाल के लॉग्स देखने में रुचि रखते हैं, पुराने प्रविष्टियों को नहीं देखना चाहते हैं। -n झंडे का उपयोग करके उसके बाद संख्या, आप यह निर्दिष्ट कर सकते हैं कि आप कितनी हाल की लाइनों को देखना चाहते हैं:

$ journalctl -n 50

यह कमांड अंतिम 50 लॉग प्रविष्टियाँ लाएगा। बिना संख्या निर्दिष्ट किए डिफ़ॉल्ट व्यवहार अंतिम दस पंक्तियों को दिखाना है:

$ journalctl -n

लॉग्स को वास्तविक समय में फॉलो करना

दूसरी उपयोगी विशेषता है लॉग्स को वास्तविक समय में फॉलो करने की क्षमता, जैसे tail -f कमांड पारंपरिक लॉग्स के लिए। इसे -f झंडे के साथ प्राप्त किया जा सकता है:

$ journalctl -f

यह कमांड नए लॉग प्रविष्टियों को प्रदर्शित करेगा जैसे वे प्रकट होते हैं, जो विशेष रूप से समस्या को सुलझाने के सत्रों के दौरान लॉग आउटपुट की निगरानी के लिए उपयोगी है।

लॉग को फ़िल्टर करना

journalctl का एक शक्तिशाली पहलू इसकी विभिन्न मानदंडों का उपयोग करके लॉग्स को फ़िल्टर करने की क्षमता है। यह महत्वपूर्ण है जब आपको कुछ घटनाओं या प्रकार के लॉग प्रविष्टियों का पता लगाना हो।

समय के अनुसार फ़िल्टर करना

आप --since और --until विकल्पों का उपयोग करके आसानी से लॉग्स को किसी विशिष्ट समय सीमा में फ़िल्टर कर सकते हैं। दोनों विकल्प विभिन्न समय प्रारूपों को स्वीकार करते हैं, जिसमें सापेक्ष समय शामिल है:

$ journalctl --since "2023-03-01 00:00:00" --until "2023-03-01 23:59:59"

आप सापेक्ष समय का भी उपयोग कर सकते हैं:

$ journalctl --since "1 hour ago"

यहाँ, पिछले एक घंटे के लॉग दिखाई जाएंगे।

यूनिट के द्वारा फ़िल्टर करना

चूंकि journald systemd के साथ गहराई से एकीकृत है, जो "यूनिट्स" के रूप में सेवाओं का प्रबंधन करता है, आप किसी विशिष्ट सेवा यूनिट के लिए लॉग्स को फ़िल्टर कर सकते हैं। यूनिट name के बाद -u झंडे का उपयोग करें:

$ journalctl -u apache2.service

यह केवल Apache वेब सर्वर सेवा से संबंधित लॉग्स दिखाएगा, जो सेवा-विशिष्ट समस्याओं का निदान करने में सहायक है।

प्राथमिकता के अनुसार फ़िल्टर करना

Systemd लॉग्स की अलग-अलग प्राथमिकताएँ होती हैं। यदि आप सिर्फ गंभीर लॉग संदेशों में रुचि रखते हैं, तो आप इन प्राथमिकताओं के अनुसार लॉग्स को फ़िल्टर कर सकते हैं:

$ journalctl -p err

यह कमांड केवल "त्रुटि" या उच्च स्तर की प्राथमिकता वाले लॉग प्रविष्टियों को दिखाएगा, जिसमें "गंभीर", "चेतावनी", और "आपातकालीन" संदेश शामिल हो सकते हैं।

फ़िल्टर्स का संयोजन

आप लॉग्स को और अधिक सटीक रूप से सीमित करने के लिए विभिन्न फ़िल्टर्स को जोड़ सकते हैं। उदाहरण के लिए, यदि आप पिछले घंटे के लिए Apache2 सेवा के त्रुटि संदेश प्राप्त करना चाहते हैं:

$ journalctl -u apache2.service -p err --since "1 hour ago"

यह लचीलापन आपको जल्दी से रुचि के लॉग्स पर ध्यान केंद्रित करने की अनुमति देता है।

Persistent Logging

डिफ़ॉल्ट रूप से, कुछ सिस्टम पर journald को रिबूट के बीच में स्थायी लॉग्स स्टोर नहीं करने की अनुमति नहीं हो सकती है। इसे रिबूट के बाद लॉग्स देखकर निर्धारित किया जा सकता है। यदि आप स्थायी लॉगिंग सक्षम करना चाहते हैं, सुनिश्चित करें कि निर्देशिका /var/log/journal मौजूद है। यदि यह वहां नहीं है, तो इसे बनाएँ:

$ sudo mkdir -p /var/log/journal $ sudo systemctl restart systemd-journald

यह journald को बाइनरी जर्नल प्रारूप में रिबूट्स के पार स्थायी रूप से लॉग्स स्टोर करने के लिए कॉन्फ़िगर करेगा।

जर्नल लॉग्स को साफ़ और प्रबंधित करना

समय के साथ, जर्नल लॉग्स एकत्र हो सकते हैं और महत्वपूर्ण डिस्क स्थान ले सकते हैं। आप journalctl कमांड के साथ डिस्क स्थान उपयोग का प्रबंधन कर सकते हैं:

जर्नल लॉग के डिस्क उपयोग की जाँच करें

आप देख सकते हैं कि जर्नल लॉग्स कितना स्थान लेते हैं --disk-usage विकल्प का उपयोग कर:

$ journalctl --disk-usage

यह कमांड जर्नल लॉग द्वारा लिया गया कुल स्थान प्रदर्शित करेगा।

पुराने लॉग्स को हटाना

आप --vacuum-time, --vacuum-size, या --vacuum-files विकल्पों का उपयोग करके पुराने लॉग्स को हटा सकते हैं। उदाहरण के लिए, यदि आप दो सप्ताह से अधिक पुराने लॉग्स को हटाना चाहते हैं, तो निम्नलिखित कमांड का उपयोग करें:

$ sudo journalctl --vacuum-time=2weeks

सिर्फ एक निश्चित मात्रा में लॉग्स (उदाहरण के लिए, 500MB) रखने के लिए:

$ sudo journalctl --vacuum-size=500M

ऊपर उल्लिखित विधियों द्वारा जर्नल लॉग को डिस्क पर निर्दिष्ट स्थान तक उपयोग की अनुमति दी जाती है।

लॉग्स का निर्यात और सहेजना

कभी-कभी आपको जर्नल वातावरण के बाहर लॉग्स साझा करने या निरीक्षण करने की आवश्यकता हो सकती है। आप journalctl के साथ विभिन्न प्रारूपों में लॉग्स को निर्यात कर सकते हैं:

टेक्स्ट फाइलों में निर्यात करना

आप आसान साझा करने या संग्रहीप के लिए जर्नल लॉग आउटपुट को साधारण टेक्स्ट फाइलों में पुनर्निर्देशित कर सकते हैं:

$ journalctl > /path/to/your/output.txt

यह कमांड पूरे लॉग को एक टेक्स्ट फाइल में कॉपी करेगा। आप आवश्यकतानुसार आउटपुट को सीमित करने के लिए फ़िल्टर्स लागू कर सकते हैं।

JSON में निर्यात करना

JSON प्रारूप में लॉग्स आउटपुट करने के लिए, जिसे विभिन्न उपकरणों द्वारा प्रोग्रामेटिक रूप से पार्स किया जा सकता है, -o json विकल्प का उपयोग करें:

$ journalctl -o json-pretty > /path/to/your/output.json

यह कमांड लॉग्स का JSON प्रस्तुतीकरण उत्पन्न करेगा, जिससे लॉग डेटा को प्रोग्रामेटिक रूप से खंडित करना आसान हो जाएगा।

एक बाइनरी जर्नल बैकअप बनाना

यदि आप सभी अतिरिक्त मेटाडेटा सहित एक बाइनरी बैकअप चाहते हैं, तो आप --output-export विकल्प का उपयोग कर सकते हैं:

$ journalctl --output-export > /path/to/backup.journal

यह आपको जर्नल-विशिष्ट जानकारी को एक ऐसे प्रारूप में सुरक्षित रखने की अनुमति देता है जिसे आसानी से बैकअप फाइल के साथ journalctl --merge का उपयोग करके systemd-journal में पुनः आयातित किया जा सकता है।

निष्कर्ष

journalctl कमांड Debian सिस्टम पर एक शक्तिशाली उपकरण है जहां systemd को journald के माध्यम से लॉग्स प्रबंधित करने के लिए उपयोग किया जाता है। यह सिस्टम लॉग्स को देखने, फ़िल्टर करने, और प्रबंधित करने के लिए मजबूत क्षमताएं प्रदान करता है, पारंपरिक लॉगिंग विधियों के मुकाबले लचीलापन और दक्षता के मामले में एक महत्वपूर्ण बढ़त प्रदान करता है।

सरल कमांडों के माध्यम से, journalctl आपको कालक्रमानुसार लॉग्स देखने, वास्तविक समय में उन्हें फॉलो करने, विभिन्न शर्तों द्वारा फ़िल्टर करने, और आपके सिस्टम पर स्टोर किए गए लॉग डेटा को प्रबंधित करने की अनुमति देता है। सिस्टम प्रशासकों और उपयोगकर्ताओं के लिए, journalctl का लाभ उठाने का समझना सिस्टम घटनाओं की बेहतर निगरानी और तेज़ी से समस्या समाधान की ओर ले जा सकता है, जो अंततः एक सुचारु ऑपरेटिंग वातावरण बनाए रखने में योगदान देता है।

यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं


टिप्पणियाँ