प्रोग्राम चलने के दौरान लिनक्स लॉग होता है। लिनक्स लॉग फ़ाइलें क्रम में। और अन्य पत्रिकाएँ

💖क्या आपको यह पसंद है?लिंक को अपने दोस्तों के साथ साझा करें

परिचय

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

आपका उबंटू सिस्टम विभिन्न सिस्टम लॉग फ़ाइलों का उपयोग करके महत्वपूर्ण जानकारी प्रदान करता है। ये लॉग फ़ाइलें आम तौर पर एक मानक लॉग फ़ाइल प्रारूप में सादा ASCII पाठ होती हैं, और उनमें से अधिकांश पारंपरिक सिस्टम लॉग उपनिर्देशिका /var/log में बैठती हैं। कई सिस्टम लॉग डेमॉन, सिस्टम और कुछ अनुप्रयोगों की ओर से syslogd द्वारा उत्पन्न होते हैं, जबकि कुछ एप्लिकेशन /var/log में फ़ाइलों पर सीधे लिखकर अपने स्वयं के लॉग उत्पन्न करते हैं।

यह मार्गदर्शिका इस बारे में बात करती है कि इनमें से कई सिस्टम लॉग फ़ाइलों को कैसे पढ़ें और उपयोग करें, सिस्टम लॉगिंग डेमॉन, syslogd का उपयोग और कॉन्फ़िगर कैसे करें, और लॉग रोटेशन कैसे काम करता है। देखें संसाधनअतिरिक्त जानकारी के लिए अनुभाग.

लक्षित दर्शक

यदि आपके पास कंसोल का उपयोग करने और टेक्स्ट एडिटर का उपयोग करके टेक्स्ट फ़ाइलों को संपादित करने का कोई अनुभव है तो इस गाइड का उपयोग करना काफी सरल होगा। कुछ आवश्यक आदेशों के लिए इस दस्तावेज़ का अंत देखें जो आपको इन फ़ाइलों के आसपास अपना रास्ता ढूंढने में मदद कर सकते हैं यदि आप कमांड लाइन में अपेक्षाकृत नए हैं।

सिस्टम लॉग

सिस्टम लॉग मुख्य रूप से उबंटू सिस्टम की कार्यप्रणाली से संबंधित हैं, जरूरी नहीं कि उपयोगकर्ताओं द्वारा जोड़े गए अतिरिक्त एप्लिकेशन से संबंधित हों। उदाहरणों में प्राधिकरण तंत्र, सिस्टम डेमॉन, सिस्टम संदेश और सर्वव्यापी सिस्टम लॉग शामिल हैं, syslog.

प्राधिकरण लॉग

प्राधिकरण लॉग प्राधिकरण प्रणालियों के उपयोग को ट्रैक करता है, उपयोगकर्ताओं को अधिकृत करने के लिए तंत्र जो उपयोगकर्ता पासवर्ड के लिए संकेत देते हैं, जैसे प्लग करने योग्य प्रमाणीकरण मॉड्यूल (पीएएम) सिस्टम, सुडो कमांड, एसएसएचडी पर रिमोट लॉगिन इत्यादि। प्राधिकरण लॉग फ़ाइल को /var/log/auth.log पर एक्सेस किया जा सकता है। यह लॉग उपयोगकर्ता लॉगिन और सुडो कमांड के उपयोग के बारे में जानने के लिए उपयोगी है।

वॉल्यूम कम करने के लिए ग्रेप का उपयोग करें। उदाहरण के लिए, प्राधिकरण लॉग में केवल sshd लॉगिन से संबंधित जानकारी देखने के लिए, इसका उपयोग करें:

grep sshd /var/log/auth.log | कम

डेमन लॉग

डेमॉन एक प्रोग्राम है जो पृष्ठभूमि में चलता है, आमतौर पर मानवीय हस्तक्षेप के बिना, आपके सिस्टम के उचित संचालन के लिए महत्वपूर्ण कुछ ऑपरेशन करता है। डेमॉन लॉग /var/log/daemon.log पर है और इसमें रनिंग सिस्टम और एप्लिकेशन डेमॉन जैसे गनोम डिस्प्ले मैनेजर डेमॉन जीडीएम, ब्लूटूथ एचसीआई डेमॉन एचसीआईडी, या MySQL डेटाबेस डेमॉन mysqld के बारे में जानकारी शामिल है। यह आपको किसी विशेष डेमॉन के साथ समस्याओं का निवारण करने में मदद कर सकता है।

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

लॉग को डीबग करें

डिबग लॉग /var/log/debug पर है और उबंटू सिस्टम और अनुप्रयोगों से विस्तृत डिबग संदेश प्रदान करता है जो DEBUG स्तर पर syslogd पर लॉग करते हैं।

कर्नेल लॉग

/var/log/kern.log पर कर्नेल लॉग संदेशों का एक विस्तृत लॉग प्रदान करता है उबंटू लिनक्सगिरी. उदाहरण के लिए, ये संदेश किसी नए या कस्टम-निर्मित कर्नेल के समस्या निवारण के लिए उपयोगी साबित हो सकते हैं।

कर्नेल रिंग बफ़र

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

डीएमईएसजी | कम

या उदाहरण के लिए, प्लग एंड प्ले सिस्टम का उल्लेख करने वाली पंक्तियों को खोजने के लिए, इस तरह grep का उपयोग करें:

डीएमईएसजी | ग्रेप पीएनपी | कम

डिफ़ॉल्ट रूप से, सिस्टम इनिशियलाइज़ेशन स्क्रिप्ट /etc/init.d/bootmisc.sh सभी बूटअप संदेशों को फ़ाइल /var/log/dmesg पर भी भेजता है। आप इस फ़ाइल को सामान्य तरीके से देख और खोज सकते हैं.

सिस्टम लॉग

सिस्टम लॉग में आमतौर पर आपके उबंटू सिस्टम के बारे में डिफ़ॉल्ट रूप से सबसे बड़ी जानकारी होती है। यह /var/log/syslog पर स्थित है, और इसमें ऐसी जानकारी हो सकती है जो अन्य लॉग में नहीं है। जब आप किसी अन्य लॉग में वांछित लॉग जानकारी का पता नहीं लगा पाते हैं तो सिस्टम लॉग से परामर्श लें। इसमें वह सब कुछ भी शामिल है जो /var/log/messages में हुआ करता था।

एप्लिकेशन लॉग

कई एप्लिकेशन /var/log में लॉग भी बनाते हैं। यदि आप अपनी /var/log उपनिर्देशिका की सामग्री सूचीबद्ध करते हैं, तो आपको परिचित नाम दिखाई देंगे, जैसे /var/log/apache2 जो Apache 2 वेब सर्वर के लिए लॉग का प्रतिनिधित्व करता है, या /var/log/samba, जिसमें लॉग शामिल हैं सांबा सर्वर. गाइड का यह खंड एप्लिकेशन लॉग के कुछ विशिष्ट उदाहरण और उनमें मौजूद जानकारी का परिचय देता है।

अपाचे HTTP सर्वर लॉग

Ubuntu पर Apache2 के लिए डिफ़ॉल्ट इंस्टॉलेशन एक लॉग उपनिर्देशिका बनाता है: /var/log/apache2 । इस उपनिर्देशिका में दो अलग-अलग उद्देश्यों वाली दो लॉग फ़ाइलें हैं:

    /var/log/apache2/access.log - वेब सर्वर द्वारा प्रस्तुत प्रत्येक पृष्ठ और लोड की गई प्रत्येक फ़ाइल का रिकॉर्ड।

    /var/log/apache2/error.log - HTTP सर्वर द्वारा रिपोर्ट की गई सभी त्रुटि स्थितियों का रिकॉर्ड

डिफ़ॉल्ट रूप से, हर बार जब अपाचे किसी फ़ाइल या पेज तक पहुंचता है, तो एक्सेस लॉग आईपी पता, समय और तारीख, ब्राउज़र पहचान स्ट्रिंग, HTTP परिणाम कोड और वास्तविक क्वेरी का टेक्स्ट रिकॉर्ड करता है, जो आम तौर पर पेज व्यू के लिए GET होगा। संपूर्ण विवरण के लिए अपाचे दस्तावेज़ देखें; इस फ़ाइल से बहुत कुछ प्राप्त किया जा सकता है, और वास्तव में कई सांख्यिकीय पैकेज मौजूद हैं जो इन लॉग का विश्लेषण करते हैं।

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

सीयूपीएस प्रिंट सिस्टम लॉग

कॉमन यूनिक्स प्रिंटिंग सिस्टम (CUPS) सूचनात्मक और त्रुटि संदेशों को संग्रहीत करने के लिए डिफ़ॉल्ट लॉग फ़ाइल /var/log/cups/error_log का उपयोग करता है। यदि आपको उबंटू में मुद्रण समस्या को हल करने की आवश्यकता है, तो यह लॉग शुरू करने के लिए एक अच्छी जगह हो सकती है।

रूटकिट हंटर लॉग

रूटकिट हंटर यूटिलिटी (आरकेहंटर) आपके उबंटू सिस्टम में बैकडोर, स्निफर्स और रूटकिट की जांच करती है, जो आपके सिस्टम के साथ समझौता होने के सभी संकेत हैं। आरकेहंटर जिस लॉग का उपयोग करता है वह /var/log/rkhunter.log पर स्थित है।

सांबा एसएमबी सर्वर लॉग

सर्वर मैसेज ब्लॉक प्रोटोकॉल (एसएमबी) सर्वर, सांबा का उपयोग आपके उबंटू कंप्यूटर और एसएमबी प्रोटोकॉल का समर्थन करने वाले अन्य कंप्यूटरों के बीच फ़ाइलें साझा करने के लिए लोकप्रिय रूप से किया जाता है। सांबा उपनिर्देशिका /var/log/samba में तीन अलग-अलग प्रकार के लॉग रखता है:

    log.nmbd - आईपी कार्यक्षमता पर सांबा के NETBIOS से संबंधित संदेश (नेटवर्क सामग्री)

    log.smbd - सांबा की SMB/CIFS कार्यक्षमता से संबंधित संदेश (फ़ाइल और प्रिंट साझाकरण सामग्री)

    लकड़ी का लट्ठा। - लॉग फ़ाइल नाम में निहित आईपी पते से सेवाओं के अनुरोधों से संबंधित संदेश, उदाहरण के लिए, log.192.168.1.1।

X11 सर्वर लॉग

उबंटू के साथ उपयोग में आने वाला डिफ़ॉल्ट X11 विंडोिंग सर्वर Xorg X11 सर्वर है, और यह मानते हुए कि आपके कंप्यूटर में केवल एक डिस्प्ले परिभाषित है, यह लॉग संदेशों को फ़ाइल /var/log/Xorg.0.log में संग्रहीत करता है। यह लॉग आपके X11 परिवेश की समस्याओं का निदान करने में सहायक है।

गैर-मानव-पठनीय लॉग

/var/log उपनिर्देशिका में पाई जाने वाली कुछ लॉग फ़ाइलें अनुप्रयोगों द्वारा पढ़ने योग्य होने के लिए डिज़ाइन की गई हैं, जरूरी नहीं कि वे मनुष्यों द्वारा पढ़ी जा सकें। ऐसी लॉग फ़ाइलों के कुछ उदाहरण जो /var/log में दिखाई देते हैं, अनुसरण करें।

लॉगिन विफलता लॉग

/var/log/faillog पर स्थित लॉगिन विफलता लॉग वास्तव में फेललॉग कमांड द्वारा पार्स और प्रदर्शित करने के लिए डिज़ाइन किया गया है। उदाहरण के लिए, हाल की लॉगिन विफलताओं को प्रिंट करने के लिए, इसका उपयोग करें:

विफलतालॉग

अंतिम लॉगिन लॉग

/var/log/lastlog पर अंतिम लॉगिन लॉग को आम तौर पर मनुष्यों द्वारा पार्स और जांच नहीं किया जाना चाहिए, बल्कि इसका उपयोग लास्टलॉग कमांड के साथ संयोजन में किया जाना चाहिए। उदाहरण के लिए, लास्टलॉग कमांड के साथ लॉगिन की सूची देखने के लिए, कम कमांड के साथ प्रति स्क्रीन एक पृष्ठ प्रदर्शित करने के लिए, निम्न कमांड का उपयोग करें:

अंतिम लॉग | कम

लॉगइन रिकॉर्ड्स लॉग

फ़ाइल /var/log/wtmp में लॉगिन रिकॉर्ड शामिल हैं, लेकिन ऊपर /var/log/lastlog के विपरीत, /var/log/wtmp का उपयोग हाल के लॉगिन की सूची दिखाने के लिए नहीं किया जाता है, बल्कि इसके बजाय अन्य उपयोगिताओं द्वारा उपयोग किया जाता है जैसे कि who वर्तमान में लॉग इन उपयोगकर्ताओं की सूची प्रस्तुत करने का आदेश। यह आदेश उन उपयोगकर्ताओं को दिखाएगा जो वर्तमान में आपकी मशीन में लॉग इन हैं:

कौन

सिस्टम लॉगिंग डेमॉन (syslogd)

सिस्टम लॉगिंग डेमॉन syslogd, जिसे sysklogd भी कहा जाता है, कई स्रोतों से संदेशों को लॉग करने की प्रतीक्षा करता है और संदेशों को उचित फ़ाइल या नेटवर्क गंतव्य तक रूट करता है। Syslogd पर लॉग किए गए संदेशों में आमतौर पर विशिष्ट लॉग जानकारी के अलावा सिस्टम होस्टनाम और टाइम-स्टैम्प जैसे सामान्य तत्व होते हैं।

Syslogd का विन्यास

Syslogd डेमॉन की कॉन्फ़िगरेशन फ़ाइल /etc/syslog.conf है। इस फ़ाइल में प्रत्येक प्रविष्टि में दो फ़ील्ड होते हैं, चयनकर्ता और क्रिया। चयनकर्ता फ़ील्ड लॉग करने के लिए एक सुविधा निर्दिष्ट करता है, जैसे उदाहरण के लिए प्रमाणनसुविधा जो प्राधिकरण से संबंधित है, और ऐसी जानकारी को लॉग करने के लिए प्राथमिकता स्तर, जैसे जानकारी, या चेतावनी. क्रिया फ़ील्ड में लॉग जानकारी के लिए एक लक्ष्य होता है, जैसे मानक लॉग फ़ाइल (यानी /var/log/syslog), या लॉग जानकारी भेजने के लिए दूरस्थ कंप्यूटर का होस्टनाम।

लॉगर के साथ syslogd पर संदेशों को प्रतिध्वनित करना

लॉगर टूल में एक साफ-सुथरी उपयोगिता मौजूद है, जो किसी को सिस्टम लॉग (यानी /var/log/syslog) में मनमाने ढंग से संदेश डालने की अनुमति देती है। उदाहरण के लिए, मान लें कि आपका उपयोगकर्ता नाम बुद्ध है, और आप अपने द्वारा खाए जा रहे विशेष स्वादिष्ट पिज्जा के बारे में सिसलॉग में एक संदेश दर्ज करना चाहते हैं, तो आप टर्मिनल प्रॉम्प्ट पर निम्नलिखित कमांड का उपयोग कर सकते हैं:

विनीज़ गॉरमेट रॉक्स का यह पिज़्ज़ा

और आपके अंत में /var/log/syslog फ़ाइल में एक पंक्ति इस प्रकार होगी:

जनवरी 12 23:34:45 लोकलहोस्ट बुद्धा: विनीज़ गॉरमेट रॉक्स का यह पिज़्ज़ा

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

# # नमूना लॉगर त्रुटि जिव # logmsg = "/usr/bin/logger -s -t MyScript " # घोषणा करें कि यह स्क्रिप्ट क्या है, यहां तक ​​कि लॉग $logmsg "डायरेक्टरी चेकर FooScript Jive 1.0" # फ्रेड के अस्तित्व के लिए परीक्षण" इस मशीन पर s होम dir यदि [ -d /home/fred ]; तो $logmsg "I. फ्रेड की होम डायरेक्टरी मिली" अन्यथा $logmsg "ई. फ्रेड" की होम डायरेक्टरी थी नहीं मिला. "बू हू।" बाहर निकलें 1 फाई

इस स्क्रिप्ट को मशीन बटर पर chkdir.sh के रूप में निष्पादित करना जहां फ्रेड के पास होम निर्देशिका नहीं है, /home/fred, निम्नलिखित परिणाम देता है:

Bucky@butters:~$./chkdir.sh MyScript: डायरेक्ट्री चेकर FooScript Jive 1.0 MyScript: ई. फ्रेड की होम डायरेक्टरी नहीं मिली। Bucky@butters:~$tail -n 2 /var/log/syslog 12 जनवरी 23:23:11 लोकलहोस्ट माईस्क्रिप्ट: डायरेक्ट्री चेकर फूस्क्रिप्ट जिव 1.0 12 जनवरी 23:23:11 लोकलहोस्ट माईस्क्रिप्ट: ई. फ्रेड की होम डायरेक्ट्री नहीं मिली। बू हू.

तो, जैसा कि आप देख सकते हैं, हमें मानक त्रुटि के माध्यम से, टर्मिनल प्रॉम्प्ट पर संदेश प्राप्त हुए, और वे हमारे syslog में भी दिखाई देते हैं।

लॉग रोटेशन

/var/log या इसकी किसी उपनिर्देशिका में निर्देशिका सूची देखते समय, आपको daemon.log.0 , daemon.log.1.gz इत्यादि जैसे नामों वाली लॉग फ़ाइलें मिल सकती हैं। ये लॉग फ़ाइलें क्या हैं? वे "घूमने वाली" लॉग फ़ाइलें हैं। यानी, पूर्वनिर्धारित समय-सीमा के बाद उनका स्वचालित रूप से नाम बदल दिया गया है, और एक नया मूल लॉग शुरू हो गया है। इससे भी अधिक समय के बाद लॉग फ़ाइलों को gzip उपयोगिता के साथ संपीड़ित किया जाता है जैसा कि उदाहरण daemon.log.1.gz के मामले में है। लॉग रोटेशन का उद्देश्य पुराने लॉग को संग्रहीत और संपीड़ित करना है ताकि वे कम डिस्क स्थान का उपभोग करें, लेकिन फिर भी आवश्यकतानुसार निरीक्षण के लिए उपलब्ध रहें। इस कार्यक्षमता को कौन संभालता है? क्यों, लॉगरोटेट कमांड बिल्कुल! आमतौर पर, लॉगरोटेट को सिस्टम-वाइड क्रॉन स्क्रिप्ट /etc/cron.daily/logrotate से कॉल किया जाता है, और आगे कॉन्फ़िगरेशन फ़ाइल /etc/logrotate.conf द्वारा परिभाषित किया जाता है। व्यक्तिगत कॉन्फ़िगरेशन फ़ाइलें /etc/logrotate.d में जोड़ी जा सकती हैं (उदाहरण के लिए, जहां apache2 और mysql कॉन्फ़िगरेशन संग्रहीत हैं)।

यह मार्गदर्शिका आपके उबंटू सिस्टम पर किसी भी लॉग फ़ाइल के स्वचालित रोटेशन को संभालने के लिए लॉगरोटेट को कॉन्फ़िगर करने के असंख्य तरीकों को कवर नहीं करेगी। अधिक विवरण के लिए, जाँचें संसाधनइस गाइड का अनुभाग.

टिप्पणी:आप लॉगरोटेट का उपयोग करने के बजाय cron.daily स्क्रिप्ट /etc/cron.daily/sysklogd के माध्यम से सिस्टम लॉग फ़ाइलों को घुमा सकते हैं। दरअसल, उपयोगिता सेवलॉग लॉग रोटेशन पर अप्रत्याशित परिणाम उत्पन्न कर सकता है जिस पर लॉगरोटेट को कॉन्फ़िगर करने पर कोई प्रभाव नहीं पड़ता है। उन मामलों में, आपको /etc/cron.daily/sysklogd में cron.daily sysklogd स्क्रिप्ट की जांच करनी चाहिए और यह देखने के लिए सेवलॉग मैनुअल पेज को पढ़ना चाहिए कि क्या सेवलॉग वास्तव में उस तरह से रोटेशन नहीं कर रहा है जो आप निर्दिष्ट नहीं कर रहे हैं। लॉगरोटेट

आवश्यक आदेश

यदि आप कंसोल और लिनक्स कमांड लाइन में नए हैं, तो ये कमांड आपको उस बिंदु तक ले जाएंगे जहां आप बुनियादी स्तर पर लॉग फ़ाइलों के साथ काम कर सकते हैं।

शुरू करना

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

सीडी /var/log

फ़ाइलें संपादित करना

आप जीएडिट या केट में फाइलों को देख और संपादित कर सकते हैं, जो क्रमशः उबंटू और कुबंटू के साथ आने वाले सरल पाठ संपादक हैं, लेकिन जब आप केवल किसी फ़ाइल को देखना चाहते हैं या साधारण परिवर्तन करना चाहते हैं तो यह अत्यधिक हो सकता है। कंसोल से उपयोग करने के लिए सबसे आसान संपादक नैनो है, जो कम शक्तिशाली है लेकिन vim या emacs की तुलना में कम जटिल भी है। नैनो का उपयोग करके किसी विशेष लॉगफ़ाइल /var/log/example.log को संपादित करने का आदेश है:

नैनो example.log

बाहर निकलने के लिए Ctrl+X दबाएँ। जब आप बाहर निकलेंगे तो यह पूछेगा कि क्या आप अपने परिवर्तनों को सहेजना चाहते हैं, लेकिन जब तक आप इसे सूडो कमांड के साथ नहीं चलाएंगे, तब तक फ़ाइलें लिखने योग्य नहीं होंगी। सामान्य तौर पर, आप निश्चित रूप से लॉग फ़ाइलों में अपने परिवर्तनों को सहेजना नहीं चाहेंगे।

फ़ाइलें देखना

किसी फ़ाइल को देखने के लिए, एक संपादक अतिश्योक्तिपूर्ण है। कम कमांड का उपयोग करें, जो एक फ़ाइल के माध्यम से एक समय में एक स्क्रीन पर पेज बनाता है:

कम उदाहरण.लॉग

किसी फ़ाइल को देखने के लिए आपको sudo की आवश्यकता नहीं है। मदद के लिए h दबाएँ, या छोड़ने के लिए q दबाएँ। कर्सर कुंजियाँ और पृष्ठ ऊपर/नीचे कुंजियाँ अपेक्षा के अनुरूप काम करेंगी, और स्लैश कुंजी ("/") एक केस करेगी- संवेदनशील खोज; n कुंजी अंतिम खोज को दोहराती है।

फ़ाइलों की शुरुआत देखना

किसी फ़ाइल की पहली दस पंक्तियाँ देखने के लिए, हेड कमांड का उपयोग करें:

प्रमुख उदाहरण.लॉग

फ़ाइल की शुरुआत से कुछ अन्य पंक्तियों को देखने के लिए, -n स्विच जोड़ें, इस प्रकार:

हेड-एन 20 उदाहरण.लॉग

फ़ाइलों का अंत देखना

किसी फ़ाइल की अंतिम दस पंक्तियाँ देखने के लिए, अनुरूप कमांड टेल है:

पूँछ उदाहरण.लॉग

फिर से, -n स्विच आपको यह नियंत्रण देता है कि यह कितनी लाइनें प्रदर्शित करता है:

टेल-एन 20 उदाहरण.लॉग

बदलती फ़ाइल देखना

इसके अलावा, -f ("फ़ॉलो") स्विच टेल को लगातार लूप में रखता है के लिए इंतजारयह प्रदर्शित होने वाली फ़ाइल में नए परिवर्धन। यह उन फ़ाइलों की निगरानी के लिए उपयोगी है जिन्हें वास्तविक समय में अद्यतन किया जा रहा है:

टेल-एफ उदाहरण.लॉग

लूप छोड़ने के लिए Ctrl+C दबाएँ।

फ़ाइलें खोज रहे हैं

क्योंकि लॉग फ़ाइलें बड़ी और बोझिल हो सकती हैं, इससे ध्यान केंद्रित करने में मदद मिलती है। ग्रेप कमांड आपको केवल उस सामग्री को हटाने में मदद करता है जिसकी आप परवाह करते हैं। उदाहरण के लिए, "सिस्टम" शब्द वाली फ़ाइल की सभी पंक्तियाँ ढूँढ़ने के लिए, इसका उपयोग करें:

ग्रेप "सिस्टम" उदाहरण.लॉग

पंक्ति की शुरुआत में "सिस्टम" वाली सभी पंक्तियों को खोजने के लिए, इसका उपयोग करें:

ग्रेप "^सिस्टम" उदाहरण.लॉग

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

किसी भी समय ग्रेप का परिणाम अभी भी बहुत लंबा है, आप इसे कम करके पाइप कर सकते हैं:

ग्रेप "सिस्टम" उदाहरण.लॉग | कम

संसाधन

सिस्टम और एप्लिकेशन लॉग और syslogd पर अतिरिक्त जानकारी निम्नलिखित संसाधनों के माध्यम से उपलब्ध है:

स्थानीय सिस्टम संसाधन

dmesg कर्नेल रिंग बफ़र उपयोगिता के लिए सिस्टम मैनुअल पेज

फेललॉग कमांड के लिए सिस्टम मैनुअल पेज (और मैन 5 फेललॉग के माध्यम से फेललॉग कॉन्फ़िगरेशन फ़ाइल भी)

ग्रेप पैटर्न खोज उपयोगिता के लिए सिस्टम मैनुअल पेज

हेड यूटिलिटी के लिए सिस्टम मैनुअल पेज

कर्नेल लॉग डेमॉन (klogd) के लिए सिस्टम मैनुअल पेज

अंतिम कमांड के लिए सिस्टम मैनुअल जो अंतिम लॉग इन उपयोगकर्ताओं को दिखाता है

कम पेजिंग उपयोगिता के लिए सिस्टम मैनुअल पेज

लॉगर कमांड-लाइन इंटरफ़ेस से syslog उपयोगिता के लिए सिस्टम मैनुअल पेज

लॉगरोटेट उपयोगिता के लिए सिस्टम मैनुअल पेज

सेवलॉग लॉग फ़ाइल सेविंग उपयोगिता के लिए सिस्टम मैनुअल पेज

सिस्टम लॉग डेमॉन के लिए सिस्टम मैनुअल पेज (syslogd)

Syslogd कॉन्फ़िगरेशन फ़ाइल के लिए सिस्टम मैनुअल पेज

टेल यूटिलिटी के लिए सिस्टम मैनुअल पेज

यदि आप लिनक्स प्रशासन लेते हैं, तो इस तथ्य के लिए तैयार रहें कि लॉग फ़ाइलों को देखने और उनका विश्लेषण करने में आपके द्वारा कंसोल में बिताए गए समय का बड़ा हिस्सा खर्च हो जाएगा। लॉग विश्लेषण सर्वर के व्यवहार को समझने का मुख्य (और अक्सर एकमात्र) तरीका है।

अक्सर, लॉग में हजारों पंक्तियाँ होती हैं; इसके अलावा, इसमें हर सेकंड कई और प्रविष्टियाँ बढ़ सकती हैं। और कुछ क्रियाओं पर प्रतिक्रिया को ट्रैक करते हुए, इसे लाइव देखने की सलाह दी जाती है। यहां दो यूटिलिटीज टेल एंड लेस हमारी मदद करेंगी।

टेल का उपयोग करके लिनक्स में लॉग देखना।

टेल (पूंछ के रूप में अनुवादित) आपको 10 देखने की अनुमति देता है अंतिम पंक्तियाँफ़ाइल। यदि तुम्हें और चाहिए तो बस इतना कहो। उदाहरण के लिए, 25:

# टेल -एन 25 /var/log/httpd/error_log

[एचसी@होस्ट~] # टेल -एन 25 /var/log/httpd/error_log

या आप बस यह कर सकते हैं:

# टेल -25 /var/log/httpd/error_log

[एचसी@होस्ट~] # टेल -25 /var/log/httpd/error_log

दूसरा उपयोगी विकल्प जिसे पारित किया जा सकता है वह है -f । इस पैरामीटर के साथ, टेल अंतिम पंक्तियों की निर्दिष्ट संख्या को प्रिंट करता है और जब तक आप Ctrl+C नहीं दबाते, तब तक जोड़ी गई पंक्तियों को पढ़ना जारी रखता है - यानी। आप लॉग फ़ाइल में परिवर्तनों की लाइव निगरानी कर सकते हैं:

# टेल -5f /home/sites/web/site.ru/logs/site.ru.log 178.45.0.0 - - "GET / HTTP/1.0" 200 17401 "http://site.ru/allsorts/" "मोज़िला /5.0 (iPad; CPU OS 8_0_2 Mac OS - "http://site.ru/" 217.118.0.0 - - "GET /allsorts/ HTTP/1.0" 200 16663 "http://site.ru/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 Mac की तरह) OS " "मोज़िला/5.0 (विंडोज़ एनटी 6.3; WOW64) AppleWebKit/537.36 (KHTML, गेको की तरह) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50" 85.95.0.0 - - "प्राप्त करें /सभी प्रकार/ HTTP/1.0" 200 16663 "http://site.ru/" "मोज़िला/5.0 (विंडोज एनटी 6.3; WOW64) एप्पलवेबकिट/537.36 (केएचटीएमएल, गेको की तरह) क्रोम/47.0.2526.111 सफारी/537.36 ओपीआर/34.0.2036.50"

[एचसी@होस्ट~] # टेल -5f /home/sites/web/site.ru/logs/site.ru.log

178.45.0.0 - - [23 / जनवरी / 2016: 19: 45: 02 + 0300 ] "प्राप्त करें / HTTP/1.0" 200 17401 "http://site.ru/allsorts/" "मोज़िला/5.0 (आईपैड; मैक ओएस एक्स की तरह सीपीयू ओएस 8_0_2) ऐप्पलवेबकिट/600.1.4 (केएचटीएमएल, गेको की तरह) संस्करण/8.0 मोबाइल/12ए405 सफारी/600.1.4"

217.118.0.0 - - [23 / जनवरी / 2016: 19: 46: 34 + 0300 ] "GET /allsorts HTTP/1.0" 301 - "http://site.ru/" "मोज़िला/5.0 (आईफोन; मैक ओएस एक्स की तरह सीपीयू आईफोन ओएस 9_2) ऐप्पलवेबकिट/601.1.46 (केएचटीएमएल, गेको की तरह) संस्करण/9.0 मोबाइल/13सी75 सफारी/601.1"

217.118.0.0 - - [23 / जनवरी / 2016: 19: 46: 35 + 0300 ] "प्राप्त करें /allsorts/ HTTP/1.0" 200 16663 "http://site.ru/" "मोज़िला/5.0 (आईफोन; मैक ओएस एक्स की तरह सीपीयू आईफोन ओएस 9_2) ऐप्पलवेबकिट/601.1.46 (केएचटीएमएल, गेको की तरह) संस्करण/9.0 मोबाइल/13सी75 सफारी/601.1"

85.95.0.0 - - [23 / जनवरी / 2016: 19: 47: 34 + 0300 ] "प्राप्त करें /allsorts/ HTTP/1.0" 200 16663 "http://site.ru/" "मोज़िला/5.0 (विंडोज़ एनटी 6.3; WOW64) AppleWebKit/537.36 (KHTML, गेको की तरह) Chrome/47.0.2526.111 Safari/537.36 OPR/34.0.2036.50"

लेकिन टेल की सबसे बड़ी सुविधा यह है कि कई फाइलों को पैरामीटर के रूप में पारित किया जा सकता है, यानी। आप एक ही समय में एकाधिक संबंधित लॉग फ़ाइलों की निगरानी कर सकते हैं:

# टेल -f -n 5 -s 3 /home/sites/web/site.ru/logs/site.ru.log /var/log/httpd/domains/site.ru.error.log ==> /home/ साइट्स/वेब/साइट.ru/logs/site.ru.log<== 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/delivery-feature-6.png HTTP/1.1" 200 18165 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/delivery-truck.png HTTP/1.1" 200 15243 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/scooter-icon-small.png HTTP/1.1" 200 4322 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/link-button-shadow.png HTTP/1.1" 200 7792 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" 37.113.0.0 - - "GET /wp-content/themes/bigroll/img/header-bg.png HTTP/1.1" 200 194475 "http://site.ru/delivery/" "Mozilla/5.0 (iPhone; CPU iPhone OS 9_2 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13C75 Safari/601.1" ==>/var/log/httpd/domains/site.ru.error.log<== client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php client denied by server configuration: /home/sites/web/site.ru/public_html/xmlrpc.php

[एचसी@होस्ट~] # टेल -f -n 5 -s 3 /home/sites/web/site.ru/logs/site.ru.log /var/log/httpd/domains/site.ru.error.log

== > /होम/साइट्स/वेब/साइट। आरयू/लॉग्स/साइट। आरयू. लकड़ी का लट्ठा<= =

37.113.0.0 - - [23/जनवरी/2016: 19:55:45 +0300] "प्राप्त करें /wp-content/themes/bigroll/img/delivery-feature-6.png HTTP/1.1" 200 18165 "http://site.ru/delivery/" "मोज़िला/5.0 (आईफोन; मैक ओएस एक्स की तरह सीपीयू आईफोन ओएस 9_2) ऐप्पलवेबकिट/601.1.46 (केएचटीएमएल, गेको की तरह) संस्करण/9.0 मोबाइल/13सी75 सफारी/601.1"

"प्राप्त करें /wp-content/themes/bigroll/img/delivery-truck.png HTTP/1.1" 200 15243 "http://site.ru/delivery/" "मोज़िला/5.0 (आईफोन; मैक ओएस एक्स की तरह सीपीयू आईफोन ओएस 9_2) ऐप्पलवेबकिट/601.1.46 (केएचटीएमएल, गेको की तरह) संस्करण/9.0 मोबाइल/13सी75 सफारी/601.1"

37.113.0.0 - - [23/जनवरी/2016: 19:55:46 +0300] "प्राप्त करें /wp-content/themes/bigroll/img/scooter-icon-small.png HTTP/1.1" 200 4322 "http://site.ru/delivery/" "मोज़िला/5.0 (आईफोन; मैक ओएस एक्स की तरह सीपीयू आईफोन ओएस 9_2) ऐप्पलवेबकिट/601.1.46 (केएचटीएमएल, गेको की तरह) संस्करण/9.0 मोबाइल/13सी75 सफारी/601.1"

37.113.0.0 - - [23/जनवरी/2016: 19:55:46 +0300] "प्राप्त करें /wp-content/themes/bigroll/img/link-button-shadow.png HTTP/1.1" 200 7792 "http://site.ru/delivery/" "मोज़िला/5.0 (आईफोन; मैक ओएस एक्स की तरह सीपीयू आईफोन ओएस 9_2) ऐप्पलवेबकिट/601.1.46 (केएचटीएमएल, गेको की तरह) संस्करण/9.0 मोबाइल/13सी75 सफारी/601.1"

37.113.0.0 - - [23/जनवरी/2016: 19:55:46 +0300] "प्राप्त करें /wp-content/themes/bigroll/img/header-bg.png HTTP/1.1" 200 194475 "http://site.ru/delivery/" "मोज़िला/5.0 (आईफोन; मैक ओएस एक्स की तरह सीपीयू आईफोन ओएस 9_2) ऐप्पलवेबकिट/601.1.46 (केएचटीएमएल, गेको की तरह) संस्करण/9.0 मोबाइल/13सी75 सफारी/601.1"

== > /var/log/httpd/domains/site. आरयू. गलती। लकड़ी का लट्ठा<= =

[बुध जनवरी 20 04: 38: 36 2016] [त्रुटि] [क्लाइंट 46.166.0.0] क्लाइंट को सर्वर कॉन्फ़िगरेशन द्वारा अस्वीकार कर दिया गया: / होम/साइट्स/वेब/साइट। ru/public_html/xmlrpc. पीएचपी

[बुध जनवरी 20 13:15:43 2016] [त्रुटि] [क्लाइंट 69.84.0.0] क्लाइंट को सर्वर कॉन्फ़िगरेशन द्वारा अस्वीकार कर दिया गया: / होम/साइट्स/वेब/साइट। ru/public_html/xmlrpc. पीएचपी

[बुध जनवरी 20 20: 48: 58 2016] [त्रुटि] [क्लाइंट 185.112.0.0] क्लाइंट को सर्वर कॉन्फ़िगरेशन द्वारा अस्वीकार कर दिया गया: / होम/साइट्स/वेब/साइट। ru/public_html/xmlrpc. पीएचपी

[बुध जनवरी 20 22:42:02 2016] [त्रुटि] [क्लाइंट 5.255.0.0] क्लाइंट को सर्वर कॉन्फ़िगरेशन द्वारा अस्वीकार कर दिया गया: / होम/साइट्स/वेब/साइट। ru/public_html/xmlrpc. पीएचपी

कृपया ध्यान दें कि मैंने -s 3 निर्माण का उपयोग किया है - इस कुंजी का उपयोग करके, अद्यतन अंतराल सेकंड में सेट किया गया है, अर्थात। इस स्थिति में, फ़ाइलें हर 3 सेकंड में एक बार दोबारा पढ़ी जाएंगी।

लिनक्स पर कम उपयोग करके लॉग देखना।

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

आइए फ़ाइल खोलें:

# कम /var/log/httpd/domains/big-roll.ru.error.log

[एचसी@होस्ट~] # कम /var/log/httpd/domains/big-roll.ru.error.log

जैसा कि आप देख सकते हैं, हम कर्सर तीरों और PgUp और PgDn कुंजियों का उपयोग करके फ़ाइल की सामग्री को आसानी से स्क्रॉल कर सकते हैं।
कुछ और उपयोगी कुंजियाँ याद रखें:
क्यू - आउटपुट;
जी - फ़ाइल की शुरुआत में जाएँ;
जी - फ़ाइल के अंत तक जाएँ;
एनजी - लाइन एन पर जाएं (उदाहरण के लिए, लाइन 14 14जी);
एन% - स्थिति एन% पर जाएं (उदाहरण के लिए, 35%);
एफ - फ़ाइल अपडेट ट्रैकिंग मोड पर स्विच करें, अर्थात। टेल -एफ का एनालॉग;
/पैटर्न - पैटर्न पैटर्न का उपयोग करके सीधी (फ़ाइल के नीचे) खोज;
?पैटर्न – उल्टा (फ़ाइल के ऊपर);
n - खोज पैटर्न का अगला मिलान;
एन - पिछला मैच;
ट्रैकिंग मोड से बाहर निकलें Ctrl+C ;
आप एच-हेल्प दबाकर अन्य सभी कुंजियों और मोड की पूरी सूची स्वयं देख सकते हैं (मैं इसे दबाने की अत्यधिक अनुशंसा करता हूं)।

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

यह ध्यान रखना महत्वपूर्ण है कि लिनक्स अपनी लॉग फ़ाइलों को टेक्स्ट प्रारूप में /var/log निर्देशिका में रखता है।

उबंटू पर सिस्टम लॉग देखना

किसी समस्या के मूल तक पहुंचने के लिए, या यह देखने के लिए कि आपका एप्लिकेशन या सिस्टम वांछित तरीके से व्यवहार कर रहा है या नहीं, आप सिस्टम लॉग फ़ाइलों को ग्राफ़िक रूप से या कमांड लाइन के माध्यम से निम्नलिखित तरीकों से देख सकते हैं:

  • गनोम लॉग्स उपयोगिता (ग्राफिक)
  • लॉग फ़ाइल व्यूअर उपयोगिता (ग्राफ़िक)
  • लिनक्स टर्मिनल (कमांड लाइन)

गनोम लॉग के माध्यम से लॉग फ़ाइलें देखें

'लॉग्स' डिफ़ॉल्ट उपयोगिता है जो उबंटू के नवीनतम संस्करणों जैसे, उबंटू 18.04 एलटीएस (बायोनिक बीवर) के साथ आती है। इसे एक्सेस करने के लिए,

प्रकार लॉग्सउबंटू डैश में:

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

पर क्लिक करें प्रणालीसिस्टम लॉग देखने के लिए टैब:

यहां आप सभी सिस्टम लॉग को उनके उत्पन्न होने के समय के साथ देख सकते हैं। आप इस विंडो के माध्यम से निम्नलिखित क्रियाएं कर सकते हैं:

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

  • आप लॉग विंडो के ऊपरी दाएं कोने पर स्थित निर्यात बटन पर क्लिक करके भी लॉग को फ़ाइल में निर्यात कर सकते हैं। फिर आप नाम और स्थान निर्दिष्ट करके लॉग फ़ाइल को सहेज सकते हैं।

लॉग फ़ाइल व्यूअर के माध्यम से

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

लॉग फ़ाइल व्यूअर तक पहुँचने के लिए:

  • प्रवेश करना लॉग दृश्यउबंटू डैश में आर
  • यदि आपने इस प्रोग्राम को उबंटू सॉफ्टवेयर के माध्यम से स्थापित किया है, तो आप इसे उबंटू सॉफ्टवेयर में निम्नानुसार खोजकर और फिर क्लिक करके लॉन्च कर सकते हैं शुरू करनाबटन:

लॉग फ़ाइल व्यूअर इस प्रकार दिखाई देगा:


विंडो का बायां पैनल कई डिफ़ॉल्ट लॉग श्रेणियां दिखाता है और दायां पैनल चयनित श्रेणी के लिए लॉग की एक सूची दिखाता है।

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

किसी विशिष्ट एप्लिकेशन के लिए लॉग देखने के लिए, क्लिक करें खुलासे विकल्प फ़ाइलमेन्यू। निम्नलिखित लॉग खोलेंआपके लिए लॉग चुनने के लिए विंडो खुलेगी:

लॉग फ़ाइल पर क्लिक करें और क्लिक करें खुला. अब आप लॉग फ़ाइल व्यूअर में चयनित लॉग फ़ाइल से लॉग देख पाएंगे।

टर्मिनल के माध्यम से लॉग फ़ाइलें देखें

आप सिस्टम लॉग को कमांड लाइन, यानी उबंटू टर्मिनल के माध्यम से भी देख सकते हैं।

टर्मिनल खोलें और निम्नलिखित कमांड दर्ज करें:

यह कमांड कर्नेल के बफ़र से सभी संदेश लाता है। आप आउटपुट को इस प्रकार देख सकते हैं:

आप देखेंगे कि यह बहुत सारी जानकारी है। यह जानकारी तभी उपयोगी होगी जब हम जो देखना चाहते हैं उसे देखने के लिए कुछ फ़िल्टर लागू करें।

dmesg आउटपुट को अनुकूलित करना

  • संदेशों को अपनी गति से देखने के लिए, निम्नलिखित आदेश का उपयोग करें:

$ dmesg |कम

यह आदेश प्रति स्क्रीन केवल विशिष्ट संख्या में संदेश प्रदर्शित करेगा। आप अगले संदेश पर जाने के लिए Enter दबा सकते हैं या कमांड से बाहर निकलने के लिए Q दबा सकते हैं।

  • किसी विशिष्ट कीवर्ड वाले संदेश को खोजने के लिए, निम्न आदेश का उपयोग करें:
$dmesg |grep

उदाहरण के लिए, यदि आप कोर शब्द वाले सभी संदेशों को खोजना चाहते हैं, तो आप निम्न आदेश का उपयोग कर सकते हैं:

$dmesg |grep कोर

टर्मिनल अब केवल उन्हीं संदेशों को प्रदर्शित करेगा जिनमें "कोर" शब्द लाल रंग में है।

कैट कमांड के साथ एक लॉग फ़ाइल खोलें

Dmesg कमांड /var/log निर्देशिका से सभी लॉग खोलता है। किसी अन्य स्थान से लॉग फ़ाइल खोलने के लिए, निम्न आदेश का उपयोग करें:

$बिल्ली

$ बिल्ली /var/log/syslog

यह कमांड syslog फ़ाइल से स्क्रीन पर लॉग प्रिंट करेगा। आप फिर से देखेंगे कि यह कमांड सारी जानकारी प्रिंट करता है और इसे सरसरी तौर पर पार करना आसान नहीं है। यहां फिर से, आप वांछित आउटपुट को निम्नानुसार प्रदर्शित करने के लिए 'grep' और 'less' फ़िल्टर का उपयोग कर सकते हैं:

$बिल्ली |grep

$बिल्ली |कम

सिस्टम लॉग में लिखना

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

उबंटू टर्मिनल खोलें और निम्न कमांड टाइप करें:

$logger "यह एक कस्टम संदेश है"


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

अतिरिक्त जानकारी प्रदान करने के लिए आप स्क्रिप्ट के भीतर लॉगर कमांड का भी उपयोग कर सकते हैं। उस स्थिति में, कृपया अपनी स्क्रिप्ट में निम्नलिखित कमांड का उपयोग करें:

$ लकड़हारा -टी स्क्रिप्टनाम "यह एक कस्टम संदेश है"

इस ट्यूटोरियल के साथ अभ्यास करके, आप सिस्टम लॉग तक पहुंच और समझकर अपने सिस्टम और एप्लिकेशन की समस्याओं का निवारण करना सीख सकते हैं।

Ubuntu 18.04 LTS पर सिस्टम लॉग फ़ाइलें कैसे देखें

सिस्टम प्रशासकों और नियमित लिनक्स उपयोगकर्ताओं को समस्याओं के निवारण के लिए अक्सर लॉग फ़ाइलों को देखने की आवश्यकता होती है। वास्तव में, सिस्टम में कोई त्रुटि होने पर किसी भी सिस्टम प्रशासक को यह पहली चीज़ करनी चाहिए।

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

इस लेख में हम लिनक्स लॉगिंग सिस्टम के मुख्य भागों, लॉग फ़ाइलों, साथ ही उपयोगिताओं को देखेंगे जिनके साथ आप लिनक्स लॉग देख सकते हैं।

अधिकांश लिनक्स लॉग फ़ाइलें /var/log/ फ़ोल्डर में स्थित हैं आप ls कमांड का उपयोग करके अपने सिस्टम के लिए लॉग फ़ाइलों को सूचीबद्ध कर सकते हैं:

Rw-r--r-- 1 रूट रूट 52198 मई 10 11:03 वैकल्पिक.लॉग
drwxr-x--- 2 रूट रूट 4096 नवंबर 14 15:07 apache2
drwxr-xr-x 2 रूट रूट 4096 अप्रैल 25 12:31 अपरमोर
drwx------ 2 रूट रूट 4096 मई 5 10:15 ऑडिट
-rw-r--r-- 1 रूट रूट 33100 10 मई 10:33 बूट.लॉग

नीचे हम /var/log/ निर्देशिका में स्थित 20 अलग-अलग Linux लॉग फ़ाइलों को देखेंगे। इनमें से कुछ लॉग केवल कुछ वितरणों पर पाए जाते हैं, उदाहरण के लिए dpkg.log केवल डेबियन आधारित सिस्टम पर पाए जाते हैं।

/var/log/संदेश- इसमें वैश्विक लिनक्स सिस्टम लॉग शामिल हैं, जिनमें सिस्टम स्टार्टअप पर रिकॉर्ड किए गए लॉग भी शामिल हैं। इस लॉग में कई प्रकार के संदेश दर्ज हैं: मेल, क्रॉन, विभिन्न सेवाएँ, कर्नेल, प्रमाणीकरण और अन्य।

/var/log/dmesg- इसमें कर्नेल से प्राप्त संदेश शामिल हैं। बूट चरण के दौरान कई संदेशों को लॉग करता है, वे उन हार्डवेयर उपकरणों के बारे में जानकारी प्रदर्शित करते हैं जिन्हें बूट प्रक्रिया के दौरान आरंभ किया जाता है। आप कह सकते हैं कि यह लिनक्स सिस्टम का एक और लॉग है। लॉग में संदेशों की संख्या सीमित है, और जब फ़ाइल भर जाती है, तो प्रत्येक नए संदेश के साथ पुराने संदेशों को अधिलेखित कर दिया जाएगा। आप dmseg कमांड का उपयोग करके इस लॉग से संदेश भी देख सकते हैं।

/var/log/auth.log- इसमें सिस्टम में उपयोगकर्ता प्राधिकरण के बारे में जानकारी शामिल है, जिसमें उपयोगकर्ता लॉगिन और उपयोग किए गए प्रमाणीकरण तंत्र शामिल हैं।

/var/log/boot.log- इसमें वह जानकारी होती है जो सिस्टम बूट होने पर लॉग की जाती है।

/var/log/daemon.log- विभिन्न पृष्ठभूमि डेमॉन के संदेश शामिल हैं

/var/log/kern.log- इसमें कर्नेल से संदेश भी शामिल हैं, जो कर्नेल में निर्मित कस्टम मॉड्यूल में त्रुटियों के निवारण में उपयोगी हैं।

/var/log/lastlog- सभी उपयोगकर्ताओं के अंतिम सत्र के बारे में जानकारी प्रदर्शित करता है। यह एक गैर-पाठ फ़ाइल है और इसे देखने के लिए आपको लास्टलॉग कमांड का उपयोग करना होगा।

/var/log/maillog /var/log/mail.log- सिस्टम पर चल रहे ईमेल सर्वर के लॉग।

/var/log/user.log- उपयोगकर्ता स्तर पर सभी लॉग से जानकारी।

/var/log/Xorg.x.log- एक्स सर्वर संदेश लॉग।

/var/log/alternatives.log- अद्यतन-विकल्प कार्यक्रम के संचालन के बारे में जानकारी। ये डिफ़ॉल्ट कमांड या लाइब्रेरी के प्रतीकात्मक लिंक हैं।

/var/log/btmp- लिनक्स लॉग फ़ाइल में विफल लॉगिन प्रयासों के बारे में जानकारी होती है। फ़ाइल को देखने के लिए अंतिम कमांड -f /var/log/btmp का उपयोग करना सुविधाजनक है

/var/लॉग/कप- मुद्रण और प्रिंटर से संबंधित सभी संदेश।

/var/log/anaconda.log- इंस्टॉलेशन के दौरान रिकॉर्ड किए गए सभी संदेश इस फ़ाइल में सहेजे गए हैं

/var/log/yum.log- यम का उपयोग करके पैकेज इंस्टॉलेशन के बारे में सभी जानकारी लॉग करता है।

/var/log/cron- जब भी क्रॉन डेमॉन किसी प्रोग्राम को निष्पादित करना शुरू करता है, तो वह प्रोग्राम से ही इस फ़ाइल में एक रिपोर्ट और संदेश लिखता है।

/var/log/सुरक्षित- इसमें प्रमाणीकरण और प्राधिकरण से संबंधित जानकारी शामिल है। उदाहरण के लिए, SSHd यहां सब कुछ लॉग करता है, जिसमें विफल लॉगिन प्रयास भी शामिल हैं।

/var/log/wtmp या /var/log/utmp -लिनक्स सिस्टम लॉग , उपयोगकर्ता लॉगिन का एक लॉग शामिल करें। Wtmp कमांड का उपयोग करके आप पता लगा सकते हैं कि कौन लॉग इन है और कब।

/var/log/faillog- लिनक्स सिस्टम लॉग में असफल लॉगिन प्रयास शामिल हैं। इस फ़ाइल की सामग्री प्रदर्शित करने के लिए फ़ेललॉग कमांड का उपयोग करें।

/var/log/mysqld.log- MySQL डेटाबेस सर्वर से लिनक्स लॉग फ़ाइलें।

/var/log/httpd/ या /var/log/apache2- linux11 Apache वेब सर्वर की लॉग फ़ाइलें। एक्सेस लॉग एक्सेस_लॉग फ़ाइल में हैं, और त्रुटि लॉग एरर_लॉग में हैं

/var/log/lighthttpd/- लाइटटीपीडी वेब सर्वर के लिनक्स लॉग

/var/log/conman/- कॉनमैन क्लाइंट लॉग फ़ाइलें,

/var/लॉग/मेल/- इस निर्देशिका में अतिरिक्त मेल सर्वर लॉग हैं

/var/लॉग/प्रीलिंक/- प्रीलिंक लोडिंग प्रक्रिया को तेज करने के लिए पुस्तकालयों और निष्पादनयोग्यों को लिंक करता है। /var/log/prelink/prelink.log में .so फ़ाइलों के बारे में जानकारी शामिल है जिन्हें प्रोग्राम द्वारा संशोधित किया गया था।

/var/लॉग/ऑडिट/- इसमें ऑडिट किए गए डेमॉन द्वारा उत्पन्न जानकारी शामिल है।

/var/log/settroubleshoot/ -एसई लिनक्स सुरक्षा समस्याओं की रिपोर्ट करने के लिए सेटट्रबलशूट डेमॉन (एसई ट्रबल शूट डेमॉन) का उपयोग करता है। इस लॉग में इस प्रोग्राम के संदेश हैं।

/var/log/samba/- इसमें सांबा फ़ाइल सर्वर से जानकारी और लॉग शामिल हैं, जिसका उपयोग विंडोज़ शेयरों से कनेक्ट करने के लिए किया जाता है।

/var/log/sa/- इसमें Sysstat पैकेज द्वारा एकत्रित .cap फ़ाइलें शामिल हैं।

/var/log/sssd/- सिस्टम सुरक्षा डेमॉन द्वारा उपयोग किया जाता है, जो दूरस्थ निर्देशिका पहुंच और प्रमाणीकरण तंत्र का प्रबंधन करता है।

Linux में लॉग देखना

