संपादित 4 दिन पहले द्वारा ExtremeHow संपादकीय टीम
डेबियनजर्नलसीटीएललॉग्ससीएलआईसिस्टम प्रशासनलिनक्सनिगरानीओपन सोर्ससमस्या निवारणसॉफ्टवेयर
अनुवाद अपडेट किया गया 4 दिन पहले
Debian अपनी स्थिरता और व्यापक सॉफ्टवेयर पैकेज रिपॉजिटरी के लिए जाना जाता है। एक स्थिर और सुरक्षित सिस्टम को बनाए रखने के मुख्य पहलुओं में से एक है सिस्टम लॉग्स की नियमित निगरानी करना। लॉग्स सिस्टम प्रशासकों को यह समझने में मदद करते हैं कि सिस्टम के भीतर क्या हो रहा है। वे समस्याओं का समाधान करने या सिस्टम प्रदर्शन को समझने के लिए अमूल्य जानकारी प्रदान कर सकते हैं।
Linux सिस्टम पर लॉग प्रबंधन की पारंपरिक विधि /var/log
निर्देशिका में स्थित टेक्स्ट फाइलों का उपयोग करना है। इन लॉग्स को विभिन्न सेवाओं जैसे syslog
या कई Debian सिस्टम में विशेष रूप से rsyslog
द्वारा प्रबंधित किया जाता है। हालांकि, systemd
के आगमन के साथ एक नई लॉगिंग प्रणाली journald
का उपयोग होने लगा, और यह पारंपरिक लॉगिंग विधियों की तुलना में कुछ उल्लेखनीय सुधार और विशेषताएं प्रदान करता है।
इस दस्तावेज़ में, हम विस्तार से चर्चा करेंगे कि आप systemd
लॉग्स को देखने और प्रबंधित करने के लिए journalctl
कमांड का उपयोग कैसे कर सकते हैं। आइए इस शक्तिशाली कमांड का अन्वेषण करें और सीखें कि यह आपके सिस्टम लॉग्स को प्रभावी ढंग से प्रबंधित करने में कैसे मदद कर सकता है।
journalctl
के उपयोग पर चर्चा करने से पहले, systemd
और journald
की बुनियादी समझ होना महत्वपूर्ण है। systemd
Linux ऑपरेटिंग सिस्टम के लिए एक सिस्टम और सेवा प्रबंधक है। इसे बेहतर सेवा प्रबंधन और बूट-अप प्रदर्शन प्रदान करने के लिए डिज़ाइन किया गया था। journald
systemd
का लॉगिंग घटक है, जो लॉग्स को एकत्रित और स्टोर करने के लिए जिम्मेदार है।
पारंपरिक लॉगिंग विधियों के विपरीत, जो लॉग्स को सादे टेक्स्ट फाइलों के रूप में स्टोर करते हैं, journald
लॉग्स को बाइनरी प्रारूप में स्टोर करता है, जो कई लाभ प्रदान कर सकता है, जिसमें बेहतर प्रदर्शन, अनुक्रमण, और फ़िल्टरिंग क्षमताएं शामिल हैं।
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"
यह लचीलापन आपको जल्दी से रुचि के लॉग्स पर ध्यान केंद्रित करने की अनुमति देता है।
डिफ़ॉल्ट रूप से, कुछ सिस्टम पर 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 प्रारूप में लॉग्स आउटपुट करने के लिए, जिसे विभिन्न उपकरणों द्वारा प्रोग्रामेटिक रूप से पार्स किया जा सकता है, -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
का लाभ उठाने का समझना सिस्टम घटनाओं की बेहतर निगरानी और तेज़ी से समस्या समाधान की ओर ले जा सकता है, जो अंततः एक सुचारु ऑपरेटिंग वातावरण बनाए रखने में योगदान देता है।
यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं