जब तपाईंले आफ्नो सर्भरको कार्यसम्पादनमा कुनै समस्याको सामना गर्नुहुन्छ, तपाईंले गर्न चाहनुभएको पहिलो कुरा भनेको आफ्नो लिनक्स लगहरू जाँच गर्नु हो । सिस्टम लगमा, तपाईंले कर्नेल वा विभिन्न सेवाहरू जस्ता अपरेटिङ सिस्टमका विभिन्न कम्पोनेन्टहरूबाट केही उपयोगी निदान सन्देशहरू फेला पार्न सक्नुहुन्छ, त्यसैले तपाईंले त्यहाँ विफलताको कारण फेला पार्नुहुनेछ।
लगमा भएको प्रत्येक सन्देश अपरेटिङ सिस्टममा भएका निश्चित घटनाहरूको परिणामस्वरूप उत्पन्न हुन्छ: प्रयोगकर्ता, प्राधिकरणदेखि सेवा बन्द हुने वा अनुप्रयोग विफलतासम्म। यी घटनाहरूको प्राथमिकता तिनीहरू कति महत्वपूर्ण छन् भन्ने आधारमा फरक-फरक हुन्छन्। लिनक्समा निम्न प्रकारका घटनाहरू छन्:
emerg- असफलता, सर्वोच्च प्राथमिकता;alert- जरुरी चेतावनी;crit- महत्वपूर्ण घटना;err- सामान्य त्रुटि;warn- सामान्य चेतावनी;notice- सूचना;info- जानकारी सन्देश;debug- डिबगिङ जानकारी;
हाल, Linux मा मुख्य लग सङ्कलन सेवाहरू rsyslog र systemd-journald हुन् । तिनीहरू धेरैजसो आधुनिक वितरण प्याकेजहरूसँग जान्छन् र स्वतन्त्र रूपमा काम गर्छन्।
rsyslog
यस सेवाका लगहरू साधारण पाठ फाइलहरूको रूपमा " /var/log/ " फोल्डरमा अवस्थित छन्। लग सन्देशहरू घटनाको प्रकारमा निर्भर गर्दै फरक फाइलहरूमा राखिन्छन्। उदाहरणका लागि, " /var/log/auth.log " मा प्रणालीमा प्रयोगकर्ताहरूको अधिकार सम्बन्धी जानकारी समावेश छ, र " /var/log/kern.log " मा कर्नेल सन्देशहरू समावेश छन्। वितरण प्याकेजहरूमा फाइलहरूको नाम फरक हुन सक्छ, त्यसैले " /etc/rsyslog.d/50-default.conf " कहाँ छ भन्ने कुराको विचार प्राप्त गर्न कन्फिग फाइलमा एक नजर राखौं।
यी नियमहरूले कुन फाइलमा प्रत्येक प्रकारका लग सन्देशहरू छन् भनेर देखाउँछन्। बायाँ भागले निम्न फारममा सन्देशको प्रकार प्रदर्शन गर्दछ “ [स्रोत].[प्राथमिकता] ” र दायाँ भागले लग फाइलको नाम प्रदर्शन गर्दछ। सन्देशको प्रकार लेख्दा “ * ” वर्ण थप्न सकिन्छ। यसको अर्थ खाली मान वा “ कुनै पनि होइन ” हो जसले यसलाई सूचीबाट हटाउँछ। पहिलो दुई नियमहरूलाई नजिकबाट हेरौं।
“auth,authpriv.* /var/log/auth.log”
“*.*;auth,authpriv.none -/var/log/syslog”
पहिलो नियमको अर्थ प्राधिकरण संयन्त्रबाट प्राप्त सबै सन्देशहरू " /var/log/auth.log " फाइलमा रेकर्ड गरिनेछ । सबै प्राधिकरण प्रयासहरू (सफल र असफल दुवै) यस फाइलमा दर्ता गरिनेछन्। दोस्रो नियमले प्राधिकरणसँग जोडिएका सन्देशहरू बाहेक सबै सन्देशहरू " /var/log/syslog " फाइलमा रेकर्ड गरिनेछ भन्ने संकेत गर्छ। यी दुई फाइलहरू सामान्यतया सबैभन्दा लोकप्रिय हुन्छन्। निम्न नियमहरूले कर्नेल लगहरू " kern.* " र मेल सेवा लगहरू " mail.* " भण्डारण गर्ने मार्ग परिभाषित गर्दछ।
लग फाइलहरू कुनै पनि टेक्स्ट एडिटरको मद्दतले खोल्न सकिन्छ, जस्तै less , cat , tail । “ /var/log/auth.log ” फाइल खोलौं।
less /var/log/auth.log
फाइलको प्रत्येक लाइन एप्लिकेसन वा सेवाबाट प्राप्त भएको छुट्टै सन्देश हो। स्रोत जस्तोसुकै भए पनि सबै सन्देशहरूको एउटै ढाँचा हुन्छ र यसमा ५ भागहरू हुन्छन्। उदाहरणको रूपमा स्क्रिनसटमा हाइलाइट गरिएको सन्देशलाई लिऔं।
- सन्देश टाइमस्ट्याम्प - “फेब्रुअरी १२ ०६:१८:३३”
- सन्देश पठाउने कम्प्युटरको नाम - “vds”
- सन्देश पठाउने अनुप्रयोग वा सेवाको नाम - “sshd”
- प्रक्रिया ID - [653]
- सन्देश पाठ - "१८८.१९.४२.१६५ पोर्ट २८४९ ssh188.19.42.165 बाट मिहेलको लागि पासवर्ड स्वीकृत"
यो SSH सँग सफल जडानको उदाहरण थियो।
अनि असफल लगइन प्रयास कस्तो देखिन्छ भनेर यहाँ छ:
यो फाइलले उन्नत अनुमतिहरू भएका आदेशहरू पनि रेकर्ड गर्दछ।
/var/log/syslog फाइल खोलौं
स्क्रिनसटमा हाइलाइट गरिएको सन्देश नेटवर्क इन्टरफेस बन्द भएको बारेमा सन्देश हो।
लामो टेक्स्ट फाइलहरू मार्फत जानकारी खोज्नको लागि grep उपयोगिता प्रयोग गर्नुहोस्। तपाईंले pptpd सेवाबाट प्राप्त सबै सन्देशहरू " /var/log/syslog " फाइलमा फेला पार्न सक्नुहुन्छ।
grep 'pptpd' /var/log/syslog
डायग्नोस्टिक्सको क्रममा तपाईंले टेल युटिलिटी प्रयोग गर्न सक्नुहुन्छ जसले फाइलहरूको धेरै अन्तिम लाइनहरू प्रदर्शन गर्न सक्छ। " tail -f /var/log/syslog " आदेशले तपाईंलाई वास्तविक समयमा लग रेकर्डिङ हेर्न अनुमति दिनेछ।
सेवा rsyslog धेरै लचिलो र शक्तिशाली छ। यसलाई स्थानीय प्रणालीहरूमा साथै उद्यम स्तरमा लगहरू सङ्कलन गर्न प्रयोग गर्न सकिन्छ। तपाईंले आधिकारिक वेबसाइट https://www.rsyslog.com/ मा पूर्ण कागजातहरू पाउन सक्नुहुन्छ।
Linux मा लगहरू घुमाउने तरिका
लग रेकर्डिङ निरन्तर भइरहेको छ, त्यसैले फाइलहरूको आकार निरन्तर बढ्दै जान्छ। रोटेशन मेकानिज्मले पुराना लगहरूको स्वचालित अभिलेख र नयाँ फाइलहरूको सिर्जना सुनिश्चित गर्दछ। नियमहरूमा निर्भर गर्दै, यो दैनिक, साप्ताहिक, मासिक वा आकार सीमा अनुसार हुन सक्छ। नयाँ लगहरू सिर्जना हुँदा, पुरानाहरू केवल मेटाउन वा इमेल मार्फत पठाउन सकिन्छ। लगहरू रोटेशन logrotate उपयोगिता द्वारा गरिन्छ। तपाईंले " /etc/logrotate.conf " फाइलमा मुख्य कन्फिगरेसन फेला पार्न सक्नुहुन्छ । फाइलहरूको सामग्री " /etc/logrotate.d/ " फोल्डरमा पनि प्रशोधन गरिन्छ ।
नयाँ नियमहरू मुख्य कन्फिग फाइलमा लग इन गर्न सकिन्छ। यद्यपि, " /etc/logrotate.d/ " मा छुट्टै फाइल सिर्जना गर्नु उत्तम हुन्छ। पूर्वनिर्धारित रूपमा, यस डाइरेक्टरीमा केही फाइलहरू छन्।
rsyslog सेवाको लगहरूको लागि रोटेशन नियमहरू समावेश गर्ने " /etc/logrotate.d/rsyslog " फाइल हेरौं ।
पहिले, नियममा लग फाइलको मार्ग समावेश हुनुपर्छ र त्यसपछि सबै दिशानिर्देशहरू घुमाउरो कोष्ठकहरूमा जानुपर्छ।
- rot घुमाउनुहोस् - राख्नु पर्ने फाइलहरूको संख्या - ७
- दैनिक - हरेक दिन नयाँ फाइल सिर्जना गर्नुहोस्
- कम्प्रेस गर्नुहोस् - पुराना फाइलहरू कम्प्रेस र अभिलेख गर्नुहोस्
तपाईंले स्क्रिनसटमा देख्न सक्नुहुन्छ कि " /var/log/ " फोल्डरमा मुख्य लग " syslog " र ७ अभिलेखहरू छन्, जुन कन्फिग फाइलमा भएका नियमहरूसँग मेल खान्छ।
तपाईंले " man logrotate " आदेश कार्यान्वयन गर्दै म्यानुअलमा logrotate को थप विस्तृत विवरण पाउन सक्नुहुन्छ।
लिनक्स लगहरू सङ्कलन गर्दै - जर्नल गरिएको
लगहरू कटाई सेवा systemd-journald इनिसियलाइजेसन प्रणाली systemd को एक भाग हो। लिनक्स लग फाइलहरू " /var/log/journal/ " मा विशेष ढाँचामा भण्डारण गरिन्छन् र journalsctl उपयोगिताको मद्दतले खोल्न सकिन्छ । रेकर्ड ढाँचा rsyslog मा जस्तै हो ।
कुनै विशेषता बिनाको journalctl कमाण्डले सबै रेकर्डहरू देखाउँछ तर यो ठूला लगहरूको लागि उपयुक्त छैन। यस उपयोगिताका केही विकल्पहरू हेरौं।
journalctl -b- अन्तिम सुरुवातदेखि सबै रेकर्डहरू देखाउनुहोस्journalctl -S "2020-02-17 12:00" -U "2020-02-17 12:10"- निश्चित समय अवधि भित्र रेकर्ड देखाउनुहोस्journalctl -u pptpd- निश्चित सेवाको रेकर्ड देखाउनुहोस्journalctl -k- कर्नेल सन्देशहरू देखाउनुहोस्journalctl -p err- यस अवस्थामा निश्चित प्राथमिकता, उच्च प्राथमिकताका सन्देशहरू देखाउनुहोस् (क्रिट्स, अलर्ट, इमर्ज)journalctl -f- वास्तविक समयमा सन्देशहरू देखाउनुहोस्
राम्रो लचिलोपनको लागि तपाईंले यी विकल्पहरू संयोजन गर्न सक्नुहुन्छ। pptpd सेवाका सबै त्रुटिहरू देखाउनुहोस्।
journalctl -u pptpd -p err
यदि तपाईंले कार्यान्वयनयोग्य फाइलको मार्गलाई विशेषताको रूपमा निर्दिष्ट गर्नुभयो भने उपयोगिताले यस फाइलद्वारा पठाइएका सबै सन्देशहरू देखाउनेछ। फेब्रुअरी १८, २०२० मा ०४:१५ देखि " /usr/bin/sudo " फाइलद्वारा पठाइएका सबै सन्देशहरू देखाउनुहोस्। वास्तवमा, यसले उच्च अनुमतिहरू सहित कार्यान्वयन गरिएका सबै आदेशहरू देखाउनेछ।
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
निम्न आदेश कार्यान्वयन गर्न लग फाइलहरूले कति डिस्क स्पेस लिन्छ भनेर पत्ता लगाउन
journalctl --disk-usage
लग फाइललाई १Gb मा सीमित गर्न निम्न आदेश कार्यान्वयन गर्नुहोस्
journalctl --vacuum-size=1G
बाइनरी फाइलहरू खोल्दै
अब " /var/log/ " फोल्डरमा रहेका केही विशेष फाइलहरू हेरौं जहाँ सबै लगइन प्रयासहरू भण्डारण गरिन्छन्। यी फाइलहरू बाइनरी हुन् र विशेष प्रोग्रामहरू प्रयोग गरेर मात्र खोल्न सकिन्छ।
/var/log/wtmp मा सफल लगइन प्रयासहरूको जानकारी समावेश छ। यसलाई खोल्नको लागि अन्तिम उपयोगिता प्रयोग गर्नुहोस्।
/var/log/btmp - मा सबै असफल लगइन प्रयासहरू समावेश छन्। यसलाई उन्नत अनुमतिहरू सहित lastb मार्फत खोल्न सकिन्छ। विशेषता -n ले फाइलको अन्त्यबाट प्रदर्शित लाइनहरूको संख्या परिभाषित गर्दछ।
/var/log/lastlog - प्रत्येक खाता रेकर्डको लागि अन्तिम लगइन कार्यको समय समावेश गर्दछ। यो lastlog मार्फत खोल्न सकिन्छ।