लिनक्स पर लॉग देखने के लिए, कई लिनक्स कमांड लाइन उपयोगिताओं का उपयोग करना सुविधाजनक है। यह कोई भी टेक्स्ट एडिटर या कोई विशेष उपयोगिता हो सकती है। सबसे अधिक संभावना है, आपको Linux में लॉग देखने के लिए सुपरयूज़र अधिकारों की आवश्यकता होगी। यहां वे आदेश दिए गए हैं जिनका उपयोग इन उद्देश्यों के लिए सबसे अधिक बार किया जाता है:

  • zgrep
  • ज़मोर

मैं इनमें से प्रत्येक आदेश के बारे में विस्तार से नहीं बताऊंगा, क्योंकि उनमें से अधिकांश पर हमारी वेबसाइट पर पहले ही विस्तार से चर्चा की जा चुकी है। लेकिन मैं कुछ उदाहरण दूंगा. लिनक्स लॉग देखना बहुत सरल है:

हम स्क्रॉल करने की क्षमता के साथ लॉग /var/log/messages को देखते हैं:

कम /var/log/संदेश

वास्तविक समय में लिनक्स लॉग देखें:

टेल -एफ /var/log/संदेश

dmesg लॉग फ़ाइल खोलें:

बिल्ली /var/log/dmesg

dmesg की पहली पंक्तियाँ:

हेड /var/log/dmesg

हम केवल /var/log/संदेशों से त्रुटियाँ आउटपुट करते हैं:

grep -i त्रुटि /var/log/messages

इसके अलावा, आप ग्राफिकल उपयोगिताओं का उपयोग करके लिनक्स पर लॉग देख सकते हैं। सिस्टम लॉग व्यूअर का उपयोग लिनक्स लैपटॉप या पर्सनल कंप्यूटर पर सिस्टम लॉग को आसानी से देखने और मॉनिटर करने के लिए किया जा सकता है।

आप प्रोग्राम को एक्स सर्वर स्थापित किसी भी सिस्टम पर इंस्टॉल कर सकते हैं। साथ ही, लॉग देखने के लिए किसी भी ग्राफ़िकल परीक्षण संपादक का उपयोग किया जा सकता है।

निष्कर्ष

/var/log निर्देशिका में आप लिनक्स के संचालन के बारे में सभी आवश्यक जानकारी पा सकते हैं। आज के लेख से आपने यह जानने के लिए काफी कुछ सीखा है कि कहां देखना है और क्या देखना है। अब Linux में लॉग देखने से आपको कोई समस्या नहीं होगी. यदि आपके कोई प्रश्न हैं, तो टिप्पणियों में पूछें!

फ़ाइल नाम के सामने पाइप चिन्ह (|) लगाने से आप इसका उपयोग कर सकेंगे फीफो (पहले अंदर - पहले बाहर,पहले अंदर, पहले बाहर) या नामित पाइपसंदेशों के रिसीवर के रूप में। Syslogd को शुरू करने (या पुनः आरंभ करने) से पहले, आपको mkfifo कमांड का उपयोग करके एक फीफो बनाना होगा। कभी-कभी डिबगिंग के लिए फीफो का उपयोग किया जाता है।

टर्मिनल और कंसोल

एक टर्मिनल जैसे /dev/console.

रिमोट मशीन

किसी अन्य होस्ट को संदेश अग्रेषित करने के लिए, होस्ट नाम के पहले (@) चिह्न लगाएं। कृपया ध्यान दें कि संदेश प्राप्तकर्ता होस्ट से अग्रेषित नहीं किए जाते हैं। (फ़ाइल में क्लाइंट और सर्वर पर काम करने के लिए इस असाइनमेंट के लिए /आदि/सेवाएँपंक्ति अवश्य लिखी जानी चाहिए सिसलॉग 514/यूडीपी, और यूटीपी पोर्ट 514 खुला है)

उपयोगकर्ताओं की एक सूची

संदेश प्राप्त करने वाले उपयोगकर्ताओं की अल्पविराम से अलग की गई सूची (यदि उपयोगकर्ता लॉग इन है)। इसमें अक्सर रूट उपयोगकर्ता शामिल होता है।

सभी पंजीकृत उपयोगकर्ता

वॉल कमांड का उपयोग करके सभी पंजीकृत उपयोगकर्ताओं को सूचित करने के लिए, तारांकन चिह्न (*) वर्ण का उपयोग करें।

एक सरल उदाहरण syslog.conf:

# सभी कर्नेल संदेशों को कंसोल पर प्रिंट करें। #kern.* /dev/console # ईमेल संदेशों को छोड़कर, जानकारी स्तर या उच्चतर पर सभी लॉग, और # प्रमाणीकरण संदेशों या क्रॉन डेमॉन संदेशों को लॉग न करें! *.info;mail.none;authpriv.none;cron.none /var/log/messages # संवेदनशील # प्रमाणीकरण जानकारी वाले संदेशों को एक अलग फ़ाइल में लॉग करें, चाहे उनका स्तर कुछ भी हो। authpriv.* /var/log/secure # मेल सिस्टम के सभी संदेश भी एक अलग फ़ाइल में लिखे जाते हैं। मेल.* -/var/log/maillog # शेड्यूलर संदेशों को /var/log/cron cron पर लॉग करें.* /var/log/cron # सभी सिस्टम उपयोगकर्ताओं को # आपातकालीन संदेश तुरंत प्राप्त होने चाहिए *.emerg * # संदेश समाचार सहेजें क्रिट स्तर और उच्चतर को एक अलग फ़ाइल में रखें। uucp,news.crit /var/log/spooler # बूट संदेशों को Boot.log local7 में सहेजें।* /var/log/boot.log

कई कॉन्फ़िगरेशन फ़ाइलों की तरह, सिंटैक्स इस प्रकार है:

  • # से शुरू होने वाली और खाली लाइनों को नजरअंदाज कर दिया जाता है।
  • * प्रतीक का उपयोग सभी श्रेणियों या सभी प्राथमिकताओं को इंगित करने के लिए किया जा सकता है।
  • विशेष कीवर्ड none निर्दिष्ट करता है कि इस क्रिया के लिए इस श्रेणी के लिए लॉगिंग नहीं की जानी चाहिए।
  • फ़ाइल नाम से पहले एक हाइफ़न (जैसे इस उदाहरण में -/var/log/maillog) इंगित करता है कि प्रत्येक प्रविष्टि के बाद लॉग को सिंक्रनाइज़ नहीं किया जाना चाहिए। यदि आपका सिस्टम क्रैश हो जाता है, तो आप जानकारी खो सकते हैं, लेकिन सिंक्रोनाइज़ेशन को अक्षम करने से प्रदर्शन में सुधार होगा।

कॉन्फ़िगरेशन फ़ाइल के सिंटैक्स में, आप प्राथमिकता से पहले रख सकते हैं संकेत!यह इंगित करने के लिए कि कार्रवाई लागू नहीं की जानी चाहिए, इस स्तर से और ऊपर से. इसी प्रकार प्राथमिकता दी जा सकती है चिन्ह =यह इंगित करने के लिए कि नियम केवल इस स्तर पर लागू होता है, या != यह दिखाने के लिए कि नियम इस स्तर को छोड़कर सभी स्तरों पर लागू होता है। नीचे कुछ उदाहरण दिए गए हैं (man syslog.conf में कई अन्य उदाहरण हैं):

# सभी कर्नेल संदेशों को /var/log/kernel पर भेजें. # सभी महत्वपूर्ण और उच्च स्तरीय संदेशों को रिमोट सिसलॉगर मशीन और कंसोल पर भेजें # सभी जानकारी, नोटिस और चेतावनी स्तर के संदेशों को /var/log/kernel-info # kern पर भेजें।* /var/log/kernel kern.crit @ sysloger kern .crit /dev/console kern.info;kern.!err /var/log/kernel-info # जानकारी स्तर को छोड़कर सभी मेल सिस्टम संदेशों को /var/log/mail पर भेजें। मेल.*;मेल.!=जानकारी /var/log/मेल

मैंने आरेख में syslogd के संचालन को यथासंभव स्पष्ट रूप से दिखाने का प्रयास किया:

Syslogd डेमॉन प्रारंभ करना

लॉगिंग डेमॉन को प्रारंभ करना एक स्क्रिप्ट का उपयोग करके सिस्टम आरंभीकरण के दौरान प्रारंभ किया जाता है /etc/rc.d/init.d/syslogहालाँकि, लॉन्च पैरामीटर सेट करने के लिए, इस स्क्रिप्ट को समायोजित करने की कोई आवश्यकता नहीं है - संस्करण 7.2 से शुरू होकर, लॉन्च विकल्प एक अलग कॉन्फ़िगरेशन फ़ाइल से पढ़े जाते हैं /etc/sysconfig/syslog (/etc/default/syslogडेबियन में).

यहाँ कुछ संभव हैं syslogd डेमॉन लॉन्च पैरामीटर:

  • -ए /फ़ोल्डर/सॉकेट- एक अतिरिक्त श्रवण सॉकेट निर्दिष्ट करना (पहले सॉकेट बनाना न भूलें)
  • -डी- डिबगिंग मोड। इस मामले में, डेमॉन पृष्ठभूमि में नहीं जाता है और सभी संदेशों को वर्तमान टर्मिनल पर जारी करता है;
  • -एफ config-फ़ाइल-नाम. वैकल्पिक कॉन्फ़िगरेशन फ़ाइल का नाम निर्दिष्ट करता है जिसका उपयोग डिफ़ॉल्ट /etc/syslog.conf के बजाय किया जाएगा;
  • -एल होस्ट-सूची- उन होस्टों की सूची निर्दिष्ट करना जिनके नाम पूर्ण डोमेन नाम (FQDN - पूर्ण योग्य डोमेन नाम) के साथ नहीं लिखे जाने चाहिए;
  • -एम मिनट- इस विकल्प के बिना चलने वाला sysklogd हर 20 मिनट में लॉग में मार्क श्रेणी के संदेश लिखता है। -m विकल्प का उपयोग करके, आप या तो अंकों के बीच के अंतराल को बदल सकते हैं या ऐसे संदेशों को जारी करना पूरी तरह से रद्द कर सकते हैं;
  • -पी सॉकेट- एक वैकल्पिक UNIX सॉकेट सेट करना (डिफ़ॉल्ट श्रवण /dev/log के बजाय);
  • -आर- दूरस्थ होस्ट से संदेश प्राप्त करने की अनुमति;
  • -एक्स- DNS सर्वर के साथ एक ही होस्ट पर काम करते समय फ्रीजिंग को रोकने के लिए किसी होस्ट नाम को उसके पते से निर्धारित करने पर रोक।
  • -v- संस्करण दिखाएं और काम खत्म करें

Syslogd डेमॉन प्रारंभ होने के बाद, एक स्थिति फ़ाइल बनाई जाती है /var/lock/subsys/syslogशून्य लंबाई, और एक प्रक्रिया पहचान संख्या वाली फ़ाइल /var/run/syslogd.pid.

