जेव्हा तुम्हाला तुमच्या सर्व्हरच्या कार्यक्षमतेमध्ये काही समस्या येतात, तेव्हा सर्वात आधी तुम्ही तुमचे लिनक्स लॉग्स तपासले पाहिजेत . सिस्टम लॉगमध्ये, तुम्हाला ऑपरेटिंग सिस्टमच्या विविध घटकांकडून, जसे की कर्नल किंवा विविध सर्व्हिसेसकडून आलेले काही उपयुक्त निदान संदेश मिळू शकतात, त्यामुळे तुम्हाला बिघाडाचे कारण तिथेच सापडण्याची दाट शक्यता आहे.
लॉगमधील प्रत्येक संदेश ऑपरेटिंग सिस्टममधील काही विशिष्ट घटनांच्या परिणामी तयार होतो: वापरकर्त्याकडून, अधिकृततेपासून ते सेवा बंद होण्यापर्यंत किंवा अनुप्रयोग अपयशापर्यंत. या घटना किती गंभीर आहेत यावर अवलंबून त्यांच्या प्राधान्यक्रमांमध्ये भिन्नता असते. लिनक्समध्ये खालील प्रकारचे कार्यक्रम आहेत:
emerg- अपयश, सर्वोच्च प्राधान्य;alert- तातडीची चेतावणी;crit- गंभीर घटना;err- सामान्य चूक;warn- सामान्य चेतावणी;notice- सूचना;info- माहिती संदेश;debug- डीबगिंग माहिती;
सध्या, लिनक्समधील मुख्य लॉग गोळा करणाऱ्या सेवा rsyslog आणि systemd-journald आहेत . त्या बहुतेक आधुनिक डिस्ट्रिब्युशन पॅकेजेससोबत येतात आणि स्वतंत्रपणे काम करतात.
rsyslog
या सेवेचे लॉग्स “ /var/log/ ” फोल्डरमध्ये सामान्य टेक्स्ट फाइल्सच्या स्वरूपात असतात . लॉग संदेश घटनेच्या प्रकारानुसार वेगवेगळ्या फाइल्समध्ये ठेवले जातात. उदाहरणार्थ, “ /var/log/auth.log ” मध्ये सिस्टममधील वापरकर्त्यांच्या अधिकारांविषयी माहिती असते, आणि “ /var/log/kern.log ” मध्ये कर्नल संदेश असतात. वेगवेगळ्या डिस्ट्रिब्युशन पॅकेजेसमध्ये फाइल्सची नावे भिन्न असू शकतात, म्हणून काय कुठे आहे याची कल्पना येण्यासाठी आपण “ /etc/rsyslog.d/50-default.conf ” या कॉन्फिग फाइलवर एक नजर टाकूया.
हे नियम दर्शवतात की प्रत्येक प्रकारचा लॉग संदेश कोणत्या फाईलमध्ये आहे. डावा भाग संदेशाचा प्रकार “ [Source].[Priority] ” या स्वरूपात दाखवतो आणि उजवा भाग लॉग फाईलचे नाव दाखवतो. संदेशाचा प्रकार लिहिताना “ * ” हे चिन्ह जोडले जाऊ शकते. याचा अर्थ रिक्त मूल्य किंवा “ none ” असा होतो, जे त्याला यादीतून काढून टाकते. चला, पहिल्या दोन नियमांवर अधिक बारकाईने नजर टाकूया.
“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”
- प्रक्रिया आयडी - [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/ या अधिकृत वेबसाइटवर मिळेल.
लिनक्समध्ये लॉग रोटेशन
लॉग रेकॉर्डिंग सतत होत असते, त्यामुळे फाईल्सचा आकार सतत वाढत जातो. रोटेशन यंत्रणा जुन्या लॉग्सचे स्वयंचलित संग्रहण (archiving) आणि नवीन फाईल्सची निर्मिती सुनिश्चित करते. नियमांनुसार, हे दररोज, साप्ताहिक, मासिक किंवा आकार मर्यादेनुसार होऊ शकते. जसे नवीन लॉग्स तयार होतात, तसे जुने लॉग्स फक्त हटवले जाऊ शकतात किंवा ईमेलद्वारे पाठवले जाऊ शकतात. लॉग्सचे रोटेशन ' logrotate' युटिलिटीद्वारे केले जाते. तुम्हाला मुख्य कॉन्फिगरेशन “ /etc/logrotate.conf ” फाईलमध्ये मिळेल . फाईल्समधील सामग्रीवर “ /etc/logrotate.d/ ” फोल्डरमध्ये प्रक्रिया केली जाते.
नवीन नियम मुख्य कॉन्फिग फाईलमध्ये नोंदवले जाऊ शकतात. तथापि, “ /etc/logrotate.d/ ” मध्ये एक स्वतंत्र फाईल तयार करणे उत्तम आहे. पूर्वनिर्धारितपणे, या डिरेक्टरीमध्ये काही फाईल्स असतात.
चला आपण “ /etc/logrotate.d/rsyslog " या फाईलवर एक नजर टाकूया, ज्यामध्ये rsyslog सेवेच्या लॉग्ससाठी रोटेशनचे नियम आहेत.
प्रथम, नियमात लॉग फाइलचा मार्ग असावा आणि नंतर सर्व मार्गदर्शक तत्त्वे वक्र कंसात जावीत.
- 7 फिरवा - ठेवण्यासाठी असलेल्या फायलींची संख्या - ७
- दररोज - दररोज एक नवीन फाइल तयार करा
- संक्षिप्त - जुन्या फायली संकुचित करा आणि संग्रहित करा
तुम्ही स्क्रीनशॉटवर पाहू शकता की “ /var/log/ ” फोल्डरमध्ये मुख्य लॉग “ syslog ” आणि 7 आर्काइव्ह आहेत, जे कॉन्फिग फाइलमधील नियमांशी जुळतात.
“ man logrotate ” ही कमांड चालवून, तुम्हाला मॅन्युअलमध्ये logrotate चे अधिक तपशीलवार वर्णन मिळेल.
लिनक्स लॉग गोळा करणे - जर्नल्ड
लॉग्स गोळा करणारी सेवा systemd-journald ही systemd या आरंभीकरण प्रणालीचा एक भाग आहे . लिनक्स लॉग फाइल्स “ /var/log/journal/ ” मध्ये एका विशेष फॉरमॅटमध्ये साठवल्या जातात आणि journalctl युटिलिटीच्या मदतीने उघडल्या जाऊ शकतात . रेकॉर्ड्सचा फॉरमॅट 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- या प्रकरणात विशिष्ट प्राधान्याचे, उच्च प्राधान्याचे संदेश दाखवा (crit, alert, emerg)journalctl -f- रिअल-टाइममध्ये संदेश दाखवा
अधिक लवचिकतेसाठी तुम्ही हे पर्याय एकत्र करू शकता. चला pptpd सेवेच्या सर्व त्रुटी दाखवूया.
journalctl -u pptpd -p err
जर तुम्ही एक्झिक्युटेबल फाईलचा पाथ एक ॲट्रिब्यूट म्हणून नमूद केला, तर ही युटिलिटी त्या फाईलने पाठवलेले सर्व मेसेजेस दाखवेल. चला, १८ फेब्रुवारी २०२० रोजी पहाटे ०४:१५ पासून “ /usr/bin/sudo ” या फाईलने पाठवलेले सर्व मेसेजेस पाहूया. वास्तविक पाहता, ती उच्च परवानग्यांसह कार्यान्वित केलेले सर्व कमांड्स दाखवेल.
journalctl -S "2020-02-18 04:15" /usr/bin/sudo
खालील कमांड कार्यान्वित करण्यासाठी लॉग फाइल्स किती डिस्क स्पेस घेतात हे शोधण्यासाठी
journalctl --disk-usage
लॉग फाइल 1Gb पर्यंत मर्यादित करण्यासाठी खालील कमांड चालवा.
journalctl --vacuum-size=1G
बायनरी फाइल्स उघडत आहे
आता आपण “ /var/log/ ” फोल्डरमधील काही विशेष फाइल्स पाहूया, जिथे लॉगिनचे सर्व प्रयत्न साठवले जातात. या फाइल्स बायनरी स्वरूपाच्या असून त्या केवळ विशेष प्रोग्रॅम्सद्वारेच उघडता येतात.
/var/log/wtmp मध्ये यशस्वी लॉगिन प्रयत्नांची माहिती असते. ते उघडण्यासाठी last utility वापरा.
/var/log/btmp - यामध्ये लॉगिनचे सर्व अयशस्वी प्रयत्न समाविष्ट आहेत. हे lastb कमांड वापरून प्रगत परवानग्यांसह उघडता येते. -n ॲट्रिब्यूट फाईलच्या शेवटून किती ओळी दाखवल्या जातील हे ठरवते.
/var/log/lastlog - यामध्ये प्रत्येक खाते नोंदीसाठी शेवटच्या लॉगिनची वेळ असते. हे lastlog कमांड वापरून उघडता येते.