कमांड का उपयोग करना
किल -सिग्नल `बिल्ली /var/run/syslogd.pid`

आप भेज सकते हैं syslogd डेमॉननिम्नलिखित संकेतों में से एक: उच्छ्वास करो- डेमॉन को पुनरारंभ करें; सिगटर्म- काम पूरा होना; SIGUSR1- डिबगिंग मोड को सक्षम/अक्षम करें।

दरअसल, सिस्टम पर दो लॉगिंग डेमॉन चल रहे हैं - syslogdऔर klogd. दोनों डेमॉन पैकेज में शामिल हैं sysklogd.

दानव klogdहोने वाली घटनाओं को लॉग करने के लिए जिम्मेदार है सिस्टम कोर. एक अलग klogd डेमॉन की आवश्यकता इसलिए है क्योंकि कर्नेल मानक syslog फ़ंक्शन का उपयोग नहीं कर सकता है। तथ्य यह है कि मानक सी पुस्तकालयों (उस पुस्तकालय सहित जिसमें सिसलॉग फ़ंक्शन स्थित है) का उपयोग केवल करने के लिए किया जाता है नियमित अनुप्रयोग. चूँकि कर्नेल को भी लॉगिंग फ़ंक्शंस की आवश्यकता होती है, इसमें अपनी स्वयं की लाइब्रेरी शामिल होती हैं जो अनुप्रयोगों के लिए उपलब्ध नहीं होती हैं। इसलिए, कर्नेल अपने स्वयं के संदेश निर्माण तंत्र का उपयोग करता है।

दानव klogdइन संदेशों के प्रसंस्करण को व्यवस्थित करने के लिए डिज़ाइन किया गया है। सिद्धांत रूप में, यह इस प्रसंस्करण को पूरी तरह से स्वतंत्र रूप से और syslogd से स्वतंत्र रूप से कर सकता है, उदाहरण के लिए इन संदेशों को किसी फ़ाइल में लॉग करके, लेकिन ज्यादातर मामलों में klogd की डिफ़ॉल्ट सेटिंग का उपयोग किया जाता है, जिसमें कर्नेल से सभी संदेश उसी syslogd पर अग्रेषित किए जाते हैं डेमन.

स्वचालित रोटेशन (पूर्ण फ़ाइलों का अद्यतन) और लॉग का संग्रह

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

लॉग के घूमने और संग्रह करने का क्रम निर्धारित करने के लिए, उपयोग करें विन्यास फाइल /etc/logrotate.conf . आप अलग-अलग लॉग के लिए अलग-अलग आवृत्ति सेट कर सकते हैं, जैसे दैनिक, साप्ताहिक या मासिक, आप संचित पीढ़ियों की संख्या को भी नियंत्रित कर सकते हैं, और आप यह भी निर्दिष्ट कर सकते हैं कि संग्रह की प्रतियां संग्रह प्रबंधक को कब और कब भेजी जाएंगी। नीचे दिखाया गया है उदाहरण फ़ाइल /etc/logrotate.conf:

# पहले डिफ़ॉल्ट पैरामीटर सेट किए जाते हैं (वैश्विक विकल्प) # साप्ताहिक रूप से लॉग फ़ाइलों को अपडेट करें # पिछले 4 सप्ताह के लिए लॉग का एक संग्रह संग्रहीत करें, घुमाएं 4 # रोटेशन के बाद एक नई (खाली) फ़ाइल बनाएं (अपडेट करें) बनाएं # यदि आप चाहते हैं तो टिप्पणी हटाएं सहेजी गई फ़ाइलें संपीड़ित थीं #कंप्रेस # निर्दिष्ट निर्देशिका से रोटेशन सेटिंग्स सक्षम करें /etc/logrotate.d शामिल करें # wtmp, या btmp को स्टोर न करें - लॉग डेटा रोटेशन सेटिंग्स इस प्रकार हैं: /var/log/wtmp (missingok मासिक बनाएं) 0664 रूट यूटीएमपी रोटेट 1 ) / var/log/btmp (मिसिंगोक मंथली क्रिएट 0664 रूट यूटीएमपी रोटेट 1 ) # विशिष्ट syslogs को नीचे कॉन्फ़िगर किया जा सकता है

वैश्विक विकल्पों को शुरुआत में रखा गया है logrotate.conf फ़ाइल. इनका उपयोग डिफ़ॉल्ट रूप से किया जाता है जब तक कि कहीं और कुछ अधिक विशिष्ट निर्दिष्ट न किया गया हो। उदाहरण में, लॉग घुमाए गए हैं साप्ताहिकऔर बैकअप बनाए रखा जाता है चारहफ्तों जैसे ही जर्नल घुमाया जाता है, पुराने जर्नल के स्थान पर एक नया जर्नल स्वतः बन जाता है। logrotate.conf फ़ाइलइसमें अन्य फ़ाइलों के विनिर्देश शामिल हो सकते हैं। तो, इसमें निर्देशिका की सभी फ़ाइलें शामिल हैं /etc/logrotate.d.

इस उदाहरण में इसके लिए विशेष नियम भी शामिल हैं /var/log/wtmpऔर /var/log/btmp(सिस्टम में लॉग इन करने के सफल और असफल प्रयासों के बारे में जानकारी संग्रहीत करना), जो मासिक रूप से घुमाए जाते हैं। यदि फ़ाइलें गुम हैं, तो कोई त्रुटि संदेश उत्पन्न नहीं होता है। एक नई फ़ाइल बनाई जाती है और केवल एक बैकअप सहेजा जाता है।

इस उदाहरण में, जब बैकअप अंतिम पीढ़ी तक पहुंचता है, तो इसे हटा दिया जाता है क्योंकि यह निर्धारित नहीं होता है कि इसके साथ क्या करना है।

लॉग बैकअपजब लॉग एक निश्चित आकार तक पहुँच जाते हैं तब भी बनाया जा सकता है, और बैकअप ऑपरेशन से पहले या बाद में चलाने के लिए कमांड के सेट से स्क्रिप्ट बनाई जा सकती हैं। उदाहरण:

/var/log/संदेश (5 मेल घुमाएँ logadmin@sysloger आकार 100k पोस्टरोटेट /usr/bin/killall -HUP syslogd एंडस्क्रिप्ट)

इस उदाहरण में घूर्णन /var/log/संदेशजब इसका आकार 100 केबी तक पहुंच जाता है तो इसे तैयार किया जाता है। पांच बैकअप जमा हो जाते हैं, और जब सबसे पुराना बैकअप समाप्त हो जाता है, तो इसे logadmin@sysloger पर ईमेल किया जाता है। पोस्टरोटेट कमांड शब्द एक स्क्रिप्ट को सक्षम करता है जो रोटेशन पूरा होने के बाद HUP सिग्नल भेजकर syslogd डेमॉन को पुनरारंभ करता है। स्क्रिप्ट को समाप्त करने के लिए एंडस्क्रिप्ट कमांड शब्द की आवश्यकता होती है, और यदि कोई प्रीरोटेट स्क्रिप्ट है तो भी। अधिक जानकारी के लिए लॉगरोटेट के मैन पेज देखें।

विकल्पकॉन्फ़िगरेशन फ़ाइल में निर्दिष्ट logrotate.conf:

  • संकुचित करें| nocompress(पुराने संस्करणों को gzip का उपयोग करके संपीड़ित किया जा सकता है या नहीं भी)
  • कंप्रेससीएमडी(संपीड़न प्रोग्राम निर्दिष्ट करता है, डिफ़ॉल्ट gzip है)
  • असंपीड़ितcmd(डीकंप्रेसन प्रोग्राम निर्दिष्ट करता है, डिफ़ॉल्ट ungzip है)
  • कंप्रेसटेक्स्ट(संपीड़ित फ़ाइलों के लिए प्रत्यय निर्दिष्ट करता है)
  • संपीड़नविकल्प(संपीड़न प्रोग्राम के पैरामीटर सेट करता है; डिफ़ॉल्ट "-9" है, यानी gzip के लिए अधिकतम संपीड़न)
  • कॉपीट्रंकट| nocopytruncat(आमतौर पर पुराने संस्करण का नाम बदल दिया जाता है और लॉग का एक नया संस्करण बनाया जाता है; जब यह पैरामीटर सेट किया जाता है, तो लॉगरोटेट लॉग को एक नई फ़ाइल में कॉपी करता है और फिर पुराने को छोटा कर देता है; इसका उपयोग तब किया जाता है जब लॉग बनाने वाला प्रोग्राम नहीं जानता कि कैसे इसे बंद करने के लिए; कॉपी करने और काटने के बीच के अंतराल में की गई प्रविष्टियाँ खो जाती हैं; लेकिन क्या इससे मदद मिलेगी यदि लॉग बनाने वाला प्रोग्राम, एपेंड मोड के बजाय, केवल एक आंतरिक पॉइंटर का उपयोग करके फ़ाइल में लिखता है?)
  • बनाएं[अनुमतियाँ स्वामी समूह] | nocreate(लॉग के पुराने संस्करण का नाम बदलने के तुरंत बाद और पोस्टरोटेट को कॉल करने से पहले, निर्दिष्ट विशेषताओं के साथ एक नया लॉग बनाया जाता है - एक्सेस अधिकार ऑक्टल रूप में सेट किए जाते हैं, जैसे कि chmod.2 में; यदि विशेषताएँ निर्दिष्ट नहीं हैं, तो उन्हें ले लिया जाता है पुराने लॉग से)
  • दैनिक(श्रृंखला में संस्करण प्रतिदिन बदलते हैं)
  • विलंबसंपीड़न| nodelaycompress(कुछ प्रोग्राम जर्नल को तुरंत बंद नहीं करते हैं, ऐसी स्थिति में संपीड़न को अगले चक्र तक स्थगित करना होगा)
  • त्रुटियाँईमेल(बग रिपोर्ट किसे भेजनी है)
  • विस्तारप्रत्यय(संपीड़न प्रत्यय से पहले रोटेशन के दौरान फ़ाइल नामों में जोड़े गए प्रत्यय को सेट करता है)
  • यदि खाली है| नोटिफ़िक्टी(फ़ाइल खाली होने पर भी संस्करण बदलें; डिफ़ॉल्ट)
  • शामिल करनाफ़ाइल का नाम| निर्देशिका-नाम (निर्दिष्ट निर्देशिका से किसी फ़ाइल या सभी फ़ाइलों को पाठ्य रूप से प्रतिस्थापित करें; उपनिर्देशिकाएँ, विशेष फ़ाइलें और बहिष्करण सूची से प्रत्यय वाली फ़ाइलें शामिल नहीं हैं; किसी अनुभाग के अंदर उपयोग नहीं किया जा सकता है)
  • मेलपता| नामांकित(जब संस्करण बदलने से पुराने जर्नल को हटाने की आवश्यकता होती है, तो इसे निर्दिष्ट पते पर भेजें)
  • मेलफर्स्ट(लॉग का हटाया गया संस्करण नहीं, बल्कि पहला भेजें)
  • मेललास्ट(हटाया गया लॉग संस्करण भेजें; डिफ़ॉल्ट)
  • मिसिंगओके| nomissingok(यदि लॉग गुम है तो त्रुटि संदेश न भेजें)
  • महीने के(संस्करण मासिक रूप से बदलते हैं)
  • Olddirनिर्देशिका| noolddir(संस्करण परिवर्तन के दौरान, लॉग को निर्दिष्ट निर्देशिका में ले जाया जाता है; यह उसी भौतिक डिवाइस पर होना चाहिए)
  • पोस्टरोटेट(संस्करण परिवर्तन प्रक्रिया के बाद एंडस्क्रिप्ट लाइन तक की सभी आगे की पंक्तियों को शेल कमांड के रूप में निष्पादित किया जाता है)
  • पूर्व-घूर्णन(एंडस्क्रिप्ट लाइन तक की सभी आगे की लाइनें संस्करण परिवर्तन प्रक्रिया से पहले निष्पादित की जाती हैं)
  • घुमाएँसंख्या(कितने पुराने संस्करण संग्रहीत करने हैं; यदि 0 है, तो कोई नहीं)
  • आकारबाइट(यदि लॉग का आकार निर्दिष्ट संख्या से अधिक है तो संस्करण परिवर्तन होता है; आप प्रत्यय "k" - किलोबाइट - और "M" - मेगाबाइट का उपयोग कर सकते हैं)
  • साझास्क्रिप्ट| nosharedscripts(अनुभाग में वर्णित सभी फ़ाइलों के लिए केवल एक बार प्रीरोटेट और पोस्टरोटेट कमांड निष्पादित करें)
  • वर्जित पाठ[+] प्रत्यय-सूची(शामिल करने के लिए बहिष्करण प्रत्ययों की एक सूची निर्दिष्ट करना; यदि प्लस चिह्न निर्दिष्ट है, तो जोड़, अन्यथा प्रतिस्थापन; डिफ़ॉल्ट: .rpmorig, .rpmsave, .rpmnew, ",v", .swp और "~")
  • साप्ताहिक(संस्करण साप्ताहिक रूप से बदलते हैं)

लॉग की जांच और निगरानी करना

लॉग प्रविष्टियों में आम तौर पर एक टाइमस्टैम्प, होस्ट का नाम जिस पर वर्णित प्रक्रिया चल रही है, और प्रक्रिया का नाम होता है। लॉग्स को देखेंआप पेजर प्रोग्राम का उपयोग कर सकते हैं, उदाहरण के लिए, कम, आप कमांड का उपयोग करके विशिष्ट प्रविष्टियों (उदाहरण के लिए, किसी विशिष्ट डेमॉन से कर्नेल संदेश) की खोज कर सकते हैं ग्रेप:

# कम /var/log/संदेश # grep "ppp" /var/log/संदेश | टेल 17 दिसंबर 16:34:25 प्रॉक्सी पीपीपीडी: कनेक्शन समाप्त हो गया। दिसंबर 17 16:34:25 प्रॉक्सी पीपीपीडी: बाहर निकलें। दिसंबर 17 16:35:57 प्रॉक्सी पीपीपीडी: एलसीपी सहकर्मी द्वारा समाप्त किया गया (^P]kV^@

हो सकता है कि कंप्यूटर लगातार काम न करे और रात में बंद हो जाए। इसलिए, /var/log/messages में प्रविष्टियाँ कंप्यूटर स्टार्टअप से शटडाउन तक चक्रीय रूप से संग्रहीत की जाती हैं, इसे संदेशों में देखा जा सकता है:

दिसंबर 17 08:32:56 syslog-सर्वर syslogd 1.4-0: पुनरारंभ करें। दिसंबर 17 08:32:56 syslog-सर्वर syslog: syslogd प्रारंभ करना सफल हुआ दिसंबर 17 08:32:56 syslog-सर्वर कर्नेल: klogd 1.4-0, लॉग स्रोत = /proc/kmsg प्रारंभ। दिसंबर 17 08:32:56 syslog-सर्वर syslog: klogd प्रारंभ करना सफल रहा

दिसंबर 17 08:32:56 syslog-सर्वर कर्नेल: कर्नेल कमांड लाइन: ऑटो BOOT_IMAGE=linux ro root=303 BOOT_FILE=/boot/vmlinuz-2.4.2-2 दिसंबर 17 08:32:56 syslog-सर्वर कर्नेल: मेमोरी: 125652k/130560k उपलब्ध (1365k कर्नेल कोड, 4200k आरक्षित, 92k डेटा, 236k init, 0k हाईमेम) 17 दिसंबर 08:32:56 syslog-सर्वर कर्नेल: CPU: Intel(R) पेंटियम(R) 4 CPU 1.60GHz स्टेपिंग 02

इसके अलावा, इस फ़ाइल में आप डिस्क मेमोरी के बारे में जानकारी (डिस्क ज्यामिति, विभाजन संरचना और उपयोग किए गए इंटरप्ट के बारे में जानकारी सहित), परिधीय उपकरणों के बारे में जानकारी, व्यक्तिगत सेवाओं के लॉन्च के बारे में, फ़ाइल सिस्टम को जोड़ने के बारे में जानकारी और उपयोगकर्ता लॉगिन के बारे में संदेश पा सकते हैं। साथ ही त्रुटि संदेश भी।

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

# टेल -एफ /var/log/संदेश | ग्रेप syslog-सर्वर 17 दिसंबर 16:46:09 syslog-सर्वर पीपीपीडी: pptpd-logwtmp.so आईपी-अप ppp0 maikop 94.77.0.150 17 दिसंबर 16:46:09 syslog-सर्वर पीपीपीडी: स्क्रिप्ट /etc/ppp/ip-up समाप्त (पीआईडी ​​12552), स्थिति = 0x0 17 दिसंबर 16:46:49 syslog-सर्वर पीपीटीपीडी: CTRL: क्लाइंट 85.175.197.65 नियंत्रण कनेक्शन 17 दिसंबर 16:46:49 syslog-सर्वर पीपीटीपीडी शुरू हुआ: CTRL: कॉल प्रारंभ करना (पीपीपीडी लॉन्च करना, जीआरई खोलना) दिसंबर 17 16:46:49 syslog-सर्वर पीपीपीडी: प्लगइन /usr/lib/pptpd/pptpd-logwtmp.so लोड किया गया।

/etc/syslog.conf में निर्दिष्ट लॉग फ़ाइलों के अलावा, अन्य फ़ाइलें भी हैं, उदाहरण के लिए एक फ़ाइल जो syslogd शुरू होने से पहले सिस्टम बूट प्रक्रिया के बारे में जानकारी संग्रहीत करती है, साथ ही ऐसी फ़ाइलें जिनमें बाइनरी प्रारूप होता है और जानकारी संग्रहीत होती है सिस्टम में अंतिम लॉगिन उपयोगकर्ता के बारे में, क्रमशः सभी सफल उपयोगकर्ता लॉगिन और सभी असफल उपयोगकर्ता लॉगिन के बारे में। इसके अलावा /var/log/ निर्देशिका में वेब सर्वर या प्रॉक्सी सर्वर जैसे डेमॉन की लॉग फ़ाइलें भी हो सकती हैं। इन फ़ाइलों का प्रारूप syslogd लॉग के समान है।

अंत में, मैं इस बात पर ज़ोर देना चाहूँगा कि यह प्रोटोकॉल बहुत सुरक्षित नहीं है, क्योंकि syslog में संदेश जालसाजी के विरुद्ध कोई सुरक्षा नहीं है। इससे भी बदतर, यूडीपी प्रोटोकॉल का उपयोग हमलावरों को किसी भी होस्ट की ओर से संदेश भेजने की अनुमति देता है। आपके स्थानीय नेटवर्क को नकली स्थानीय पते वाले पैकेट प्राप्त करने से बचाया जाना चाहिए (हालांकि यह आपको स्थानीय नेटवर्क के अंदर से नकली संदेश भेजने से नहीं रोकेगा) और पोर्ट 514/यूडीपी पर बाहर से पैकेट प्राप्त करने से बचाया जाना चाहिए। झूठे संदेशों के साथ डिस्क ओवरफ़्लो के ज्ञात मामले हैं।

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

संदेशों की गोपनीयता सुनिश्चित नहीं की जाती है, क्योंकि वे स्पष्ट पाठ में प्रसारित होते हैं।

यदि, संदेश जनरेटर स्थापित करते समय, आप गलत कलेक्टर या रिले पता निर्दिष्ट करते हैं, तो कोई त्रुटि संदेश नहीं होगा - संदेश हटा दिए जाएंगे (या किसी और के लॉग में लिखे जाएंगे)।

सिसलॉग प्रोटोकॉल में सुधार के लिए कई परियोजनाएं प्रस्तावित की गई हैं। उदाहरण के लिए, RFC 3195 एक TCP-आधारित लॉगिंग सिस्टम (syslog-conn) का प्रस्ताव करता है जो सुनिश्चित करता है कि संदेश सही क्रम में वितरित किए जाएं। सिसलॉग-साइन प्रोजेक्ट पिछले संदेशों के ब्लॉक के डिजिटल हस्ताक्षर वाले विशेष संदेश उत्पन्न करके, मानक syslog प्रोटोकॉल और प्रारूप को संरक्षित करके और यूडीपी का उपयोग करके प्रमाणीकरण, ऑर्डरिंग, संदेश अखंडता और लापता संदेशों का पता लगाने का प्रस्ताव करता है।

आइए संक्षेप में बताएं:

लिनक्स में स्थानीय सिस्टम और रिमोट सिस्टम पर इवेंट लॉग करने के लिए एक ही डेमॉन जिम्मेदार है। सभी ईवेंट /dev/log सॉकेट, UDP पोर्ट - 514, साथ ही "हेल्पर" - klogd डेमॉन से एकत्र किए जाते हैं, जो कर्नेल से संदेश भेजता है। सभी एकत्रित संदेशों को syslogd डेमॉन द्वारा /etc/syslog.conf फ़ाइल में नियमों के माध्यम से फ़िल्टर किया जाता है और नियमों के अनुसार उचित गंतव्यों पर वितरित किया जाता है। लॉग फ़ाइलों को समय-समय पर छोटा किया जाता है। आवृत्ति logrotate.conf फ़ाइल और logrotate कमांड द्वारा निर्धारित की जाती है, जिसे सिस्टम शेड्यूलर - क्रॉन द्वारा लॉन्च किया जाता है।

यह सभी आज के लिए है। मुझे आशा है कि मैंने हर चीज़ का यथासंभव स्पष्ट रूप से वर्णन किया है। मैं समय के साथ लेख में जोड़ दूँगा!

सादर, मैकसिम!



मित्रों को बताओ